欢迎投稿

今日深度:

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

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


客户的机器系统异常关机,重启后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、将恢复好的数据导出就行了


怎恢复MySQL数据库 InnoDB类型的数据

如果你安装的同一版本的mysql数据库应该没有问题。所以先安回原来版本的数据库,然后把数据导成文本,在导入新版本的数据。
 

怎将mysql的innodb的源文件还原到数据库?(原数据库已经删除只有innodb的数据库源文件)

还剩下哪些文件,
如果整个Innodb的表空间 以及对应数据库的.frm表结构文件都在 就可以放到数据库目录下 尝试进行还原..

不过基本上是成功不了

Innodb的表还原最靠谱的就是通过备份还原的形式
 

www.htsjk.Com true http://www.htsjk.com/shujukunews/2222.html NewsArticle 亲测Mysql表结构为InnoDB类型从ibd文件恢复数据,innodbibd 客户的机器系统异常关机,重启后mysql数据库不能正常启动,重装系统后发现数据库文件损坏,悲催的是客户数据库没有进行及时...
评论暂时关闭