让我们来举个例子:
我有一个数据库,其中有四个表,设置如下:
a_database
table_1
table_2
table_3
table_4现在,在我的项目中,我使用表1和表2来存储系统配置选项、设置等,使用表3和表4来存储用户存储的数据。
假设我想要将这个数据库迁移到一个新数据库,但是只包含表1和表2的数据和结构,而只包含表3和表4的结构。
这可以使用mysqldump命令来完成吗?
mysqldump -u -p a_database > path-to-file 发布于 2021-09-01 13:49:49
您可以使用一个命令组合转储来完成此操作,如以下命令:
mysqldump -u -p a_database table_1 table_2 > dump.sql && mysqldump -u -p --no-data a_database table_3 table_4 >> dump.sql据我所知,我不认为只有一个mysqldump命令就能做到这一点。
您可以根据需要将以下命令添加到转储中:
--single-transaction ->选项,如果您不想或不能执行表锁
-d -> -d简称为--无数据。
-R ->如果您的数据库有存储过程/函数,也可以考虑添加--routines (简称为-R
-B ->包含CREATE DATABASE命令--数据库数据库名(缩写:-B数据库名)
-r ->为了避免shell的字符集干扰编码,-r schema.sql比> schema.sql更可取。另外,使用--default- character - set =utf8 (或者其他任何东西)显式指定字符集也是一个好主意。您仍然需要检查转储文件顶部的集合名称。我以前在MySQL字符集编码地狱中被抓到过
--routines ->如果您的数据库有存储过程/函数,也可以考虑添加--routines
https://stackoverflow.com/questions/69014558
复制相似问题