MYSQL .ibd文件数据恢复

恢复还原mysql中的.ibd文件。
1、需先创建一个一样的数据库表结构
2、删除表空间
ALTER TABLE "+dbName+" DISCARD TABLESPACE;
3、复制xxxxx.ibd文件到数据库目录下

4、恢复导入表空间
ALTER TABLE "+dbName+" IMPORT TABLESPACE;

--------恢复frm表结构------`切记:一定要按照顺序操作,否则库会死掉,要重新安装重新来一波`------------------

1、正常mysql服务中创建同样的表名,字段随意1个,表名必须与.frm完全一致
create table app_info(id int);

2、停止数据库服务my.ini中追加
【mysqld】
innodb_force_recovery=6
3、把*.frm进行物理覆盖
4、启动服务执行
desc app_info报错,找到.err文件中的真实列数(我的事例中可以看出是7列)
MYSQL .ibd文件数据恢复

5、停止服务,去掉my.ini中的innodb_force_recovery=6,再启动服务,删除数据表。
删除后创建对应的列数表
create table app_info(id1 int,id2 int,id3 int,id4 int,id5 int,id6 int,id7 int);

6、重复2、3步骤
服务启动后执行desc即可看到完整的表结构
MYSQL .ibd文件数据恢复

然后选中表右键“对象信息”可以看到DLL
MYSQL .ibd文件数据恢复

7、再次停止服务,去掉my.ini中的innodb_force_recovery=6,再启动服务,删除数据表,指定获取的真实dll即可还原表结构

相关推荐