环境与要求
- MySQL 5.7.28
- Innodb引擎
- 数据库表结构未丢失(就是建表的sql脚本未丢失)。否则要先恢复表结构,可以看看 《mysql根据.frm和.ibd恢复数据》
操作
# 1、找一个环境安装一个同版本的mysql数据库,然后执行sql脚本,先把要恢复数据的表的表结构建出来。
# 2、解除外键约束
SET foreign_key_checks = 0;
# 3、移除要恢复的表的表空间
ALTER TABLE `table_name` DISCARD TABLESPACE;
# 4、暂停mysql服务
# 5、将备份的idb文件复制到mysql data 对应数据库对应位置
# 6、开启mysql服务
# 7、恢复要恢复的表的表空间
ALTER TABLE `table_name` IMPORT TABLESPACE;
# 8、恢复外键约束
SET foreign_key_checks = 1;
#9、一直没有报错的话就恢复成功了
说明
frm 和 idb 文件默认在mysql安装目录下data文件夹下对应数据库命名的文件夹。