Error number: MY-011996; Symbol: ER_IB_MSG_171; SQLSTATE: HY000
Message: %s
Error number: MY-011996; Symbol: ER_IB_MSG_171; SQLSTATE: HY000
错误说明
ER_IB_MSG_171是MySQL服务器抛出的一条错误消息,该错误代码是MY-011996,并使用SQLSTATE:HY000标记。这个错误指示InnoDB存储引擎无法打开表,因为由于损坏的数据库文件,表上存在内部问题。也就是说,表文件实际上是损坏的。
常见案例
此类错误通常会在下列情况出现:
1.数据库正在正常运行时,突然出现崩溃/宕机;
2.mysqld已经停止运行,而不是崩溃;
3.可能由于许多其他因素,诸如OS磁盘不可用,不足的作业空间,电力中断,系统崩溃等,引起故障。
解决方法
要恢复所有损坏的InnoDB表,您可以借助innodb_force_recovery,它是一个用于修复损坏InnoDB表的调试选项。可以设置innodb_force_recovery为1到6的任何一个值,以逐步恢复故障表。每当在设置innodb_force_recovery时采取额外的安全措施,因为m改变该值可能会造成数据丢失。
最后,如果可能的话,我们应该按原状进行一个完整的备份, 而不是仅仅尝试恢复损坏的表, 这可能会放大我们的后果,比如数据丢失,数据不一致等。