注意:使用myisamchk前,要确保mysqld没有在访问要检查的表。最好停止mysqld。

1 执行myisamchk –update-state -s *.myi,检查有哪些索引文件出了问题(可能会化费比较长的时间)。

update-state选项只有在停止mysqld的时候使用,-s表示忽略一些正常的表列出的信息,只列出错误。

2 对于每一个损坏的表,尝试myisamchk -r -q table_name。这是快速修复模式,会自动检查索引表和数据表是否能够一致。如果一致,则可以修复。

3 如果快速修复模式失败,考虑:myisamchk -r table_name,会删除不一致的数据和索引,并重新构建索引。

4 如果3失败,考虑:myisamchk –safe-recover table_name