mysqldump
mysqldump 命令是 mysql 数据库中备份工具, 用于将 MySQL 服务器中的数据库以标准的 sql 语言的方式导出, 并保存到文件中
选项
--all-databases, -A: 导出 MySQL 服务器上的所有数据库;
--all-tablespaces, -Y: 导出某数据库的所有表空间
--add-drop-database: 在每个创建数据库语句前添加删除数据库的语句;
--add-drop-table: 在每个创建数据库表语句前添加删除数据库表的语句;(默认添加 drop 语句, 使用 --skip-add-drop-table 取消选项)
--add-locks: 导出数据库表时锁定数据库表;(默认添加 LOCK 语句, 使用 --skip-add-locks 取消选项)
--comments: 添加注释信息;
--compact: 压缩模式, 产生更少的输出;
--complete-insert: 输出完成的插入语句;
--databases, -B: 指定要备份的数据库, 参数后面所有名字参量都被看作数据库名;
--default-character-set: 指定默认字符集;
--force: 当出现错误时仍然继续备份操作;
--host: 指定要备份数据库的服务器;
--lock-tables: 备份前, 锁定所有数据库表;
--no-create-db: 禁止生成创建数据库语句;
--no-create-info: 禁止生成创建数据库库表语句;
--password: 连接 MySQL 服务器的密码;
--port:MySQL 服务器的端口号;
--user: 连接 MySQL 服务器的用户名
常用语句
导出所有数据库 (包括系统数据库)
mysqldump -u 用户名 -p 密码 --all-databases > 导出的文件名
mysqldump -uroot -proot --all-databases > all.sql
导出整个数据库 (可一次多个)
mysqldump -u 用户名 -p 密码 --databases 数据库 1 数据库 2 > 导出的文件名
mysqldump -uroot -proot --databases databas1 database2 > databases.sql
导出一个表 (可一次多个, 但只能针对一个数据库)
mysqldump -u 用户名 -p 密码 --databases 数据库 --tables 表 1 表 2 > 导出的文件名
mysqldump -uroot -proot --databases db1 --tables t1 t2 > tables.sql
按条件导出 (条件相同可一次多个)
mysqldump -u 用户名 -p 密码 --databases 数据库 --tables 表 1 表 2 --where = 条件 > 导出的文件名
mysqldump -uroot -proot --databases db1 --tables a1 --where=id=1 > tables.sql
只导出表结构不导出数据 (可一次多个)
mysqldump -u 用户名 -p 密码 --no-data --databases 数据库 1 数据库 2 > 导出的文件名
mysqldump -uroot -proot --no-data --databases db1 > tables.sql
跨服务器导出导入数据
mysqldump --host=h1 -uroot -proot --databases db1 |mysql --host=h2 -uroot -proot --databases db2
将 h1 服务器中的 db1 数据库的所有数据导入到 h2 中的 db2 数据库中, db2 的数据库必须存在否则会报错
mysqldump --host=192.168.80.137 -uroot -proot -C --databases test |mysql --host=192.168.80.133 -uroot -proot --databases test
加上 - C 参数可以启用压缩传递
更详细内容请可参考: https://www.cnblogs.com/chenmh/p/5300370.html
来源: http://www.bubuko.com/infodetail-2516993.html