mysql frm ibd还原表_Mysql innodb引擎下根据.frm和.ibd文件恢复表结构和数据

一、先恢复表结构 frm

1、创建一个新的库

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

CREATE TABLE `t_test` (

`id` varchar(100) NOT NULL COMMENT '数据库主键id',

`user_name` varchar(255) NOT NULL COMMENT '账号',

`phone` varchar(255) DEFAULT NULL COMMENT '手机号',

`name` varchar(255) DEFAULT NULL COMMENT '昵称',

`password` varchar(255) DEFAULT NULL COMMENT '密码',

`create_date` varchar(100) DEFAULT NULL COMMENT '创建时间',

`status` int(255) DEFAULT NULL COMMENT '系统账号状态(0:冻结 1:正常)',

PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='账号表';

注意:如果是有原来数据库表的sql,就用原来的,这样后面会少一点出错;如果是未知表结构的,就随便创建一个表就行,但是表名字必须一致

CREATETABLE`jc_user`(`id`int(1))ENGINE=InnoDBDEFAULTCHARSET=utf8;

3、关闭Mysql 服务 net stop mysql

12010069.html

ccdcb52d22eb9ac4a5c885a48d9e50c0.png

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

innodb_force_recovery=1

12010069.html

12010069.html

245cc9344293de7c59e811f47a777e2e.png

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

6、启动Mysql

net stop mysql

12010069.html

d776e9f24ac0ebab60005aaf8d76121b.png

注意:如果你是有原来表结构的7、8、9、10、11都不用在继续操作

7、如果启动报错

一般就是字段不对应的问题,这个如果是你本地有这个对应的表,直接创建这个一模一样的表就不会保存

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

12010069.html

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

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

10、重新操作3~6 操作

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

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

二、恢复数据 ibd

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

2、关闭mysql 服务

12010069.html

net stop mysql

fa8fbddc1a40416a32752fc6f5c6e6ad.png

3、修改mysql 配置文件

#innodb_force_recovery=1

innodb_file_per_table=1

4、启动mysql 服务

84a8a5a0e7a12273b5a13fb77aaf504f.png

12010069.html

5、重新创建表

SET FOREIGN_KEY_CHECKS=0;

DROP TABLE IF EXISTS `t_test`;

CREATE TABLE `t_test` (

`id` varchar(100) NOT NULL COMMENT '数据库主键id',

`user_name` varchar(255) NOT NULL COMMENT '账号',

`phone` varchar(255) DEFAULT NULL COMMENT '手机号',

`name` varchar(255) DEFAULT NULL COMMENT '昵称',

`password` varchar(255) DEFAULT NULL COMMENT '密码',

`create_date` varchar(100) DEFAULT NULL COMMENT '创建时间',

`status` int(255) DEFAULT NULL COMMENT '系统账号状态(0:冻结 1:正常)',

PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='账号表';

6、执行

ALTER TABLEt_testDISCARD TABLESPACE;

7、关闭mysql 服务

35fe1e30c4ba76765dbb285eeb54c105.png

12010069.html

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

9、启动mysql 服务

7512789b41b63eca5f2da11dec664703.png

12010069.html

10、执行

ALTER TABLEt_test IMPORT TABLESPACE;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值