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

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

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

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

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

4 如果3失败,考虑:myisamchk -safe-recover /path/to/table_name