1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > mysql数据库备份与还原常用命令

mysql数据库备份与还原常用命令

时间:2020-06-11 20:11:21

相关推荐

mysql数据库备份与还原常用命令

做备份时一直让人很纠结,连着几天的日子都没睡过好觉。在不停的实践和查阅网上资料重要OK了。

首先,要知道mysql备份的语句怎么写

[sql]view plain copy备份MySQL数据库的命令 mysqldump-hhostname-uusername-ppassworddatabasename>backupfile.sql 备份MySQL数据库为带删除表的格式 备份MySQL数据库为带删除表的格式,能够让该备份覆盖已有数据库而不需要手动删除原有数据库。 mysqldump-–add-drop-table-uusername-ppassworddatabasename>backupfile.sql 直接将MySQL数据库压缩备份 mysqldump-hhostname-uusername-ppassworddatabasename|gzip>backupfile.sql.gz 备份MySQL数据库某个(些)表 mysqldump-hhostname-uusername-ppassworddatabasenamespecific_table1specific_table2>backupfile.sql 同时备份多个MySQL数据库 mysqldump-hhostname-uusername-ppassword–databasesdatabasename1databasename2databasename3>multibackupfile.sql 仅仅备份数据库结构 mysqldump–no-data–databasesdatabasename1databasename2databasename3>structurebackupfile.sql 备份服务器上所有数据库 mysqldump–all-databases>allbackupfile.sql 还原MySQL数据库的命令 mysql-hhostname-uusername-ppassworddatabasename<backupfile.sql 还原压缩的MySQL数据库 gunzip<backupfile.sql.gz|mysql-uusername-ppassworddatabasename 将数据库转移到新服务器 mysqldump-uusername-ppassworddatabasename|mysql–host=*.*.*.*-Cdatabasename

mysqldump导出的常用参数及说明:

1. –compatible = name

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

2.–complete-insert,-c

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

3. –default-character-set=charset

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

4. –disable-keys

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

5. –extended-insert = true|false

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

6. –hex-blob

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

7. –lock-all-tables, -x

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

8. –lock-tables

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

9. –no-create-info, -t

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

10. –no-data, -d

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

11. –opt

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

12. –quick, -q

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

13. –routines, -R

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

14. –single-transaction

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

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

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

15. –triggers

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

16. –where

mysqldump “–where=Date>’-04-07′” database table1 > archive.txt

But what if I have another table that is connected with a foreign key to the first table:

eg.

mysqldump “–where=table1.Date>’-04-07′” “–where=table2.foreignKey=table1.primaryKey” database table1 table2 > archive.txt

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。