15.2.4.1 MyISAMtable 损坏

即使MyISAMtable 的格式非常可靠(SQL 语句对 table 所做的所有更改都在该语句返回之前写入),但是如果发生以下任何事件,您仍然会损坏 table:

损坏的 table 的典型症状是:

Incorrect key file for table: '...'. Try to repair it

您可以使用CHECK TABLE语句检查MyISAMtable 的运行状况,并使用REPAIR TABLE修复损坏的MyISAMtable。当mysqld未运行时,您还可以使用myisamchk命令检查或修复 table。参见第 13.7.2.2 节“ CHECK TABLE 语句”第 13.7.2.5 节“ REPAIR TABLE 语句”第 4.6.3 节“ myisamchk-MyISAMtable 维护 Util”

如果 table 经常损坏,则应尝试确定这种情况的发生原因。要知道的最重要的事情是 table 是否由于服务器崩溃而损坏。您可以通过在错误日志中查找最近的restarted mysqld消息来轻松验证这一点。如果出现这样的消息,则 table 损坏很可能是服务器死机的结果。否则,可能会在正常操作期间发生损坏。这是一个错误。您应该尝试创建一个可再现的测试用例来说明问题。参见第 B.4.3.3 节“如果 MySQLcontinue 崩溃该怎么办”第 28.5 节“调试和移植 MySQL”

首页