MySQL Error number: MY-012782; Symbol: ER_IB_MSG_957; SQLSTATE: HY000 报错 故障修复 远程处理
文档解释
Error number: MY-012782; Symbol: ER_IB_MSG_957; SQLSTATE: HY000
Message: %s
错误ER_IB_MSG_957,指的是MySQL分布式数据库(Innobase)的一个消息:“Table %s was not closed with DROP TABLE, and reference to this table still exists in the InnoDB internal data dictionary.”. 它的SQLSTATE值为HY000,表明这是一个只有MySQL可以识别的常见错误。
报错原因是因为,建立表格时使用了DROP TABLE语句,而在InnoDB数据库里,表格并没有正常关闭,而是存留在内部数据字典中,系统无法提交。
常见的案例有:当一个用户在MySQL中建立表格时,使用了DROP TABLE语句,系统就报出了ER_IB_MSG_957错误。
解决方法有:
1. 使用ALTER TABLE语句代替DROP TABLE,这样可以让表格正常关闭,而不会报出这个错误。
2. 使用DROP TABLE语句,但要同时添加”IF EXISTS”参数,这样MySQL就可以判断表格是否存在,避免了这个错误的发生。
3. 如果DROP TABLE语句仍然没有解决问题,可以检查表格和索引,看看是否存在引用这个表格的内部数据字典。
4. 如果原因仍未找到,就需要重新安装或升级MySQL了。