通过.frm 和.ibd 批量恢复mysql数据

本文介绍如何使用.frm和.ibd文件批量恢复MySQL InnoDB引擎的数据。包括数据库和表的创建、表结构的重建、数据文件的导入等步骤。

前置

首先,只有InnoDB引擎的数据库才需要这样恢复,myisam不需要这么麻烦,只要数据文件存在直接复制过去就可以。

其次,mysql数据库必须是按表存放数据的,默认不是,但是大家生产肯定是按分表设置的吧,如果不是,则无法这样恢复数据。mysql.ini的设置为 innodb_file_per_table = 1。

.frm文件是mysql表结构定义文件,使用mysql-utilities中的mysqlfrm来将其转换成mysql的create语句,来重建表结构

.ibd文件存了每个表的元数据,包括表结构的定义等。就知道是用这个来恢复数据就行

工具

mysql-utilities https://downloads.mysql.com/archives/utilities/

恢复过程

建数据库

以一道网站重构题为例

题目给了网站源码和mysql的数据库文件

首先找到网站源码里对数据库连接的config文件,将其参数改为我们自己建立的数据库。

我们要按照它的db.opt来创建对应的数据库

default-character-set=utf8mb4
default-collation=utf8mb4_general_ci

数据库名:quzhen

用户:quzhen

密码:quzhen

注意:用phpstudy创建数据库要用innodb引擎

image-20221010075806804

建表

先将.frm文件的文件名提取出来,他们的文件名对应着一个数据表

dir /b /t >frmname.txt

dir命令https://blog.youkuaiyun.com/weixin_41905135/article/details/124881754

然后利用notepad++的功能将.frm文件剪切出来,然后再去掉后缀

image-20221009223605478

评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

v2ish1yan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值