#### 5.9.1.7 如果遇到表损坏，请制作测试用例

以下程序适用于[`MyISAM`](myisam-storage-engine.html)表。有关遇到时要采取的步骤的信息`InnoDB`表损坏，请参阅[第 1.6 节，“如何报告错误或问题”](bug-reports.html).

如果遇到损坏[`MyISAM`](myisam-storage-engine.html)表或如果[**mysqld**](mysqld.html)在某些更新语句后总是失败，您可以通过执行以下操作来测试问题是否可重现：

1.  停止 MySQL 守护进程[**mysqladmin 关闭**](mysqladmin.html).

2.  对表进行备份，以防止修复出现问题的极不可能的情况。

3.  检查所有表[**myisamchk -s 数据库/\*。我的我**](myisamchk.html).修复任何损坏的表[**myisamchk -r 数据库/*`桌子`*。我的我**](myisamchk.html).

4.  对表进行第二次备份。

5.  如果您需要更多空间，请从 MySQL 数据目录中删除（或移走）任何旧日志文件。

6.  开始[**mysqld**](mysqld.html)启用二进制日志时。如果你想找到一个崩溃的声明[**mysqld**](mysqld.html)，您也应该在启用常规查询日志的情况下启动服务器。看见[第5.4.3节，“一般查询日志”](query-log.html)和[第5.4.4节，“二进制日志”](binary-log.html).

7.  当你得到一张撞坏的桌子时，停下来[**mysqld**](mysqld.html)服务器

8.  恢复备份。

9.  重新启动[**mysqld**](mysqld.html)服务器*没有*二进制日志已启用。

10. 使用以下命令重新执行语句：[**mysqlbinlog二进制日志文件| mysql**](mysqlbinlog.html).二进制日志以名称保存在MySQL数据库目录中`主机名箱*`NNNNNN`*`.

11. 如果表再次损坏，或者[**mysqld**](mysqld.html)使用上述命令死亡时，您发现了一个可复制的错误。使用中给出的说明将表和二进制日志FTP到bugs数据库[第1.6节，“如何报告错误或问题”](bug-reports.html)。如果您是支持客户，可以使用MySQL客户支持中心(<https://www.mysql.com/support/>)提醒MySQL团队这个问题并尽快修复。
