Error number: MY-012172; Symbol: ER_IB_MSG_347; SQLSTATE: HY000
Message: %s
错误说明 ER_IB_MSG_347 是MySQL服务器中的一种五次系统错误,标号为MY-012172。这项错误指出内部表管理器出现的错误,更具体的信息未明示。该错误与MySQL服务器的内存数据和硬盘数据分页相关,它源自由于某些文件和页的定位引发的对的索引的无效地址检索。
常见案例
此错误常常伴随插入,更新,删除或检索数据时出现,如果在MySQL执行这些操作时出现了任何不一致,这些任务就无法完成,系统就会发出这个错误。此外,这个错误也可能由某些类别的查询引起,如复杂的内联视图,或者在索引的上的有20多个查找字段的查询。
解决方法
首先,检查MySQL服务器版本,并确保已安装最新补丁及更新,因为许多内部表错误都与MySQL服务器本身有关,所以在相应版本上安装更新能很好地处理一些错误。其次,检查要求的查询,如果它们很复杂,可以尝试使用小心编写与需求等价的多个查询来避免这使问题。
此外,可以尝试检查硬件也可能有帮助,如检查要求的查询的输入表。如果表的字段是所需的大小,那么就可以正常运行,但是如果它们小于所需的大小或者未正确映射,则运行出错。另一种可能是MySQL运行时出现内存无法利用,这可通过对相关文件执行磁盘整理来解决,以确保允许内部表检验正确地使用。
最后,可以尝试重新构建内部表,因为这可能是一种有效的解决方案。可以使用OPTIMIZER TABLE命令,而不是同样的DROP TABLE/CREATE TABLE命令,重构表,也可以重置MySQL服务器,然后再运行MySQL服务器,看看是否解决了该问题。