Error number: MY-011914; Symbol: ER_IB_MSG_89; SQLSTATE: HY000
Message: %s
**错误说明:**
MY-011914; ER_IB_MSG_89:HY000代表的是MySQL运行时报错误,指明了InnoDB Storage engine出现的问题。该错误是3020形式的,消息分类是Error:Error-Completion,消息为:Table “” has inconsistency in its pages,表示InnoDB表页面在运行中出现紊乱,此错误是非常严重的,可能会引出后续的严重数据错误。
这个错误是InnoDB存储引擎发现表页面出现紊乱而抛出的错误,有可能是由于太多未提交的事务或由于并发事务导致表页面出现inconsistency(不一致性)。同时也有可能是在表空间中由于过多的空间碎片,InnoDB抛出的表的一致性错误。当查看日志发现当前存储介质出现read-only时,也会出现此类错误。
**解决方法:**
1. 当MySQL服务器报出此错误时,系统有可能处在存储引擎错误中而无法处理,管理员可以采取停止MySQL服务然后重新启动来把MySQL恢复正常,并重新检查InnoDB表空间,确定问题所在。
2. 由于表空间出现了错误,可以尝试使用innodb_force_recovery参数,但是这种方法只能解决部分问题,同时可能会导致数据的丢失。
3. 如果这个错误发生的比较频繁,建议管理员对多余的空间碎片进行整理,避免影响表的一致性。
4. 管理员可以使用mysqlcheck工具检测表空间是否存在inconsistency 问题,并可以尝试使用myisamchk -r进行修复表,,如果不能修复,也可以尝试使用mysqldump工具备份–single-transaction参数导出。
最后,建议你管理员可以经常使用mysqlcheck,myisamchk等工具对MySQL数据进行扫描和修复,以便能够及时发现并处理数据库中可能出现的问题。