通过.ibd文件恢复MySQL数据库
先介绍一下Innodb与MyISAM存储文件的区别,MyISAM存储文件可以直接复制到MySQL数据目录进行读写,Innodb则需要导入表空间并确保表属性的一致性。
Innodb存储文件分为:.frm,.idb
.frm:存储表定义
.ibd:存储数据和索引
MyISAM存储文件分为:.frm,.myd,.myi
.frm:存储表定义
.myd:存储数据
.myi:存储索引
数据恢复操作步骤
1、创建数据库
2、历史表属性查看
show table status like '表名'\G;查看表的属性

3、创建表
建议根据备份的sql文件进行导入,注意表结构要和要恢复的表结构一致,row_format要和ibd文件的row_format一致,否则,会提示两者不一致并无法导入数据。 row_format=dynamic或compact
4、恢复第一步:移除表空间
mysql> alter table x3third_lj_acd discard tablespace;
Query OK, 0 rows affected (0.06 sec)
5、恢复第二步:将备份的ibd文件,复制到mysql的数据目录
可通过命令查询数据目录位置: show global variables like '%datadir%';

6、恢复第三步:重新导入表空间
mysql> alter table x3third_lj_acd import tablespace;
Query OK, 0 rows affected, 1 warning (3 min 30.56 sec)
注意观察日志文件提示

执行完如上步骤后, 日志提示同步数据到硬盘完毕,现在可尝试读取数据。
征途漫漫,惟有奋斗!
浙公网安备 33010602011771号