如何只通过命令行导出mysql数据库结构,但是从列表中指定导出一些特定的表数据

时间:2017-07-19 05:39:50

标签: php mysql database

我想通过命令行导出MySQL数据库,具有以下两个条件,

  1. 仅导出数据库表格结构。
  2. 但是在导出数据时,我想导出指定的表数据和结构,这些都是命令中提到的。
  3. 我有一个包含60个表的数据库,其中一个名为Country的表包含静态值。所以我想在导出的文件中导出它的数据,其余的表只包含导出文件中的结构。

    根据上述条件,任何人都可以建议我使用MySQL命令转储数据库吗?

2 个答案:

答案 0 :(得分:1)

第一种方法:

mysqldump --no-data -h <host> -u <username> -p<password> <database> > tables.sql

这会将您的数据库表结构转储到文件tables.sql

--no-data选项指定不转储表内容。

第二种方法:

(如果您希望在批处理中更多地使用生成的.sql文件,这将非常有用。)

  • 使用show create table命令查看创建表的实际命令。
  • 创建一个Bash脚本,为您要导出的每个表执行该MySQL命令。将输出从show create table <table_name>传输到文本文件。

答案 1 :(得分:1)

我认为你需要为此发出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表的结构和数据转储到同一个文件中。