解决mysql数据库报错Table ‘xxx’is marked as crashed and last (automatic) repair failed

作者: 站长 上传时间: 浏览: N/A 下载: N/A 格式: N/A 评分: N/A

中午起床后开博客,然后后台使用clean up清理垃圾,出现数据库表崩溃。。。
报错
Table ‘xxx’is marked as crashed and last (automatic) repair failed
xxx为你数据库名称

数据的索引全部没了,原因不明,在phpmyadmin后台使用修复功能不成功,那就手动修复试试。。。

手动修复步骤
ssh连接到vps
为了稳妥起见,先cp一份数据库文件以防万一
cd /usr/local/mysql/var/
cp xxx xxxbackup
错误提示omitting directory ‘xxx’
原因为该文件夹下有子文件夹,添加递归参数 -r后就好了
cp -r xxx xxxbackup

关闭mysql服务
service mysql stop
打开xxx数据库文件夹
cd /usr/local/mysql/var/xxx
修复表索引文件(注意:使用递归参数-r、通配符*的作用是批量修复所有.myi结尾的文件)
myisamchk -r *.MYI

若不成功试试强行修复(我没用强行修复。。。)
myisamchk -r -f *.MYI

Leave a Comment