Documentation Home
MySQL 8.4 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 39.8Mb
PDF (A4) - 39.9Mb
Man Pages (TGZ) - 257.9Kb
Man Pages (Zip) - 364.9Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 8.4 Reference Manual  /  ...  /  Making a Test Case If You Experience Table Corruption

7.9.1.7 如果您遇到表损坏,请创建一个测试用例

以下步骤适用于MyISAM表。关于遇到mysqld表损坏的步骤,请参阅第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崩溃的语句,可以使用mysqld启动时启用通用查询日志。请参阅第7.4.3节,“通用查询日志”第7.4.4节,“二进制日志”

  7. 当您已经获取了崩溃的表时,请停止mysqld服务器。

  8. 恢复备份。

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

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

  11. 如果表格再次损坏或您可以使用上述命令让mysqld崩溃,您已经找到可重复的bug。使用第1.6节,“报告错误或问题”中的指令将表格和二进制日志上传到我们的bug数据库。如果您是支持客户,您可以使用MySQL客户支持中心(https://www.mysql.com/support/)通知MySQL团队,并尽快修复问题。