从mysqldump自定义导出n条记录说起

December 17, 2023
测试
测试
测试
测试
3 分钟阅读

很多时候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

想进一步沟通或想了解其他文章的同学可以关注我。

数据库干货铺
数据库干货铺

继续阅读

更多来自我们博客的帖子

如何安装 BuddyPress
由 测试 December 17, 2023
经过差不多一年的开发,BuddyPress 这个基于 WordPress Mu 的 SNS 插件正式版终于发布了。BuddyPress...
阅读更多
Filter如何工作
由 测试 December 17, 2023
在 web.xml...
阅读更多
如何理解CGAffineTransform
由 测试 December 17, 2023
CGAffineTransform A structure for holding an affine transformation matrix. ...
阅读更多