frm ibd文件导入mysql_Mariadb,Mysql如何根据.frm和.ibd文件来恢复数据和表结构

本文介绍了如何利用.frm和.ibd文件在MySQL/MariaDB中恢复数据和表结构。恢复过程分为三个步骤:创建表结构、导入表结构和恢复表数据。首先,在数据库中创建与待恢复表名相同的表结构,然后替换.frm文件并调整配置。接着,导出并应用正确的表结构,最后通过discard和import tablespace操作恢复.ibd文件中的数据。
摘要由CSDN通过智能技术生成

废话不多说直接进入正题,Mariadb,Mysql根据.frm和.ibd文件来恢复数据和表结构,大体分为三个步骤:

1.创建表结构

2.导入表结构

3.恢复表数据

接下来,我们按照这三个步骤一步一步恢复。

1.1进入数据库中,创建表结构,需要注意的是表名需要和恢复的表名相同,字段不需要相同(如果记得表结构,可一次性创建成功直接进入第三步),输入命令"create table techarticlevisitstatistics(id int);",如下图所示:

41657753085a?from=singlemessage&isappinstalled=0

1.2创建成功之后,断开mysql服务,打开表所在的文件夹,一般都会在..\MariaDB\data\数据库名,将需要恢复的表结构.frm文件替换掉刚才创建的表结构,然后设置my.ini文件,添加语句"innodb_force_recovery = 6"表示现在需要恢复表数据,表结构为唯读,连接mysql服务,进入数据库,输入命令"desc techarticlevisitstatistics",如果出现错误类似于"Table 'personalsite.techarticlevisitstatistics' doesn't exist in engine",如下图所示:

41657753085a?from=singlemessage&isappinstalled=0

1.3接下来打开日志文件查看日志,我们可以看到如下所示的错误信息:"Table personalsite/techarticlevisitstatistics contains 1 user defined columns in InnoDB, but 3 columns in MariaDB...",我们可以看到源表结构有三列,但是我们创建的表结构只有一列,那怎么办,此时我们需要删除已经创建的表,需要注意的是需要将my.ini文件中的"innodb_force_recovery = 6"注释掉,否则会提示表示唯读,并且重启mysql服务,然后重复之前1.1,1.2的动作,此时表需要创建为3列,如下图所示:

41657753085a?from=singlemessage&isappinstalled=0

1.4以上动作完成之后,我们输入"desc techarticlevisitstatistics;"我们可以看到替换成功的表结构,很完美第一步我们已经完成了。

2.1此时我们需要导出表结构,可以使用navicat或者mysql workbench等导出表结构,目前我是用mysqldump命令来导出表结构,打开cmd,输入命令"mysqldump -uroot -p123456 -d personalsite techarticlevisitstatistics>\root\techarticlereview.sql",导出成功之后我们可以在目录下看到sql文件,打开sql文件,复制创建表结构的语句,如下图所示:

41657753085a?from=singlemessage&isappinstalled=0

2.2删除已经创建的表结构,执行刚才复制的创建表语句,我们可以得到一个新的表结构,到了这一步我们已经完成70%,接下来我们就需要恢复数据了。

3执行 alter table techarticlevisitstatistics discard tablespace ,执行完之后,数据库目录下的techarticlevisitstatistics.ibd文件就会消失,然后我们把需要恢复的.ibd文件复制过来,执行 alter table techarticlevisitstatistics import tablespace,此时我们的数据就完全恢复成功了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值