
# mysqldump的6大使用场景的导出命令
#### 背景描述
mysqldump是MySQL最常用的逻辑导入导出的工具，下面介绍几种常见使用场景。
#### mysqldump选项解析
表1配置项说明 
| 选项名称                | 说明                           |
|:---|:---|
| 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            | 使用十六进制格式导出二进制字符串字段。          |
   
#### 场景描述
适用场景举例如下。
1. 导出db1、db2两个数据库的所有数据。 **mysqldump -uroot -p -P** *8635* **-h** *192.168.0.199* **--hex-blob --set-gtid-purged=OFF --single-transaction --order-by-primary --flush-logs -q --databases** *db1 db2* **\>db12.sql**
   
2. 导出db1库的t1和t2表。 **mysqldump -uroot -p -P** *8635* **-h** *192.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**
   
3. 条件导出，导出db1表t1中id=1的数据。 **mysqldump -uroot -p -P** *8635* **-h** *192.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**
   
4. 导出db1下所有表结构，而不导出数据。 **mysqldump -uroot -p -P** *8635* **-h** *192.168.0.199* **--no-data --** **set-gtid-purged=OFF --single-transaction --order-by-primary -n --flush-logs -q --databases** db1**\>** *db1* **_table.sql**
   
5. 除db1下的表和数据外，其他对象全部导出。 **mysqldump -uroot -p -h** *192.168.0.199* **-P** *8635* **--set-gtid-purged=OFF -F -n -t -d -E -R** *db1* **\> others.sql**
   
 
