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