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

Php 如何仅通过命令行导出mysql数据库结构,而从列表中指定的表中导出一些特定的表数据,php,mysql,database,Php,Mysql,Database,我想通过命令行导出MySQL数据库,有以下两个条件: 仅导出数据库表结构 但在导出数据时,我希望导出命令中提到的指定表数据和结构 我有一个包含60个表的数据库,其中一个名为Country的表包含静态值。所以我想在导出的文件中也导出它的数据,其余的表只包含导出文件中的结构 有谁能建议我使用MySQL命令根据上述条件转储数据库吗?第一种方法: mysqldump--no data-h-u-p>tables.sql 这将把数据库表结构转储到文件tables.sql中 --no data选项指定不转储表

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

  • 仅导出数据库表结构
  • 但在导出数据时,我希望导出命令中提到的指定表数据和结构
  • 我有一个包含60个表的数据库,其中一个名为
    Country
    的表包含静态值。所以我想在导出的文件中也导出它的数据,其余的表只包含导出文件中的结构


    有谁能建议我使用MySQL命令根据上述条件转储数据库吗?

    第一种方法:

    mysqldump--no data-h-u-p>tables.sql

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

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

    第二种方法:

    (如果您想在批处理中使用生成的
    .sql
    文件进行更多操作,这将非常有用。)

    • 使用
      show create table
      命令查看创建表的实际命令
    • 创建一个Bash脚本,对要导出的每个表执行该MySQL命令。将
      show create table
      的输出通过管道传输到文本文件

      • 我认为您需要为此发出两个单独的命令

        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表的结构和数据转储到同一个文件中。

        感谢onkar,上述解决方案工作正常。但是,如果我们有多个要忽略的静态表,该怎么办呢?您可以在一个命令中使用多个ignore语句--ignore table=db_name.tbl_name1--ignore table=db_name.tbl_name2,如下所示。如果您尝试的操作成功,请接受答案。