Mysql5.7利用frm与ibd恢复数据

MySQL5.7利用frm与ibd恢复数据

创新新互联,凭借十多年的网站设计、成都网站建设经验,本着真心·诚心服务的企业理念服务于成都中小企业设计网站有上千案例。做网站建设,选创新互联。

1、新建一个同名数据库,并且在里面新建一张表同名的表,字段随意。

---如果有原来表的表结构,那这步可以省略

将my.cnf配置文件增加innodb_force_recovery=6

2、把备份的.frm文件覆盖新建表的.frm文件,修改文件属主和权限,重启数据库,这个时候会在err文件提示你表结构的字段数不一致

3、重复再新建一张表同名的表,字段数和提示的一样多,字段名字类型随意

4、把备份的.frm文件覆盖新建表的.frm文件,修改文件属主和权限,重启数据库;这样表结构就恢复出来了。

5、根据表结构,再重建新的表,指定表的ROW_FORMAT属性,ROW_FORMAT=COMPACT;

CREATE TABLE ty (

  id bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',

  valid int(11) DEFAULT '1' COMMENT '是否有效 1:有效 0:无效',

  rel varchar(25) DEFAULT NULL,

  PRIMARY KEY (id)

) DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT;

这样,表结构就算是恢复完了。

6、恢复数据

在指定的数据库中执行丢弃表空间命令

alter table ty discard tablespace;

7、拷贝原来的ibd文件,并覆盖新建表ibd,并修改权限

chown mysql.mysql ty.ibd

8、导入表空间

alter table ty import tablespace;

这样整个数据就恢复回来了。

---------End-By-TangYun-----2019.10.14--------------


文章名称:Mysql5.7利用frm与ibd恢复数据
标题路径:http://pwwzsj.com/article/posdio.html