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

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

一、找回表结构,如果表结构没有丢失直接到下一步

a、先创建一个数据库,这个数据库必须是没有表和任何操作的。

b、创建一个表结构,和要恢复的表名是一样的。表里的字段无所谓。一定要是innodb引擎的。CREATE TABLE `test`(  `testID`
bigint(20)) ENGINE=InnoDB DEFAULT CHARSET=utf8;

c、关闭mysql, service mysqld stop;

d、用需要恢复的frm文件覆盖刚新建的frm文件;

e、修改my.ini 里  innodb_force_recovery=1 , 如果不成修改为 2,3,4,5,6。

f、 启动mysql,service mysqld start;show create table test就能够看到表结构信息了。

二、找回数据

a、建立一个数据库,根据上面导出的创建表的sql执行创建表。

b、找到记录点。先要把当前数据库的表空间废弃掉,使当前ibd的数据文件和frm分离。  ALTER TABLE test DISCARD TABLESPACE;

c、把之前要恢复的 .ibd文件复制到新的表结构文件夹下。 使当前的ibd 和frm发生关系。ALTER TABLE test  IMPORT TABLESPACE;

d、将恢复好的数据导出就行了

时间: 2024-10-12 21:40:41

亲测Mysql表结构为InnoDB类型从ibd文件恢复数据的相关文章

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

客户的机器系统异常关机,重新启动后mysql数据库不能正常启动,重装系统后发现数据库文件损坏,悲催的是客户数据库没有进行及时备份,仅仅能想办法从数据库文件其中恢复,查找资料,试验各种方法,确认以下步骤可行: 一.找回表结构.假设表结构没有丢失直接到下一步 a.先创建一个数据库.这个数据库必须是没有表和不论什么操作的. b.创建一个表结构.和要恢复的表名是一样的. 表里的字段无所谓. 一定要是innodb引擎的.CREATE TABLE `test`(  `testID` bigint(20))

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

客户的机器系统异常关机,重启后mysql数据库不能正常启动,重装系统后发现数据库文件损坏,悲催的是客户数据库没有进行及时备份,只能想办法从数据库文件当中恢复,查找资料,试验各种方法,确认下面步骤可行: 一.找回表结构,如果表结构没有丢失直接到下一步 a.先创建一个数据库,这个数据库必须是没有表和任何操作的. b.创建一个表结构,和要恢复的表名是一样的.表里的字段无所谓.一定要是innodb引擎的.CREATE TABLE `test`(  `testID` bigint(20)) ENGINE=

MySQL借助ibd文件恢复数据技巧?

磁盘坏道.断电等意外不是常态,但遇上了就足够你"惊心动魄"!如果是数据库损坏造成的数据丢失,Binlog也不可用了,怎么办?为了在短时间内无损恢复数据以保证业务稳定性,除了利用binlog,我们还修炼了一招新的恢复技能! 还记得我们之前写过的<只需一招,让失控的研发爱上你>吗?前文提到过我们日常使用的比较多的两种数据库恢复方法是: 以上两种方法都可以实现实时性的回档,但是你会认为有了这两种技能就够了吗? 不-.! 在线上这种错综复杂的架构中,其实还有很多未知的原因,我们是没

【MySQL】InnoDB引擎ibdata文件损坏使用ibd文件恢复数据

参考:http://my.oschina.net/sansom/blog/179116 参考:http://www.jb51.net/article/43282.htm 注意!此方法只适用于innodb_file_per_table独立表空间的InnoDB实例. 此种方法可以恢复ibdata文件被误删.被恶意修改,没有从库和备份数据的情况下的数据恢复,通过测试在ibdata被修改,实例异常shutdown情况下,不能保证数据库所有表数据的100%恢复,目的是尽可能多的恢复. [InnoDB引擎i

[转载]github在线更改mysql表结构工具gh-ost

GitHub正式宣布以开源的方式发布gh-ost:GitHub的MySQL无触发器在线更改表定义工具! gh-ost是GitHub最近几个月开发出来的,目的是解决一个经常碰到的问题:不断变化的产品需求会不断要求更改MySQL表结构.gh-ost通过一种影响小.可控制.可审计.操作简单的方案来改变线上表结构. 在介绍gh-ost之前,我们先了解一下各种现有方案,以及为什么要自己开发一个新工具. 已有的在线修改表定义方案 目前,在线修改表定义的任务主要是通过这三种途径完成的: 在从库上修改表定义,修

查看mysql表结构和表创建语句的方法(转)

查看mysql表结构的方法有三种:1.desc tablename;例如:要查看jos_modules表结构的命令:desc jos_modules;查看结果:mysql> desc jos_modules; +------------------+---------------------+------+-----+---------------------+----------------+ | Field | Type | Null | Key | Default | Extra | +-

Java 通过JDBC查询数据库表结构(字段名称,类型,长度等)

Java 通过JDBC查询数据库表结构(字段名称,类型,长度等) 发布者:唛唛家的豆子 时间:2012-11-20 17:54:02 在JDBCPreparedStatement.executeQuery().getMetaData();后,我们可以通过ResultSetMetaData对象查询返回结果集的源数据信息,也就是表结构信息. 示例代码如下: package astar.sutil.db; import java.sql.Connection; import java.sql.Driv

MySQL表结构同步工具 mysql-schema-sync

mysql-schema-sync 是一款使用go开发的.跨平台的.绿色无依赖的 MySQL 表结构自动同步工具.用于将线上(其他环境)数据库结构变化同步到测试(本地)环境! 可以解决多人开发,每人都使用独立数据库导致结构不一样的问题! 支持功能:1.  同步新表2.  同步字段 变动:新增.修改3.  同步索引 变动:新增.修改4.  同步字段.索引 屏蔽变动更新5.  支持预览(只对比不同步变动)6.  邮件通知变动结果 配置 参考 默认配置文件  config.json 配置同步源.目的地

MySQL表结构的导入和导出MySQL表结构的导入和导出

MySQL表结构的导入和导出 MySQL表结构的导入和导出: Linux下路径可以变一下,例如数据库gaomart的表结构导出:Windows里 mysqldump -d -uroot -p123456 gaomart>d:/gaomart.sqlLinux里 mysqldump -d -uroot -p123456 gaomart>/home/liangjian/gaomart.sql 如果不加-d 就导入的是全部数据和表结构.加-d为只导出表结构. 1 .在运行里输入cmd 进入dos 命