扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
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--------------
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流