如何使用mysql 5恢复centos6中所有数据库的所有mysql表?

如何使用mysql 5恢复centos6中所有数据库的所有mysql表?

mysql 在 centos 6 中已损坏,显示

#1033 - Incorrect information in file: /xxxx/xxx.frm

对于所有数据库并显示所有表为空。如何恢复所有数据库?

答案1

  • 检查更新是否弄乱了您的 my.cnf 文件。如果是 my.cnf.back,请备份实际的 my.cnf 并将 my.cnf.back 重命名为 my.cnf。尝试重新启动 mysql。
  • 检查 /etc/my.cnf 文件中是否有 skip-innodb 这一行。如果是,请注释掉它并尝试重新启动 mysql。
  • 检查您的 /tmp 文件夹是否具有良好的权限 (777)。如果不是,请使用“sudo chmod 777 /tmp”并尝试重新启动 mysql。

答案2

您是否有任何理由认为数据库文件可能确实已损坏?如果是,您需要从备份中恢复。

如果没有,并且您正在使用innodb表存储,则innodb可能启动失败。通过启动 mysql 会话并输入以下内容进行检查:SHOW ENGINES;

答案3

感谢 Paul 和 DeadEye,

我的 SQL 问题是由于服务器磁盘空间已满时 innodb 被禁用造成的。

该问题通过以下步骤解决:1)使用 SHOW ENGINES 检查 innodb;

结果 :

 InnoDB     | DISABLED | Supports transactions, row-level locking, and foreign keys

2)通过以下步骤启用innodb:

/etc/init.d/mysql stop

cd /var/lib/mysql/

ls ib_logfile*
mv ib_logfile0 ib_logfile0.bak
mv ib_logfile1 ib_logfile1.bak

/etc/init.d/mysql restart

相关内容