28.5.1.7 如果遇到 table 损坏,请进行测试
以下过程适用于MyISAM个 table。有关遇到InnoDB
table 损坏时要采取的步骤的信息,请参阅第 1.7 节“如何报告错误或问题”。
如果遇到损坏的MyISAMtable 或某些更新语句后mysqld总是失败,则可以通过执行以下操作来测试问题是否可重现:
-
使用mysqladmin shutdown停止 MySQL 守护程序。
-
对 table 进行备份,以防万一修复会造成不良后果。
-
用myisamchk -s 数据库/*.MYI检查所有 table。使用myisamchk -r 数据库/table.MYI修复任何损坏的 table。
-
对 table 进行第二次备份。
-
如果需要更多空间,请从 MySQL 数据目录中删除(或移走)所有旧日志文件。
-
在启用二进制日志的情况下启动mysqld。如果要查找使_崩溃的语句,则还应该在启用常规查询日志的情况下启动服务器。参见第 5.4.3 节“常规查询日志”和第 5.4.4 节“二进制日志”。
-
当 table 崩溃时,请停止mysqld服务器。
-
恢复备份。
-
在没有启用二进制日志的情况下,重新启动mysqld服务器。
-
用mysqlbinlog 二进制日志文件| MySQL 的重新执行语句。二进制日志以名称
hostname-bin.NNNNNN
保存在 MySQL 数据库目录中。 -
如果 table 再次损坏,或者您可以使用上面的命令使mysqld死亡,则您发现了可重现的错误。使用第 1.7 节“如何报告错误或问题”中给出的说明,将 table 和二进制日志通过 FTP 传输到我们的错误数据库。如果您是支持 Client,则可以使用 MySQLClient 支持中心(https://www.mysql.com/support/)向 MySQL 团队发出有关该问题的警报,并尽快对其进行修复。