首页数据库mysql数据库备份语句(备份MYSQL数据库SQL语句怎么写)

mysql数据库备份语句(备份MYSQL数据库SQL语句怎么写)

编程之家2023-10-2298次浏览

大家好,关于mysql数据库备份语句很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于备份MYSQL数据库SQL语句怎么写的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!

mysql数据库备份语句(备份MYSQL数据库SQL语句怎么写)

备份MYSQL数据库SQL语句怎么写

mysqldump备份还原和mysqldump导入导出语句大全详解

mysqldump备份:

mysqldump-u用户名-p密码-h主机数据库 a-w"sql条件"--lock-all-tables>路径

案例:

mysqldump-uroot-p1234-hlocalhost db1 a-w"id in(select id from b)"--lock-all-tables> c:\aa.txt

mysqldump还原:

mysql数据库备份语句(备份MYSQL数据库SQL语句怎么写)

mysqldump-u用户名-p密码-h主机数据库<路径

案例:

mysql-uroot-p1234 db1< c:\aa.txt

mysqldump按条件导出:

mysqldump-u用户名-p密码-h主机数据库 a--where"条件语句"--no-建表>路径

mysqldump-uroot-p1234 dbname a--where"tag='88'"--no-create-info> c:\a.sql

mysql数据库备份语句(备份MYSQL数据库SQL语句怎么写)

mysqldump按导入:

mysqldump-u用户名-p密码-h主机数据库<路径

案例:

mysql-uroot-p1234 db1< c:\a.txt

mysqldump导出表:

mysqldump-u用户名-p密码-h主机数据库表

案例:

mysqldump-uroot-p sqlhk9 a--no-data

讲一下 mysqldump的一些主要参数

--compatible=name

它告诉 mysqldump,导出的数据将和哪种数据库或哪个旧版本的 MySQL服务器相兼容。值可以为 ansi、mysql323、mysql40、postgresql、oracle、mssql、db2、maxdb、no_key_options、no_tables_options、no_field_options等,要使用几个值,用逗号将它们隔开。当然了,它并不保证能完全兼容,而是尽量兼容。

--complete-insert,-c

导出的数据采用包含字段名的完整 INSERT方式,也就是把所有的值都写在一行。这么做能提高插入效率,但是可能会受到 max_allowed_packet参数的影响而导致插入失败。因此,需要谨慎使用该参数,至少我不推荐。

--default-character-set=charset

指定导出数据时采用何种字符集,如果数据表不是采用默认的 latin1字符集的话,那么导出时必须指定该选项,否则再次导入数据后将产生乱码问题。

--disable-keys

告诉 mysqldump在 INSERT语句的开头和结尾增加/*!40000 ALTER TABLE table DISABLE KEYS*/;和/*!40000 ALTER TABLE table ENABLE KEYS*/;语句,这能大大提高插入语句的速度,因为它是在插入完所有数据后才重建索引的。该选项只适合 MyISAM表。

--extended-insert= true|false

默认情况下,mysqldump开启--complete-insert模式,因此不想用它的的话,就使用本选项,设定它的值为 false即可。

--hex-blob

使用十六进制格式导出二进制字符串字段。如果有二进制数据就必须使用本选项。影响到的字段类型有 BINARY、VARBINARY、BLOB。

--lock-all-tables,-x

在开始导出之前,提交请求锁定所有数据库中的所有表,以保证数据的一致性。这是一个全局读锁,并且自动关闭--single-transaction和--lock-tables选项。

--lock-tables

它和--lock-all-tables类似,不过是锁定当前导出的数据表,而不是一下子锁定全部库下的表。本选项只适用于 MyISAM表,如果是 Innodb表可以用--single-transaction选项。

--no-create-info,-t

只导出数据,而不添加 CREATE TABLE语句。

--no-data,-d

不导出任何数据,只导出数据库表结构。

--opt

这只是一个快捷选项,等同于同时添加--add-drop-tables--add-locking--create-option--disable-keys--extended-insert--lock-tables--quick--set-charset选项。本选项能让 mysqldump很快的导出数据,并且导出的数据能很快导回。该选项默认开启,但可以用--skip-opt禁用。注意,如果运行 mysqldump没有指定--quick或--opt选项,则会将整个结果集放在内存中。如果导出大数据库的话可能会出现问题。

--quick,-q

该选项在导出大表时很有用,它强制 mysqldump从服务器查询取得记录直接输出而不是取得所有记录后将它们缓存到内存中。

--routines,-R

导出存储过程以及自定义函数。

--single-transaction

该选项在导出数据之前提交一个 BEGIN SQL语句,BEGIN不会阻塞任何应用程序且能保证导出时数据库的一致性状态。它只适用于事务表,例如 InnoDB和 BDB。

本选项和--lock-tables选项是互斥的,因为 LOCK TABLES会使任何挂起的事务隐含提交。

要想导出大表的话,应结合使用--quick选项。

--triggers

同时导出触发器。该选项默认启用,用--skip-triggers禁用它。

其他参数详情请参考手册,我通常使用以下 SQL来备份 MyISAM表:

/usr/local/mysql/bin/mysqldump-uyejr-pyejr"

--default-character-set=utf8--opt--extended-insert=false"

--triggers-R--hex-blob-x db_name> db_name.sql

使用以下 SQL来备份 Innodb表:

/usr/local/mysql/bin/mysqldump-uyejr-pyejr"

--default-character-set=utf8--opt--extended-insert=false"

--triggers-R--hex-blob--single-transaction db_name> db_name.sql

另外,如果想要实现在线备份,还可以使用--master-data参数来实现,如下:

/usr/local/mysql/bin/mysqldump-uyejr-pyejr"

--default-character-set=utf8--opt--master-data=1"

--single-transaction--flush-logs db_name> db_name.sql

它只是在一开始的瞬间请求锁表,然后就刷新binlog了,而后在导出的文件中加入CHANGE MASTER语句来指定当前备份的binlog位置,如果要把这个文件恢复到slave里去,就可以采用这种方法来做。

1.2还原

用 mysqldump备份出来的文件是一个可以直接倒入的 SQL脚本,有两种方法可以将数据导入。

直接用 mysql客户端

例如:

/usr/local/mysql/bin/mysql-uyejr-pyejr db_name< db_name.sql

用 SOURCE语法(实验不成功!!!)

其实这不是标准的 SQL语法,而是 mysql客户端提供的功能,例如:

SOURCE/tmp/db_name.sql;

这里需要指定文件的绝对路径,并且必须是 mysqld运行用户(例如 nobody)有权限读取的文件。

如何备份整个mysql数据库

1、首先打开mysql数据库软件进入软件主界面。

2、然后再左侧树里打开自己的的数据库。

3、然后需要点击需要备份的数据库名。

4、如图所示为打开数据库后界面。

5、然后需要点击转储sql文件选项。

6、然后需要打开选择存储文件路径并选择保存。

7、点击保存即可在路径备份好格式为sql的数据库文件。

mysql中备份和还原数据库的语句什么啊

一、Mysql数据库备份指令格式:

mysqldump-h主机名-P端口-u用户名-p密码(–database)数据库名>文件名.sql

注:直接cmd执行该指令即可,不需要先mysql-u root-p链接数据库

1、备份MySQL数据库的命令

mysqldump-hhostname-uusername-ppassword databasename> backupfile.sql

2、备份MySQL数据库为带删除表的格式,能够让该备份覆盖已有数据库而不需要手动删除原有数据库。

mysqldump-–add-drop-table-uusername-ppassword databasename> backupfile.sql

二、数据库还原有三种方式:source命令、mysql、gunzip命令

1、source命令

进入mysql数据库控制台,

mysql-u root-p

mysql>use数据库

然后使用source命令,后面参数为脚本文件(如这里用到的.sql)

mysql>source/home/work/db/bkdb.sql

2、mysql

mysql-hhostname-uusername-ppassword databasename< backupfile.sql

3、gunzip

gunzip< backupfile.sql.gz| mysql-uusername-ppassword databasename

如果你还想了解更多这方面的信息,记得收藏关注本站。

服务器优惠,哪家服务器便宜dns的服务器地址设置,首选DNS服务器怎么设置