文档首页
MySQL 9.0 参考手册
相关文档 下载本手册
PDF (US Ltr) - 40.0Mb
PDF (A4) - 40.1Mb
手册页 (TGZ) - 258.2Kb
手册页 (Zip) - 365.3Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 9.0 参考手册  /  ...  /  如果遇到表损坏,如何制作测试用例

7.9.1.7 如果遇到表损坏,如何制作测试用例

以下步骤适用于 MyISAM 表。有关遇到 InnoDB 表损坏时应采取步骤的信息,请参阅 第 1.6 节,“如何报告错误或问题”

如果您遇到损坏的 MyISAM 表,或者 mysqld 在某些更新语句之后总是失败,您可以通过执行以下操作来测试问题是否可重现

  1. 使用 mysqladmin shutdown 停止 MySQL 守护进程。

  2. 备份表,以防万一修复操作出现问题(这种情况极不可能发生)。

  3. 使用 myisamchk -s database/*.MYI 检查所有表。使用 myisamchk -r database/table.MYI 修复任何损坏的表。

  4. 再次备份表。

  5. 如果您需要更多空间,请删除(或移动)MySQL 数据目录中的所有旧日志文件。

  6. 启动 mysqld 并启用二进制日志。如果您想找到导致 mysqld 崩溃的语句,您还应该在启动服务器时启用一般查询日志。请参阅 第 7.4.3 节,“一般查询日志”第 7.4.4 节,“二进制日志”

  7. 当您遇到崩溃的表时,停止 mysqld 服务器。

  8. 恢复备份。

  9. 重新启动 mysqld 服务器,不要启用二进制日志。

  10. 使用 mysqlbinlog binary-log-file | mysql 重新执行语句。二进制日志保存在 MySQL 数据库目录中,名称为 hostname-bin.NNNNNN

  11. 如果表再次损坏,或者您使用上述命令导致 mysqld 崩溃,则说明您找到了一个可重现的错误。按照 第 1.6 节,“如何报告错误或问题” 中的说明,将表和二进制日志 FTP 到我们的错误数据库。如果您是支持客户,您可以使用 MySQL 客户支持中心 (https://www.mysqlserver.cn/support/) 向 MySQL 团队报告问题,以便尽快得到修复。