MySQL Error number: MY-011967; Symbol: ER_IB_MSG_142; SQLSTATE: HY000 报错 故障修复 远程处理
文档解释
Error number: MY-011967; Symbol: ER_IB_MSG_142; SQLSTATE: HY000
Message: %s
Error MY-011967: ER_IB_MSG_142
错误说明
Error MY-011967: ER_IB_MSG_142,称为“Innodb状态错误”。这个报错信息是InnoDB存储引擎在执行过程中某些操作失败时出现的一个错误,指出MySQL对InnoDB存储引擎的一个保存状态的操作失败了,通常由于不可恢复的io错误或内部错误而引起。
常见案例
常见案例1:如果你在MySQL server上运行ALTER TABLE指令,操作无法正确运行完成,MySQL server可能会出现Error MY-011967: ER_IB_MSG_142错误,指出状态操作失败了。
常见案例2:如果你在MySQL server上重建software关联的表,操作失败,MySQL server可能会出现Error MY-011967: ER_IB_MSG_142错误,指出状态操作失败了。
解决方法
1. 运行mysqlcheck指令检查所有MySQL server表的数据文件和索引文件的完整性,如果发现损坏,应立即处理。
2. 使用flush tables with read lock命令,尝试把MySQL server锁定,保存当前状态。确保用户对MySQL server的所有操作都已完成,并完成任何相应的数据更新。切断任何客户端连接,然后立即重启它。
3. 尝试重新运行失败操作,看看能否成功完成,避免出现Error MY-011967: ER_IB_MSG_142错误。
4. 确认MySQL server的物理驱动器不会出现INE失败的情况,确保系统硬件的正常运行。此外,务必确保备份你的MySQL server数据可用。
5. 将MySQL server设置为模式严格,例如在my.cnf中添加sql_mode =STRICT_ALL_TABLES, 这样可以确保MySQL server在启动的时候不会被自动修复任何损坏的表或者恢复损坏的内部状态。
6. 必要时更新MySQL server到最新稳定版本,以保证系统具有最新版本的特性和修复。