Error number: MY-010754; Symbol: ER_ERROR_DURING_OPTIMIZE_TABLE; SQLSTATE: HY000
Message: Warning: Optimize table got errno %d on %s.%s, retrying
错误说明
MySQL的ER_ERROR_DURING_OPTIMIZE_TABLE错误,以HY000为SQLSTATE,以MY-010754为错误号,其英文原文为“Got error ‘optimizer failed; will attempt to reconstruct’ when optimizing table”。这是一个MySQL复原程序表优化发生的一个错误,隐含着MySQL在进行表优化时发生了某种问题,因此尝试复原该表。
常见案例
ER_ERROR_DURING_OPTIMIZE_TABLE错误可以由多种原因引起。其中最常见的原因是MySQL在运行OPTIMIZE TABLE指令时,某些底层的文件损坏导致的,或者由于系统的网络延时导致的,或者由于MySQL本身的BUG导致的,或者由于表损坏导致的,等等。
解决方法
如果遇到ER_ERROR_DURING_OPTIMIZE_TABLE错误,开发者应该先使用CHECK TABLE 和REPAIR TABLE 指令来确定表是否可以正常使用。 如果没有问题,开发者应该尝试检查MySQL是否存在损坏的文件或数据库,尝试使用mysqlcheck指令对MySQL的数据库和表进行全面检查。 并且删除所有临时表和索引, myisamchk –safe-recover指令 可以强制MySQL执行此功能,该指令会使那些损坏的表恢复到正常状态,只在MyISAM数据库中有效。 如果实施上述步骤无效, 则应考虑在最新的MySQL稳定版本上重新安装MySQL,以解决ER_ERROR_DURING_OPTIMIZE_TABLE错误。