Mysql如何通过ibd文件恢复数据

Mysql ibd文件恢复注意问题

  1. 创建数据库(随意创建)
  2. 创建数据表(备注:表结构要和要恢复的表结构一致,row_format要和ibd文件的row_format一致,否则,会提示两者不一致。 当前row_format=dynamic)

备注:创建表时候的row_format和表属性的不一致,基于innodb是,要把row_format设置成dynamic时,需要修改mysql的全局配置,直接在myql命令中修改:set global innodb_file_format=Barracuda;

开始恢复

1、恢复第一步: 在新库创建表

可以在之前库里执行 语句查看之前表结构。 
show create table 表名字;

注意表结构和之前表结构一样。

2、恢复第二步:移除表空间

alter table 表名字 DISCARD TABLESPACE;

3、恢复第三步:拷贝ibd文件至目标位置

-- 使用sql查询数据目录
show global variables like '%datadir%';

将备份的ibd文件,放到mysql->data->创建的数据库名称->,将ibd拷贝到此目录下。

4、恢复第四步:重新导入表空间

alter table  表名字  IMPORT TABLESPACE;

5、当执行到上一步完成后,我们发现数据库中的数据已经完全恢复过来了

报错解析

1、 可能你会出现这个报错,> 1813 - Tablespace ‘/monitor_measure’ exists.

出现这个问题的原因是上传得idb文件没有权限。
在这里插入图片描述
在这里插入图片描述

解决问题

chown mysql:mysql monitor_measure.ibd
  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值