文档首页
MySQL 8.4 参考手册
相关文档 下载此手册
PDF (US Ltr) - 39.9Mb
PDF (A4) - 40.0Mb
手册页 (TGZ) - 258.5Kb
手册页 (Zip) - 365.5Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


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

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 团队报告问题,以便尽快解决。