MySql数据库通过idb和frm恢复

时间:2022-09-20 13:54:24

阿里云的数据不小心误删了3000多条,然后提心吊胆的整夜整夜睡不着(才怪)。然后拿到阿里云的数据后。

恢复云数据库MySQL的备份文件到自建数据库,按照阿里云的要求恢复整个数据库,要求较多,linux方面又缺少人才,所以按照里面的要求,将tar.gz文件在linux下解压后,下一步就一直执行不下去,所以把解压出来的那个表的idb和frm文件从linux拿出来,在window下进行恢复,阿里云是mysql5.6我的是mysql5.7完美恢复。

注意:不常用mysql命令的注意mysql命令都是要加上“ ;”号的,我不认识这符号叫什么名字了。

参考:http://www.chriscalender.com/recovering-an-innodb-table-from-only-an-ibd-file/

抄袭

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文件所有者和权限设置) (这一步我直接略过,没管,其它4步是必不可少的)

                 5、执行 alter table `user` import tablespace; 执行完,表数据就可读了,这时候会丢失一些诸如表行记录数等存在系统表里的信息,不过那些信息无所谓。表其实这时候已经可以正常用了。如果不放心,可以导出sql语句或txt,再创建表导入。

写在后面的话:虽然最后还是损失了备份前的几十条数据,但是99%是给恢复了,数据无价,细心细心再细心