mysqldump的6大使用场景的导出命令
背景描述
mysqldump是MySQL最常用的逻辑导入导出的工具,下面介绍几种常见使用场景。
mysqldump选项解析
选项名称 |
说明 |
---|---|
add-drop-table |
每个数据表创建之前添加drop数据表语句。 |
events,E |
导出事件。 |
routines,R |
存储过程以及自定义函数。 |
flush-logs |
开始导出之前刷新日志。 |
no-create-db,n |
只导出数据,而不添加CREATE DATABASE语句。 |
add-drop-database |
创建数据库之前添加drop数据库语句。 |
no-create-info,t |
只导出数据,而不添加CREATE TABLE语句。 |
no-data,d |
不导出任何数据,只导出数据库表结构。 |
set-gtid-purged=OFF |
不导出gtid相关语句。 |
hex-blob |
使用十六进制格式导出二进制字符串字段。 |
场景描述
适用场景举例如下。
- 导出db1、db2两个数据库的所有数据。
mysqldump -uroot -p -P8635 -h192.168.0.199 --hex-blob --set-gtid-purged=OFF --single-transaction --order-by-primary --flush-logs -q --databases db1 db2 >db12.sql
- 导出db1库的t1和t2表。
mysqldump -uroot -p -P8635 -h192.168.0.199 --hex-blob --set-gtid-purged=OFF --single-transaction --order-by-primary --flush-logs -q --databases db1 --tables t1 t2 >t1_t2.sql
- 条件导出,导出db1表t1中id=1的数据。
mysqldump -uroot -p -P8635 -h192.168.0.199 --hex-blob --set-gtid-purged=OFF --single-transaction --order-by-primary --flush-logs -q --databases db1 --tables t1 --where='id=1'>t1_id.sql
- 导出db1下所有表结构,而不导出数据。
mysqldump -uroot -p -P8635 -h192.168.0.199 --no-data --set-gtid-purged=OFF --single-transaction --order-by-primary -n --flush-logs -q --databases db1 >db1_table.sql
- 除db1下的表和数据外,其他对象全部导出。
mysqldump -uroot -p -h192.168.0.199 -P8635 --set-gtid-purged=OFF -F -n -t -d -E -R db1> others.sql