Table 'xxx' is marked as crashed and last (automatic) repair failed

表崩溃了,需要修复,通过mysql命令行来执行的方法:

1)service mysql stop 停止mysql服务

2)cd /usr/local/mysql/var/
xxxx 切换到目标数据库表目录下(注意:不切换过来会总提示myisamchk一些错误导致失败);

3)myisamchk -r xxx.MYI (如果还是提示错误,就多加一个参数-f 强制进行。)

4)service mysql start 重启mysql服务

这样能修复,但是经常还是会经常崩溃。

.

有人说有个长久方法:把服务器上的数据导入到本地,然后在本地用myisamchk -r -f *.MYI修复了下,然后导回去。这个我还没操作过。

还有同事说,如果这个表修改比较频繁,建议你把数据库表类型由MyISAM修改为InnoDB,未经过测试。

后来查明,原来是我的阿里云系统盘空间不够用了,导致mysql数据库的那个主表崩溃,把mysql的一些日志删除后,就解决了该问题。