mysqldump是一个数据库备份程序
运行mysqldump --help
可以看到命令的用法
1 2 3 4
| Dumping structure and contents of MySQL databases and tables. Usage: mysqldump [OPTIONS] database [tables] OR mysqldump [OPTIONS] OR mysqldump [OPTIONS]
|
下面就列出一些常用的使用方法
导出所有数据库
使用参数--all-databases
指定就行。
如下面命令会导出包括系统数据库在内的所有数据库,。
1
| mysqldump -uroot -proot --all-databases >/tmp/all.sql
|
导出指定数据库
使用参数--databases
来指定。
1
| mysqldump -uroot -proot --databases db1 db2 >/tmp/db1_2.sql
|
导出指定数据库的指定表
使用参数--tables
来指定,用空格可以指定多张表。
1
| mysqldump -uroot -proot --databases db1 --tables a1 a2 >/tmp/db1.sql
|
导出指定条件的数据
使用参数--where
来指定,后面的内容可以写=
,like
,or
等多种条件组合。
导出的数据是带有drop与create的,在还原的时候,如果对于同一数据库可能少部数据。
1
| mysqldump -uroot -proot --databases db1 --tables a1 --where="name like '%xxx%'" >/tmp/a1.sql
|
只导出表结构不导出数据
使用参数--no-data
1
| mysqldump -uroot -proot --no-data --databases db1 >/tmp/db1.sql
|
跨服务器导出导入数据
直接利用管道
1
| mysqldump --host=h1 -uroot -proot --databases db1 | mysql --host=h2 -uroot -proot db2
|
加参数-C
可以压缩传输
导出存储过程和自定义函数
使用参数--routines
1
| mysqldump -uroot -p --host=localhost --all-databases --routines
|
压缩备份
1 2 3 4
| 压缩备份 mysqldump -uroot -proot --databases db1 2>/dev/null |gzip >/tmp/db1.sql.gz 还原 gunzip -c db1.sql.gz |mysql -uroot -proot db1
|
更多
更多参数及使用参见
https://dev.mysql.com/doc/refman/5.7/en/mysqldump.html