Error number: MY-011066; Symbol: ER_INNODB_ERROR_LOGGER_MSG; SQLSTATE: HY000
Message: %s
错误说明:
MY-011066 是 InnoDB 内部错误码。它指出 Innodb 日志记录器检测到的消息。例如,在表空间文件的内部计算异常,导致表空间页面现有空间更新失败。
MY-011066 错误尤其常见于更新大型表时出现。比如,当 INSERT、UPDATE 或 DELETE 语句被执行时,InnoDB 会执行一些内部操作以维护数据库完整和一致。例如,当新一页被插入表空间,InnoDB会在该新页的上一页计算一个链接,以证明上一页的存储地址,以及两页是有多少个字节长度的链接,这些计算非常关键,如果出错误,表空间更新失败。
解决方法:
(1)如果是在执行复杂查询时出现 MY-011066,那么可以尝试改进查询语句,减少查询复杂度,以期规避错误。
(2)如果是在执行 DDL 语句时出现 MY-011066,那么可以使用最新版本的 MySQL,并在更高的引擎版本上重新执行依赖错误 DDl 语句。
(3)在发生 MY-011066 前,最好做一次全备份。然后将备份恢复到一个新的数据服务器实例上,这将有助于检查损坏的文件,甚至检查数据库错误的更深层次原因。
(4)删除或重置 inc_log_status 文件,使数据库服务器能够重新开始写入这个文件。
(5)重新启动服务器,然后确认内存是否足够大,或者重新调整 InnoDB 的存储缓冲池大小,以至于最大化存储缓冲池使用率。
此外,重启服务器后,最好检查日志文件,以便与 MY-011066 错误一起收集进一步错误日志信息,并检查 MySQL 错误。