MySQL 8.3 Release Notes
以下过程适用于 MyISAM
表。如果您遇到 InnoDB
表损坏,见 第 1.5 节,“如何报告错误或问题”。
如果您遇到损坏的 MyISAM
表,或者如果 mysqld 在某些更新语句后总是失败,您可以通过以下步骤来测试问题是否可重现:
-
使用 mysqladmin shutdown 停止 MySQL 守护进程。
-
备份表,以防止修复过程中出现问题。
-
使用 myisamchk -s database/*.MYI 检查所有表。使用 myisamchk -r database/
table
.MYI 修复损坏的表。 -
备份表的第二份副本。
-
从 MySQL 数据目录中删除(或移动)旧日志文件,以释放更多空间。
-
使用启用二进制日志的 mysqld 启动服务器。如果您想找到崩溃 mysqld 的语句,您应该启用通用查询日志。见 第 7.4.3 节,“通用查询日志” 和 第 7.4.4 节,“二进制日志”。
-
当您获得崩溃的表时,停止 mysqld 服务器。
-
恢复备份。
-
重新启动 mysqld 服务器 不 启用二进制日志。
-
使用 mysqlbinlog binary-log-file | mysql 重新执行语句。二进制日志文件保存在 MySQL 数据库目录中,名称为
hostname-bin.
。NNNNNN
-
如果表再次损坏或您可以使用上述命令使 mysqld 崩溃,您已经找到一个可重现的错误。使用 第 1.5 节,“如何报告错误或问题” 中的说明将表和二进制日志文件上传到我们的错误数据库中。如果您是支持客户,可以使用 MySQL 客户支持中心 (https://www.mysql.com/support/) 报告问题并尽快修复。