Mysql innodb引擎下根据.frm和.ibd文件恢复表结构和数据

数据结构

Mysql innodb引擎下根据.frm和.ibd文件恢复表结构和数据_第1张图片

恢复表结构 frm

1、创建一个新的库

2、创建一个任意一张表 表名与需要恢复得表结构

CREATE TABLE `jc_user`( `id` int(1)) ENGINE=InnoDB DEFAULT CHARSET=utf8;

3、关闭Mysql 服务

net stop mysql

4、修改Mysql 配置文件 My.ini     添加

innodb_force_recovery=1

5、把备份文件中得  frm 文件 拷贝到数据空对应位置

6、启动Mysql  

net stop mysql

7、如果启动报错

Mysql innodb引擎下根据.frm和.ibd文件恢复表结构和数据_第2张图片

8、mysql data 目录下dell-PC.err 文件查看错误

提示字段不够  需要创建对应得数量字段

9、删除之前得表   重新创建

Mysql innodb引擎下根据.frm和.ibd文件恢复表结构和数据_第3张图片

10、重新操作3~6 操作

11、如果还不成功可以下面进行修改

innodb_force_recovery=1   #修改为 2,3,4,5,6

恢复数据 ibd

1、将上一步恢复得表结构进行导出

2、关闭mysql 服务

net stop mysql

3、修改mysql 配置文件

#innodb_force_recovery=1
innodb_file_per_table=1

4、启动mysql 服务

5、重新创建表

SET FOREIGN_KEY_CHECKS=0;

DROP TABLE IF EXISTS `jc_user`;
CREATE TABLE `jc_user` (
  `id` int(32) NOT NULL AUTO_INCREMENT,
  `name` varchar(50) DEFAULT NULL,
  `sex` int(1) DEFAULT NULL,
  `createTime` datetime DEFAULT NULL,
  `updateTime` datetime DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

6、执行

ALTER TABLE jc_user DISCARD TABLESPACE;

7、关闭mysql 服务

8、将 ibd  文件 拷贝到对应的数据目录

9、启动mysql 服务

10、执行

ALTER TABLE jc_user IMPORT TABLESPACE;  

 

你可能感兴趣的:(MySQL)