此方法只适合innodb_file_per_table          = 1

当误删除ibdata 该怎么办? 如下步骤即可恢复:

1、准备工作

1)准备一台纯洁的mysql环境【从启动到现在没有使用过INNODB的表结构的mysql环境】(当然也可以不用纯洁的,但是一定要保证表id 小于后续要恢复的表id);

2)备份frm、ibd文件;

2、通过frm恢复表结构

1)在测试库里新建任意一表,表结构随意,表名必须为:要恢复数据的表名【即为frm前缀名】

例如:CREATE TABLE five_monitor (id int(11) NOT NULL ) ENGINE=InnoDB ;

2)关闭mysql

3)用需要恢复的frm文件直接替换测试库刚新建的frm文件;

4)在配置文件里添加innodb_force_recovery = 6,然后启动;

5)show create table  five_monitor;即能看到你需要的表结构信息了;

6)然后去掉innodb_force_recovery = 6 设置,重启mysql为下一步做准备;

3、通过ibd恢复表数据

1)查看表的space id( http://haildb.sourcearchive.com/ ... 0fil_8h_source.html   00118有说明)

a: hexdump -C five_monitor.ibd |head -n 3 |tail -n 1|awk '{print $6$7}‘

b: 通过以上结果到mysql里面去转成10进制:select conv('67c0',16,10);

说明space id为:26560

2)新建innodb表补充ibdata里面的table id

如果想看到ibd里面的数据,我们必须让space id 与刚启动的mysql ibdata里面的记录的表id一致;

新建一个表innodb,ibdata里面的表id就会+1,而刚才已经新建过表了,所以id已经+1了

故我们还需要新建26560-1(刚才新建的)-1(要恢复的表)=26558个表

for i in `seq 0 26557`; do mysql --user=××× ×××××  -e "CREATE TABLE iinser$i (id bigint(20) NOT NULL AUTO_INCREMENT,PRIMARY KEY (id)) ENGINE=innodb "; done

3)导入要恢复的表

a:在另外一个测试库里按照第2步导出的表结构新建表;

b:alter table   five_monitor discard tablespace;

c:cp 要恢复的ibd 到刚建的表的目录里,并修改mysql权限

d:alter table   five_monitor import tablespace;

4)在配置文件里添加innodb_force_recovery = 6,然后启动;

这样你就能看到你想要的数据了。当然一定要通过dump 或者select * from into outfile把data导出;

MySQL 修改frm文件_mysql 之 frm+ibd文件还原data相关推荐

  1. mysql frm 恢复_mysql 从 frm 文件恢复 table 表结构的3种方法

    mysql 正常运行的时候,查看 table 的结构并不是困难的事. 但是有时 mysql 发生故障,这种方法便不再可行. 当遇到故障,通常使用新的 mysql 实例来恢复当前的数据. 建表是非常重要 ...

  2. mysql ibd文件还原_MySQL单表ibd文件恢复方法详解

    前言: 随着innodb的普及,innobackup也成为了主流备份方式.物理备份对于新建slave,全库恢复的需求都能从容应对. 但当面临单表数据误删,或者单表误drop的情况,如果使用物理全备进行 ...

  3. mysql索引 物理文件_MySQL体系结构之物理文件

    一.MySQL日志文件 mysql日志文件及功能: 日志文件 功能 错误日志 记录启动.停止.运行过程中mysqld时出现的问题 通用日志 记录建立客户端连接和执行的语句 二进制日志 记录更改数据的所 ...

  4. mysql innodb 文件_MySQL与InnoDB相关文件

    原标题:MySQL与InnoDB相关文件 上期回顾 <InnoDB存储引擎> 概要 本章将会分析构成MySQL数据库和InnoDB存储引擎的各种类型文件,这些文件有如下几种: 参数文件:主 ...

  5. mysql 修改配置生效_MySQL修改my.cnf配置不生效的解决方法

    本文实例讲述了MySQL修改my.cnf配置不生效的解决方法.分享给大家供大家参考,具体如下: 一.问题: 修改了 my.cnf 配置文件后,却不生效,这是怎么回事? 二.原因: 我们注意到,这里只说 ...

  6. mysql修改字段结构_MySQL修改表结构及其添加删除修改字段功能

    MySQL修改表结构添加删除修改字段 创建数据库CREATE DATABASE database_name 创建表CREATE TABLE `user` ( `id` int(11) unsigned ...

  7. mysql修改数据列_MySQL数据库修改一列内容

    匿名用户 1级 2018-07-05 回答 下面列出: 1.增加一个字段 alter table user add COLUMN new1 VARCHAR(20) DEFAULT NULL; //增加 ...

  8. mysql修改数据库历史_MySQL之操作数据库

    二.操作数据库 操作数据库-->操作数据库中的表-->操作数据库中表的数据 注:所有语句都要用;结尾. 1.操作数据库 例:创建数据库westos并使用. 注:以后所有命令带[]表示可选, ...

  9. mysql 导入8msql文件_MySQL导入大容量SQL文件数据问题

    mysql在通过导入sql文件可能会出现下面二个问题: 1.如果sql文件过大,会出现"MySQL server has gone away"问题; - 2.如果sql文件数据有中 ...

  10. mysql修改数据库名字_mysql 数据库修改名字

    通过information_schema信息修改rename database的目的 mysql 没有rename database 命令,只能变相修改表到目标库里的表来实现: 拼接reanme ta ...

最新文章

  1. 共阳极数码管动态扫描c语言,《C语言编程实训》实训指导书三
  2. c#结合emgucv进行人脸检测_人脸识别与测温结合在办公场景有哪些应用?
  3. 【学习笔记】2019-Learning_UVOS_Through_Visual_Attention
  4. 【URAL - 1114 】Boxes (dp,组合数学)
  5. 苹果概念手机_吊打华为苹果!马云概念手机终于问世?
  6. JSP小项目,会员管理系统之实现登录功能
  7. 解决sql脚本文件太大无法打开的问题
  8. 项目组成和开发步骤——VB
  9. 常微分方程的解析解(方法归纳)以及基于Python的二阶微分方程边值问题的数值算例实现
  10. 一些代码美化的实用网站
  11. IMS+金蝶K3搭建简易版本供应商协同管理平台(SRM)
  12. 2013-C++第15周项目参考解答链接集
  13. CSS3——渐变(线性渐变、径向渐变、重复性渐变)
  14. Most of the disks failed
  15. 百度AI——人脸识别案例
  16. 主域名跳转到带www的域名方法,以及对seo有什么影响?
  17. leecode [保持城市天际线]代码实现
  18. 用好商品说话、为消费者服务、为全行业赋能:值得买科技618战报发布
  19. intouch制作历史趋势公用弹窗
  20. 【2021最新版】RabbitMQ面试题总结(32道题含答案解析)

热门文章

  1. Android跳转到手机自启动管理页面
  2. 忍者安全渗透系统(NINJITSU OS V3)的安装详细过程,亲测新旧vm版本都可安装,附带下载来源
  3. AI代替30%班主任工作 尚德机构督学机器人上线
  4. 狐妖小红娘服务器维护,3月7游戏更新公告 狐妖小红娘版本上线
  5. 卡贴机变无锁教程_有锁机变无锁教程 教你轻松设置去掉卡贴有锁机变无锁完美4G...
  6. android背光,Android背光亮度调节
  7. 索尼手机的摄像功能怎么样?
  8. Oracle AutoVue 安装与配置说明
  9. 怎么设置html表格的最小宽度,HTML表格的宽度怎么设置
  10. realsense moveit生成octomap错误:‘Client [/move_group] wants topic /camera/color/image_raw to have dataty