MySQL InnoDB错误1034表'tableName'的密钥文件不正确;尝试修复它

时间:2016-08-19 21:10:10

标签: mysql innodb

我正在使用InnoDB引擎进行MySQL并且设置了file_per_table设置,突然两个.ibd文件被破坏并且它们的大小变为零Byte,现在我设法恢复这两个.ibd文件的旧版本并且我做这些恢复数据的步骤

  

1-创建一个空数据库
  2-创建一个与损坏的一个相同的表   3-使用“ALTER TABLE tableName DISCARD TABLESPACE
  4-复制数据文件夹中的recoverd .ibd文件   5-使用“ALTER TABLE tableName IMPORT TABLESPACE

但它给了我这个错误

  

错误(1034):表'tableName'的密钥文件不正确;尝试修复它

当我尝试使用REPAIR TABLE tableName;或甚至

修复它时

mysqlcheck -r -u root -p databaseName `它给了我这个错误

  

表的存储引擎不支持修复

1 个答案:

答案 0 :(得分:1)

你采取了错误的方法来恢复表。由于文件系统不一致,文件的大小变为零。

您不需要ibd文件,您需要其中的数据。所以恢复数据,而不是文件。

正如我们所讨论的那样,您应该使用page_parser扫描磁盘,然后从InnoDB页面(constraints_parser中提取相同工具包中的记录)。