MySQL Error number: MY-012804; Symbol: ER_IB_MSG_979; SQLSTATE: HY000

文档解释

Error number: MY-012804; Symbol: ER_IB_MSG_979; SQLSTATE: HY000

Message: %s

错误说明

错误号MY-012804:ER_IB_MSG_979表示一个MySQL严重错误,错误信息为:InnoDB: Index col is marked as unusable错误。是由于在存储过程中,针对某个索引键检测出来某个索引字段不可使用所产生的MySQL错误。

常见案例

MySQL中可能会出现MY-012804:ER_IB_MSG_979的严重错误,出现这种警告常会出现在mysql data dictionary 对于不同的表和索引之间存在冲突的情况,比如说索引名是创建或者删除索引时重复使用了,或者是由于改变表结构某个索引字段不可用,引起了冲突。

解决方法

一般处理方法及步骤

1.先备份好你的数据,保证在解决错误的过程中可以及时恢复到已有的数据状态。

2.找出冲突的索引所在的表,然后检查索引字段的定义,检查该字段在表中是否被使用了,如果被使用了,则要确认字段不会影响到索引字段的有效性。

3.可以尝试重新建立索引,看看可以解决冲突:ALTER TABLE table_name DROP INDEX index_name 和 CREATE INDEX index_name ON table_name(column_name);

4.有时也可以尝试重新分割InnoDB字典表,让其自动调整为新的字典表,分割InnoDB字典表的有关方法可以在MySQL官网查询。

5.如果一切方法都行不通,可以考虑使用mysqldump 命令进行数据库备份和还原,然后重新生成表的索引。

你可能感兴趣的