做备份时一直让人很纠结,连着几天的日子都没睡过好觉。在不停的实践和查阅网上资料重要OK了。
首先,要知道mysql备份的语句怎么写
[sql] view plain copy
1. 备份MySQL数据库的命令
2.
3. mysqldump -hhostname -uusername -ppassword databasename > backupfile.sql
4.
5.
6. 备份MySQL数据库为带删除表的格式
7. 备份MySQL数据库为带删除表的格式,能够让该备份覆盖已有数据库而不需要手动删除原有数据库。
8.
9. mysqldump -–add-drop-table -uusername -ppassword databasename > backupfile.sql
10.
11.
12. 直接将MySQL数据库压缩备份
13.
14. mysqldump -hhostname -uusername -ppassword databasename | gzip > backupfile.sql.gz
15.
16.
17. 备份MySQL数据库某个(些)表
18.
19. mysqldump -hhostname -uusername -ppassword databasename specific_table1 specific_table2 > backupfile.sql
20.
21.
22. 同时备份多个MySQL数据库
23.
24. mysqldump -hhostname -uusername -ppassword –databases databasename1 databasename2 databasename3 > multibackupfile.sql
25.
26.
27. 仅仅备份数据库结构
28.
29. mysqldump –no-data –databases databasename1 databasename2 databasename3 > structurebackupfile.sql
30.
31.
32. 备份服务器上所有数据库
33.
34. mysqldump –all-databases > allbackupfile.sql
35.
36.
37. 还原MySQL数据库的命令
38.
39. mysql -hhostname -uusername -ppassword databasename < backupfile.sql
40.
41.
42. 还原压缩的MySQL数据库
43.
44. gunzip < backupfile.sql.gz | mysql -uusername -ppassword databasename
45.
46.
47. 将数据库转移到新服务器
48.
49. mysqldump -uusername -ppassword databasename | mysql –host=*.*.*.* -C databasename
mysqldump导出的常用参数及说明:
1. –compatible = name
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
BEGIN SQL语句,BEGIN 不会阻塞任何应用程序且能保证导出时数据库的一致性状态。它只适用于事务表,例如 InnoDB 和 BDB。
本选项和 –lock-tables 选项是互斥的,因为 LOCK TABLES 会使任何挂起的事务隐含提交。
要想导出大表的话,应结合使用 –quick
15. –triggers
同时启用触发器,该选项默认启用,用–skip-triggers禁用它。
16. –where
” database table1 > archive.txt
But what if I have another table that is connected with a foreign key to the first table:
eg.
-04-07′” “–where=table2.foreignKey=table1.primaryKey” database table1 table2 > archive.txt