MySQL--通过.frm和.ibd对mysql数据恢复

转载:http://bbs.csdn.net/topics/392114182

例如说 现在要恢复user表
1、先建立和之前user表一样的表结构。就是执行create table user .... ,执行完,数据库目录下就会建立user.ibd文件(当然还有其他的)
2、执行 alter table `user` discard tablespace ; 执行完之后,数据库目录下的user.ibd文件就没了
3、把你备份的ibd放到消失的user.ibd文件那里。
4、给这个文件加权限,所有者mysql ,权限660(你可以参考别的ibd文件所有者和权限设置)
5、执行 alter table `user` import tablespace; 执行完,表数据就可读了,这时候会丢失一些诸如表行记录数等存在系统表里的信息,不过那些信息无所谓。表其实这时候已经可以正常用了。如果不放心,可以导出sql语句或txt,再创建表导入。

原文地址:https://www.cnblogs.com/microcat/p/7418202.html