【问题标题】:How to dump mysql database?如何转储mysql数据库?
【发布时间】:2010-09-16 08:45:49
【问题描述】:

我只想转储mysql数据库有数据的表,你能给我你的建议吗?这更有帮助

感谢和问候, 瓦拉·库马尔.PJD

【问题讨论】:

  • 如果表不包含数据,它不会增加太多的备份大小。为什么要跳过空表?
  • 有很多表,我不想在导入转储数据库期间执行空表查询。这会导致数据丢失问题。
  • 我的要求是删除表并将数据从转储的数据库文件中插入到这些表中。该文件包含具有数据和创建、添加-删除语句的表。

标签: mysqldump


【解决方案1】:

您可以使用--ignore-table 选项,但您必须首先找出哪些表是空的,因为这不能直接使用mysqldump。所以你可以这样做

mysqldump -u username -p database --ignore-table=database.table1 --ignore-table=database.table2 > database.sql

【讨论】:

    【解决方案2】:
    mysqldump <database options> table1 table2 table3 ...
    

    【讨论】:

    • 表很多,每一张都很难写。是否有任何选项可以转储数据表以及创建、添加删除语句
    【解决方案3】:

    使用mysqldump (documentation located here)。如果您不指定表,则假定所有表。您还可以显式选择要复制或忽略的表。您可以告诉它在您的 create 语句之前创建 drop 语句。如果你有 mysql 5.1.2 那么你可以告诉它复制例程。

    【讨论】:

      【解决方案4】:

      当您转储所有数据库时。显然它有大量数据。因此,您可以更喜欢以下内容:

      创建备份:

      mysqldump -u [user] -p[password]--single-transaction --quick --all-databases | gzip > alldb.sql.gz
      

      如果出错

      -- 警告:跳过表 mysql.event 的数据。明确指定 --events 选项。

      用途:

      mysqldump -u [user] -p --events --single-transaction --quick --all-databases | gzip > alldb.sql.gz
      

      恢复备份:

      gunzip < alldb.sql.gz | mysql -u [user] -p[password]
      

      希望它会有所帮助:)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-12-10
        • 1970-01-01
        • 2012-03-16
        • 2016-08-21
        • 2011-04-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多