首页 > 数据库技术 > 详细

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

时间:2019-12-09 14:43:03      阅读:139      评论:0      收藏:0      [点我收藏+]

一、先恢复表结构 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,就用原来的,这样后面会少一点出错;如果是未知表结构的,就随便创建一个表就行,但是表名字必须一致
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、8、9、10、11都不用在继续操作
7、如果启动报错
    一般就是字段不对应的问题,这个如果是你本地有这个对应的表,直接创建这个一模一样的表就不会保存
8、mysql data 目录下dell-PC.err 文件查看错误
技术分享图片
提示字段不够 需要创建对应得数量字段
 
9、删除之前得表 重新创建
 
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 `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_test DISCARD TABLESPACE;
7、关闭mysql 服务
技术分享图片

 

 

技术分享图片
8、将 ibd 文件 拷贝到对应的数据目录
 
9、启动mysql 服务
技术分享图片

 

 

技术分享图片
10、执行
 
ALTER TABLE t_test IMPORT TABLESPACE;  
 

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

原文:https://www.cnblogs.com/LMDclg/p/12010069.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!