【问题标题】:Backup MySQL database with MyISAM & InnoDB tables使用 MyISAM 和 InnoDB 表备份 MySQL 数据库
【发布时间】:2015-08-28 09:55:42
【问题描述】:

我有一个 MySQL 数据库,其中包含混合表(MyISAM、InnoDB)。

如何通过 Linux 命令行使用 mysqldump 创建数据库的完整备份,我应该使用什么选项?

【问题讨论】:

标签: mysql innodb mysqldump myisam


【解决方案1】:

在下面使用-

所有 db 的通用命令 is-

mysqldump -uroot -proot123 -A > /path/mydbbackup.sql

如果您想根据自己的选择选择几个或全部 db,那么-

mysqldump -uroot -proot123 -B mydb1 mydb2 mydb3 > /path/mydbbackup.sql

如果您想避免锁定,请使用单一事务选项-

mysqldump --single-transaction -uroot -proot123 -A > /path/mydbbackup.sql

如果你想进行特定的数据库备份,那么-

mysqldump -uroot -proot123 mydb > /path/mydbbackup.sql

如果你想进行表备份,那么-

mysqldump -uroot -proot123 mydb mytable > /path/mydbbackup.sql

其中用户名是root,密码是root123,您可以根据自己的需要更改

注意:mysqldump 实用程序需要 innodb 和 myisam 两个备份。

【讨论】:

    【解决方案2】:

    目前没有方便的解决方案:

    • MyISAM 表需要选项 --lock-tables
    • InnoDB 表需要选项 --single-transaction --skip-lock-tables

    这两个选项是互斥的。您必须先选择数据库,然后再单独转储它们。

    或者……

    如果您的数据库同时包含这两种类型的表,只需运行 mysqldump 两次...

    【讨论】:

    • 至少最近的mysqls,--single-transaction自动关闭--lock-tables
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-04-04
    • 2015-09-26
    • 2012-01-13
    • 2011-01-08
    • 2012-04-15
    • 2011-11-21
    • 2012-03-01
    相关资源
    最近更新 更多