Linux:MySQL表被标记为已崩溃,应修复

时间:2020-02-23 14:39:52  来源:igfitidea点击:

MySQL table is marked as crashed and should be repaired

慢的MySQL服务器,具有很高的负载,并且在没有任何特殊原因的情况下会消耗大量I/O?如果在查看MySQL日志文件(/var/lib/mysql.log)时看到以下错误,那么现在您知道原因了!

[ERROR] /usr/libexec/mysqld: Table './database_name/table_name' is marked as crashed and should be repaired

幸运的是,使用MySQL修复工具可以轻松解决此问题。
假设您已经有备份(如果没有备份,请羞愧,马上采取备份!),然后按照以下步骤解决此问题:

  • 为指定已损坏表的数据库调用修复工具(由具有服务器管理特权的用户替换<USER>):
mysqlcheck -u <USER> -p --repair database_name

注意:如果有很多损坏的表,则可能需要在"修复"之后附加"扩展"选项。

此步骤可能需要一段时间,如果您正在远程工作,建议您在"屏幕"会话下运行该步骤,以避免会话中断时中断此过程,这可能会进一步损害数据库。

  • 如果要恢复主要崩溃,并且日志中显示许多数据库受到影响,则可以使用此命令一次检查所有数据库:
mysqlcheck -u <USER> -p --repair --all-databases