使用 MyISAM 和 InnoDB 表备份 MySQL 数据库

Backup MySQL database with MyISAM & InnoDB tables

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

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

使用下面-

所有数据库的通用命令是-

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

如果您想根据自己的选择选择少数或全部数据库,那么-

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

如果您想进行 table 备份,那么-

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

其中用户名是root,密码是root123,你可以根据自己的改

注意:mysqldump 实用程序对 innodb 和 myisam 进行备份。

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

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

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

或者...

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