【发布时间】:2017-07-19 05:39:49
【问题描述】:
我想通过以下两个条件通过命令行导出MySQL数据库,
- 仅导出数据库表结构。
- 但是在导出数据时,我想导出命令中提到的指定表数据和结构。
我有一个包含 60 个表的数据库,其中一个名为 Country 的表包含静态值。所以我也想在导出的文件中导出它的数据,其余的表只包含导出文件中的结构。
谁能建议我使用 MySQL 命令根据上述条件转储数据库?
【问题讨论】:
我想通过以下两个条件通过命令行导出MySQL数据库,
我有一个包含 60 个表的数据库,其中一个名为 Country 的表包含静态值。所以我也想在导出的文件中导出它的数据,其余的表只包含导出文件中的结构。
谁能建议我使用 MySQL 命令根据上述条件转储数据库?
【问题讨论】:
第一种方法:
mysqldump --no-data -h <host> -u <username> -p<password> <database> > tables.sql
这会将您的数据库表结构转储到文件tables.sql。
--no-data 选项指定不转储表格内容。
第二种方法:
(如果您想在批处理中更多地使用生成的.sql 文件,这可能很有用。)
show create table 命令查看创建表的实际命令。show create table <table_name> 的输出通过管道传输到文本文件。【讨论】:
我认为您需要为此触发 2 个单独的命令。
mysqldump -u root -p password --no-data --ignore-table=db_name.tbl_name db_name > db_name.sql
上面的查询将转储数据库的所有结构,没有你的国家表的结构和数据。
mysqldump -u root -p password db_name tbl_name >> db_name.sql
这个会将 Country 表的结构和数据转储到同一个文件中。
【讨论】: