-- 这里要还原的表名为 test_table

-- 1建库,并选中库,库名随意

-- 2查看InnoDB 引擎独立表空间是否开启
SHOW VARIABLES LIKE '%per_table%'
; -- 3设置InnoDB 引擎独立表空间开启,这样data目录下新建的表都会有对应的.ibd数据文件
SET GLOBAL innodb_file_per_table=1
; -- 4建表
CREATE TABLE `test_table` (
`id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`openid` VARCHAR(28) DEFAULT NULL,
`prize_id` INT(11) DEFAULT '' COMMENT '奖品id,默认0未中奖',
`prize_name` VARCHAR(100) DEFAULT NULL COMMENT '奖品名称',
`type_id` TINYINT(4) DEFAULT '' COMMENT '类别默认0',
`username` VARCHAR(50) DEFAULT NULL COMMENT '用户名',
`phone` VARCHAR(15) DEFAULT NULL COMMENT '手机号',
`province` VARCHAR(50) DEFAULT NULL COMMENT '省',
`city` VARCHAR(100) DEFAULT NULL COMMENT '市',
`address` VARCHAR(255) DEFAULT NULL COMMENT '详细地址',
`add_time` INT(11) DEFAULT NULL COMMENT '添加时间',
`update_time` INT(11) DEFAULT NULL COMMENT '更新时间',
PRIMARY KEY (`id`)
) ENGINE=INNODB DEFAULT CHARSET=utf8
;
-- 5 使当前ibd 的数据文件和frm 分离
ALTER TABLE test_table DISCARD TABLESPACE
;
-- 6将备份的ibd文件覆盖当前表的ibd -- 7 加载关联新ibd文件
ALTER TABLE test_table IMPORT TABLESPACE
-- 这一步可能报错,查看错误日志,本地设置的是.err文件
-- InnoDB: Error: tablespace id and flags in file './data/test_table.ibd' are 2170 and 0, but in the InnoDB
-- InnoDB: data dictionary they are 1 and 0.
-- 原因是,服务器上的表空间ID 为2170 本地新建的表空间ID为1,所以导致这个错误发生,解决办法是:让他们的表空间ID一致,即在本地不断的创建删除 test_table 表。
;
-- 可在程序里循环执行如下两句,直到本地和线上数据库上该表的表空间ID一致
-- CREATE TABLE test_table (id INT) ENGINE=INNODB
-- DROP TABLE `test_table`
-- 最后删除表后重新从第4步开始执行 -- 8查看表数据,如果报错则找到my.ini文件
-- 查找有无innodb_force_recovery这一属性,如果没有则在最下一行添加 innodb_force_recovery=1 还报错的话就修改值2,3,4,5等,直到可以正确查看表数据为止 -- 9 可以查看表后立即导出sql文件,再把my.ini文件中innodb_force_recovery属性值改回默认的0,或注释掉(默认值也是0)

mysql ibd 文件还原数据的更多相关文章

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

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

  2. c# Process cmd 执行完回调 Proc_OutputDataReceived mysql mysqldump mysql source备份还原数据

    c# Process 执行完回调 Proc_OutputDataReceived mysql mysqldump mysql source备份还原数据 直接贴代码 前提:mysql5.7 vs2017 ...

  3. MySQL备份和还原数据

    MySQL备份和还原数据 导出整个数据库 mysqldump -uroot -p database_name > db_backup.sql 导入整个数据库 mysql -uroot -p da ...

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

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

  5. MySQL表结构为InnoDB类型从ibd文件恢复数据

    客户的机器系统异常关机,重启后mysql数据库不能正常启动,重装系统后发现数据库文件损坏,悲催的是客户数据库没有进行及时备份,只能想办法从数据库文件当中恢复,查找资料,试验各种方法,确认下面步骤可行: ...

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

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

  7. 亲測Mysql表结构为InnoDB类型从ibd文件恢复数据

    客户的机器系统异常关机,重新启动后mysql数据库不能正常启动,重装系统后发现数据库文件损坏,悲催的是客户数据库没有进行及时备份,仅仅能想办法从数据库文件其中恢复,查找资料,试验各种方法,确认以下步骤 ...

  8. mysql 之 frm+ibd文件还原data

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

  9. Mysql ibd文件恢复指南

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

随机推荐

  1. 设置全局导航栏颜色,标题大小和UIBarButtonItem字体大小

    设置全局导航栏颜色,标题大小和UIBarButtonItem字体大小 在appdelegate里面设置 swift: UINavigationBar.appearance().barTintColor ...

  2. django+xadmin在线教育平台(十六)

    7-7 modelform 提交我要学习咨询1 对应表userask form会对字段先做验证,然后保存到数据库中. 可以看到我们的forms和我们的model中有很多内容是一样的.我们如何让代码重复 ...

  3. PHP+Mysql注入防护与绕过

    今天给大家分享一个关于php常见的注入防护以及如何bypass的文章,文章内容来源国外某大佬总结,我做了一下整理,文章来源地址不详,下面正文开始.以下的方式也仅仅是针对黑名单的过滤有一定的效果,为了安 ...

  4. bootstrap-daterangepicker插件运用

    引入:daterangepicker.css.daterangepicker.js.moment.js.moment.min.js 链接:https://files.cnblogs.com/files ...

  5. thinkphp5数据库导入Excel表格

    $data=$order_info; //$data 你要下载谁 就去查谁 // $data= Db::name('order_info') // ->field('consignee,tel, ...

  6. python 使用生成器 来完成 监听文件输入的例子

    def tail(filename):#函数 f = open(filename,encoding='utf-8') while True: line = f.readline() if line.s ...

  7. QOS-QOS(服务质量)概述

    QOS-QOS(服务质量)概述 2018年7月7日  20:29 概述及背景: 1.  引入: 传统IP网络仅提供“尽力而为”的传输服务,网络有可用资源就转发,资源不足时就丢弃 新一代IP网络承载了 ...

  8. Eclipse_安装SAP_HANA数据库插件

    1.对于Eclipse Oxygen,请添加URL https://tools.hana.ondemand.com/oxygen 2.对于Eclipse luna,请添加URL     https:/ ...

  9. 【转】Android开发之ListView+EditText-要命的焦点和软键盘问题解决办法

    Android开发之ListView+EditText-要命的焦点和软键盘问题解决办法 [原文链接] 这篇文章完美的解决了我几个月没结论的bug... 感谢热爱分享的技术达人~ 我是怎么走进这个大坑的 ...

  10. java入门---基础语法&基础常识&编码规范&命名规范

        一个Java程序可以认为是一系列对象的集合,而这些对象通过调用彼此的方法来协同工作.下面简要介绍下类.对象.方法和实例变量的概念. 对象:对象是类的一个实例,有状态和行为.例如,一条狗是一个对 ...