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 命令进行数据库备份和还原,然后重新生成表的索引。