MySQL Error number: MY-010879; Symbol: ER_INNODB_CANT_FIND_INDEX_IN_INNODB_DD; SQLSTATE: HY000 报错 故障修复 远程处理
文档解释
Error number: MY-010879; Symbol: ER_INNODB_CANT_FIND_INDEX_IN_INNODB_DD; SQLSTATE: HY000
Message: Cannot find index %s in InnoDB index dictionary.
错误说明
MySQL错误 MY-010879 对应的 SQLSTATE 状态 “HY000” 和报错信息“ER_INNODB_CANT_FIND_INDEX_IN_INNODB_DD”,这表明 InnoDB 在 dd 存储区中找不到索引,这通常意味着 InnoDB 表结构中至少有一个索引丢失。
常见案例
此错误经常发生在当某个用户尝试运行 SHOW CREATE TABLE 语句时,但在表结构中确实存在某个索引。MY-010879 错误会在MySQL版本5.7.5后出现,尤其在主从配置过程中,这个错误经常被触发出现。
解决方法
首先,要检查MySQL服务器中数据库中是否存在某个索引被丢失,如果确定索引丢失,此错误可以通过添加丢失的索引解决。
另外,当MySQL表中的索引实际未丢失时,可以尝试重启MySQL服务器。在重新启动MySQL服务器之后再次运行 SHOW CREATE TABLE 语句即可解决此错误。
如果索引添加了,但错误仍然发生,可以重建 InnoDB 数据字典,确保 InnoDB 表结构中的索引信息可以被加载。另外,也可以尝试在独立模式下重建数据字典,让它重新加载每个 InnoDB 表中的索引,即可解决此错误。