MySQL表被标记为崩溃,最后(自动?)修复失败

我正在修复这个表突然服务器被绞死,当我返回时,所有的表都可以,但这个显示“使用中”,当我尝试修复它不会继续。

ERROR 144 - Table './extas_d47727/xzclf_ads' is marked as crashed and last (automatic?) repair failed 

我能做些什么来修复它?

如果您的MySQL进程正在运行,请停止它。 在Debian上:

 sudo service mysql stop 

转到您的数据文件夹。 在Debian上:

 cd /var/lib/mysql/$DATABASE_NAME 

尝试运行:

 myisamchk -r $TABLE_NAME 

如果这不起作用,您可以尝试:

 myisamchk -r -v -f $TABLE_NAME 

你可以重新启动你的MySQL服务器。 在Debian上:

 sudo service mysql start 

尝试运行以下查询:

 repair table <table_name>; 

我有同样的问题,它解决了我的问题。

如果在移动到/ var / lib / mysql的时候拒绝你的权限,那么请使用下面的解决scheme

 $ cd /var/lib/ $ sudo -u mysql myisamchk -r -v -f mysql/<DB_NAME>/<TABLE_NAME> 

在修复<Your_table>表后,转到data_dir并删除Your_table.TMP文件。

我得到myisamchk: error: myisam_sort_buffer_size is too small因为错误。

解决scheme

 myisamchk -r -v mysql/<DB_NAME>/<TABLE_NAME> --sort_buffer_size=2G 

我需要将USE_FRM添加到修复声明以使其正常工作。

 REPAIR TABLE <table_name> USE_FRM;