很多时候DBA需要导出部分记录至开发、测试环境,因数据量需求较小,如果原库的记录多,且表数量也多,在用mysqldump命令导出时可以添加一个where参数(如自定义导出n条记录),而不必全量导出。

示例脚本如下:

导出dbname库每张表的1000条记录/usr/local/mysql5.7/bin/mysqldump  --skip-add-locks   --master-data=2 --default-character-set utf8  -E   --single-transaction -R --triggers    -uroot -pxxxx   --socket=/data/mysql/mysql3307/tmp/mysql3307.sock  --databases dbname  --where "1=1 limit 1000" > dbname.sql


MySQLdump的其他主要用法如下:

1、导出数据和表结构——将特定数据库特定表中的数据和表格结构和数据全部返回

/usr/local/mysql5.7/bin/mysqldump  --skip-add-locks   --master-data=2 --default-character-set utf8  -E   --single-transaction -R --triggers    -uroot -pxxxx   --socket=/data/mysql/mysql3307/tmp/mysql3307.sock   dbname  tbname >tbname.sql


2、导出表结构却不导出表数据——只返回特定数据库特定表格的表格结构,不返回数据,添加“-d”命令参数

/usr/local/mysql5.7/bin/mysqldump  --skip-add-locks   --master-data=2 --default-character-set utf8  -E   --single-transaction -R --triggers    -uroot -pxxxx   --socket=/data/mysql/mysql3307/tmp/mysql3307.sock   dbname  tbname  -d  > tbname_str.sql


3、导出数据却不导出表结构——只返回特定数据库中特定表格的数据,不返回表格结构,添加“-t”命令参数

/usr/local/mysql5.7/bin/mysqldump  --skip-add-locks   --master-data=2 --default-character-set utf8  -E   --single-transaction -R --triggers    -uroot -pxxxx   --socket=/data/mysql/mysql3307/tmp/mysql3307.sock   dbname  tbname  -t   >tbname_data.sql

4、导出特定数据库的所有表格的表结构及其数据,添加“--databases ”命令参数

/usr/local/mysql5.7/bin/mysqldump  --skip-add-locks   --master-data=2 --default-character-set utf8  -E   --single-transaction -R --triggers    -uroot -pxxxx   --socket=/data/mysql/mysql3307/tmp/mysql3307.sock   --databases dbname   > this_database.sql