数据恢复利器:通过frm文件恢复数据表的sql结构语句_dbseeker_frm-CSDN博客

dbseeker_frm1.0.zip

来源: 数据恢复利器:通过frm文件恢复数据表的sql结构语句_dbseeker_frm-CSDN博客

如果数据库崩溃又没有做数据备份,只有.frm表结构文件,怎么做表的结构恢复?下面介绍两种方法

了解MYSQL的都知道,在MYSQL中建立任何一张数据表,在其数据目录对应的数据库目录下都有对应表的.frm文件,.frm文件是用来保存每个数据表的元数据(meta)信息,包括表结构的定义等,.frm文件跟数据库存储引擎无关,也就是任何存储引擎的数据表都必须有.frm文件,命名方式为数据表名.frm,如user.frm. .frm文件可以用来在数据库崩溃时恢复表结构。

第一种方法:手动恢复
工具/原料
MYSQL数据库.frm文件

命令行工具

一、InnoDB表结构的恢复
假定:MYSQL数据库已经崩溃,目前只有对应表的frm文件,大家都知道,frm文件无法通过文本编辑器查看,因为如果不恢复,基本上来说对我们没什么用。这里我们为了测试,假定该文件为test_innodb.frm

 

该表创建脚本如下:

 

mysql> create table test_innodb

 

-> (A int(11) default NULL,

-> B varchar(30) default NULL,

-> C date default NULL) engine=innodb;

Query OK, 0 rows affected (0.05 sec)

在新的正常工作的MYSQL环境下建立一个数据库,比如aa.

在aa数据库下建立同名的数据表test_innodb,表结构随意,这里只有一个id字段,操作过程片段如下:

 

mysql> create table test_innodb (id bigint not null)engine=InnoDB;

Query OK, 0 rows affected (0.09 sec)

停止mysql服务器,将系统崩溃后留下的test_innodb.frm文件拷贝到新的正常数据库的数据目录aa下,覆盖掉下边同名的frm文件,重新启动MYSQL服务。

END

二. MyISAM表结构的恢复
同样先假定需要恢复的表的FRM文件为test_myisam.frm,表结构为

 

mysql> create table test_myisam

-> (A int(11) default NULL,

-> B varchar(30) default NULL,

-> C date default NULL) engine=myisam;

Query OK, 0 rows affected (0.05 sec)

直接将test_myisam.frm拷贝到正常数据库对应的数据目录下。这时测试

 

mysql> show tables;

+————–+

| Tables_in_aa |

+————–+

| test_innodb |

| test_myisam |

+————–+

3 rows in set (0.00 sec)

 

mysql> desc test_myisam;

ERROR 1017 (HY000): Can’t find file: ‘test_myisam’ (errno: 2)

 

发现只能通过show tables命令看见表名,但是表结构还是没有恢复,desc命令报错。

在与test_myisam.frm同一目录建立以下2个文件,文件内容可以为空:

 

test_myisam.MYD test_myisam.MYI

在MYSQL命令行使用MYSQL本身的数据表恢复命令repair命令恢复表,如下:

 

mysql> repair table test_myisam USE_FRM;

+—————–+——–+———-+———-+

| Table | Op | Msg_type | Msg_text |

+—————–+——–+———-+———-+

| aa.test_myisam | repair | status | OK |

+—————–+——–+———-+———-+

1 row in set (0.00 sec)

 

根据结果可以知道,恢复命令执行成功

第二种方法:利用工具快速恢复

下载使用:dbseeker_frm1.0.zip 工具

下载地址:

 

解压后执行: dbseeker_frm.jar文件

 

选择要恢复的frm文件即可以生成对应的SQL建表语句。
————————————————

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/whirlwind526/article/details/118073688

赞(0) 打赏
分享到: 更多 (0)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏