注:
一、这个是对Innodb的数据恢复。MyISAM不需要这么麻烦,只要数据文件存在直接复制过去就可以。
二、该方法只适用于
1:想要恢复或者导入表的ibd文件和frm文件
2:你不仅需有ibd和frm文件还需有ib_logfile0 ib_logfile1 ibdata1 这三个原文件
3:确保你的innodb_file_per_table是开启的,可以通过在控制台中执行 show variables like '%per_table%'; 查看是否开启
第一步:找到mysql的安装目录在mysql → mysql5.6.17 → data 下的 ib_logfile0 ib_logfile1 ibdata1 三个文件。
第二步:停止mysql服务,备份找到的三个文件,重要的事情说三遍,备份!备份!备份!
第三步:将需要导入的表frm文件和ibd文件拷贝到你的data文件下的同名数据库下,同时把ib_logfile0 ib_logfile1 ibdata1 (注:这三个文件不是你的备份文件,是指想要恢复的原库文件)三个文件拷贝到你的mysql安装目录的data下(mysql → mysql5.6.17 → data)
第四步:拷贝完成之后,重启mysql服务,这时你的innodb表文件就可以打开了,导出表数据及结构
第五步:再次停止mysql服务,将之前备份的ib_logfile0 ib_logfile1 ibdata1 三个文件重新放回 mysql → mysql5.6.17 → data 下
第六步:重启mysql服务,将导出的表文件导入到你的目标数据库中,整个操作就完成了