以下是我使用 mysqldump 备份数据库的开关:
/usr/bin/mysqldump -u **** --password=**** --single-transaction --database **** > /filepath/filename.sql
我正在使用 Windows(服务器是 Linux)导入我的本地数据库:
mysql -u root
use databasename
source c:/filepath/filename.sql
当我比较服务器数据库和本地数据库时,innodb 表丢失了,下面是“show engines;”的结果在本地数据库上:
最佳答案
它可能是 --single-transaction
选项。您是否有可能在进行转储时更改表格?如果是这样,alter table
将在事务之外完成。它将创建一个临时表,删除原始表并重命名临时表。由于原始表已经“消失”,因此不会放入转储文件中。
您可以尝试改用 --lock-tables,看看是否可行。
关于innodb - mysqldump 备份缺少所有 innodb 表,但没有 MyISAM 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15494857/