MySQL Table ‘***’ is marked as crashed and should be repaired 彻底解决

今天起来发现站点打开异常缓慢,基本上10秒能打开就打开,打不开就爆数据库连接错误“Database connection error”,或者直接来个“502 Bad Gateway”。第一感觉是被攻击了,马上进行了排查(5个命令检查Linux中内存使用情况),查清原因后马上处理。

其中之一就是“ MySQL Table '***' is marked as crashed and should be repaired”,进入相应数据库查看大概有十个表都报这个数据表损坏错误,现在修复它,提供两种修复方式 。

先备份整个数据库

方法一:使用mysqlcheck修复数据表

备份数据库,添加 --auto-repair 参数自动修复

为了安全起见,以下两种方法不建议在生产环境中使用

参数含意:

方法二:使用Navicat修复数据库

  • 连接上数据库,选择表
  • 右键->Maintain(维护)->Repair Tables(修复表)->Extended(扩展)
MySQL Table '***' is marked as crashed and should be repaired 彻底解决
Repairing MySQL Database
MySQL Table '***' is marked as crashed and should be repaired 彻底解决
修复MySql数据表(Repairing MySQL Database)

Windows和OSX版本是一样的操作,因为没Windows环境,自己截图截出来的太大(400KB),所以用了网图。Windows操作那个使用的是Quick(快速)修复,为了保险起见,建议使用Extended(扩展)修复数据表。

等一会,会提示修复完成,现在你再打开数据库看,应该都正常了。

参考