mysqldump迁移数据库如何实现部分表带数据、部分表仅导结构
该需求完全可以通过mysqldump命令实现,推荐使用以下两种方案操作:
方案一:分两次导出(更直观,不易出错)
- 第一步:导出
table_1和table_2的完整结构+数据
执行命令:
执行后输入数据库密码即可,生成的sql文件已包含两张配置表的所有结构和数据。mysqldump -u [你的数据库用户名] -p a_database table_1 table_2 > config_tables_full.sql - 第二步:导出
table_3和table_4的仅表结构
加--no-data参数即可实现只导结构不导数据,执行命令:mysqldump -u [你的数据库用户名] -p --no-data a_database table_3 table_4 > user_tables_structure.sql - 第三步:导入新库
可以先后执行两个sql文件导入,也可以先合并为一个文件再导入:- Linux/macOS合并命令:
cat config_tables_full.sql user_tables_structure.sql > full_migration.sql - Windows合并命令:
type config_tables_full.sql user_tables_structure.sql > full_migration.sql
- Linux/macOS合并命令:
方案二:一次性导出
你也可以通过参数组合实现单命令导出完整迁移文件:
mysqldump -u [你的数据库用户名] -p a_database --ignore-table=a_database.table_3 --ignore-table=a_database.table_4 > full_migration.sql && mysqldump -u [你的数据库用户名] -p --no-data a_database table_3 table_4 >> full_migration.sql
该命令先导出排除了table_3、table_4的完整库内容(也就是包含table_1、table_2的结构和数据),再追加两张用户表的空结构到同一个文件中。
注意事项
-u参数后紧跟你的数据库用户名,例如用户为root则写-u root- 不要在
-p参数后明文填写密码,执行命令后输入密码更安全 - 导入到新库前请确认新库已创建,且字符集、排序规则和原库一致,避免出现乱码问题
内容的提问来源于stack exchange,提问作者Jorge Risquez
相关产品推荐
相关产品推荐

