此方法只适合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+ibd文件还原data的更多相关文章

  1. mysql通过frm+ibd文件还原data

    此方法只适合innodb_file_per_table          = 1 当误删除ibdata 该怎么办? 如下步骤即可恢复: 1.准备工作 1)准备一台纯洁的mysql环境[从启动到现在没有 ...

  2. MySQL frm+ibd文件还原data的办法【数据恢复】

    MySQL frm+ibd文件还原data的办法[数据恢复] 此方法只适合innodb_file_per_table          = 1 当误删除ibdata 该怎么办? 如下步骤即可恢复: 1 ...

  3. mysql ibd 文件还原数据

    -- 这里要还原的表名为 test_table -- 1建库,并选中库,库名随意 -- 2查看InnoDB 引擎独立表空间是否开启 SHOW VARIABLES LIKE '%per_table%' ...

  4. mysql innodb 从 ibd 文件恢复表数据

    最近内部的 mysql 数据库发生了一件奇怪的事,其中有一个表 users625 突然出现问题, 所有对它的操作都报错误 数据表不存在. mysql> select count(*) from ...

  5. Mysql 通过frm&ibd 恢复数据

    mysql存储在磁盘中,各种天灾人祸都会导致数据丢失.大公司的时候我们常常需要做好数据冷热备,对于小公司来说要做好所有数据备份需要支出大量的成本,很多公司也是不现实的.万一还没有做好备份,数据被误删除 ...

  6. MYSQL 为表指定文件位置 data directory

    背景知识: 如果表不指定文件位置,它会保存到 data/database_name/table_file;其中data在你指定的安装目录下,为了提高IO我们尽可能的 用到多个硬盘的IO能力,这个就需要 ...

  7. Mysql ibd文件恢复指南

    背景 mysql在使用的过程中,难免遇到数据库表误操作,基于此,作者亲力亲为,对mysql数据表ibd文件的恢复做以下详细的说明,对开发或者初级dba提供一定的指导作用,博客中如若存在相关问题,请指明 ...

  8. MYSQL数据库根据data文件中的.frm和ibd文件恢复单表数据

    数据库误操作,把表的字段删除了,关键是被删除的字段的数据很重要,现在想要恢复数据,下面说说是怎么操作的. 数据库只剩.frm和.ibd文件了,按照网上的做法分如下两步来进行:一.找回表结构,二.找回数 ...

  9. 【MySQL】InnoDB引擎ibdata文件损坏/删除后使用frm和ibd文件恢复数据

    参考:http://my.oschina.net/sansom/blog/179116 参考:http://www.jb51.net/article/43282.htm 注意!此方法只适用于innod ...

随机推荐

  1. mysql5.7插入数据报错 Incorrect integer value

    mysql5.7插入字符串为空的时候取出来的值设置为null

  2. STS安装Drools

    download drools (including "Drools Engine" & "Drools and jBPM tools") from o ...

  3. (四:NIO系列) Java NIO Selector

    出处:Java NIO Selector 1.1. Selector入门 1.1.1. Selector的和Channel的关系 Java NIO的核心组件包括: (1)Channel(通道) (2) ...

  4. IOC依赖注入的原理

    一.什么是IOC 维基百科上说到:2004年Martin Fowler 提出了“控制反转的”概念,他得出的结论是:依赖对象的获得被反转了.后来为这个创造了一个更好的名字:依赖注入(IOC = Inve ...

  5. wepy_two

    2.代码高亮WebStorm/PhpStorm(其他工具参见:wepy官网代码高亮) (1)打开Settings,搜索Plugins,搜索Vue.js插件并安装. (2) 打开Settings,搜索F ...

  6. org.hibernate.hql.ast.QuerySyntaxException: tb_voteoption is not mapped [from tb_voteoption where voteID=?]

    转自:https://www.cnblogs.com/albert1017/archive/2012/08/25/2656873.html org.hibernate.hql.ast.QuerySyn ...

  7. layui在当前页面弹出一个iframe层,并改变这个iframe层里的一些内容

    layer.open({ type: 2, title: "专家信息", area: ['100%', '100%'], content: '/ZhuanJiaKu/AddZhua ...

  8. GitHub 搭建博客,出现 hexo g -d 报错

    想搭建一个个人博客,但是在将博客推送到Github上的时候在git bash 下运行hexo g -d命令出现错误: 错误如下:  fatal: HttpRequestException encoun ...

  9. Codeforces Round #424 (Div. 2, rated, based on VK Cup Finals) - A

    题目链接:http://codeforces.com/contest/831/problem/A 题意:给定一个序列,问你这个序列是否是单峰的. 定义单峰的序列为: (序列值的变化趋势)开始是递增的, ...

  10. django:一个RESTfull的接口从wsgi到函数的历程

    1.wsgi将web server参数python化,封装为request对象传递给apllication命名的func对象并接受其传出的response参数,这个application在wsgi.p ...