MySQL IBD文件恢复数据

562 阅读1分钟

MySQL IBD文件恢复数据

1:创建数据库

创建任意数据库

2: 创建表格

创建数据表

(备注:表结构要和要恢复的表结构一致,表名称,row_format要和ibd文件的row_format一致,否则,会提示两者不一致。 当前row_format=dynamic)

3、表的属性查看

我们使用:show table status like 'matlab';,查看表的属性

备注:创建表时候的row_format和表属性的不一致,基于innodb是,要把row_format设置成dynamic时,需要修改mysql的全局配置,直接在myql命令中修改:set global innodb_file_format=Barracuda;

我们在恢复表的时候,要保证row_format和ibd文件的一致,如果ibd文件是compact的话,需要建表的时候,设置成row_format=compact,在恢复的时候,自行解决,从第6步开始,重点说明如何去恢复。

4、表错误信息查看 show warnings

5:恢复

第一步:移除表空间

--移除表空间
alter table 表格 DISCARD TABLESPACE;

第二步: 拷贝idb文件

将备份的ibd文件,放到mysql->data->创建的数据库名称->,将ibd拷贝到此目录下,如下所示具体路径查看

-- 使用sql查询数据目录
show global variables like '%datadir%';

第三步:重新导入表空间

alter table 表格 IMPORT TABLESPACE;

正常情况下以上三部执行完就恢复结束了.

参考:www.jb51.net/database/29…