您好,登录后才能下订单哦!
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--------------
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。