通过.ibd恢复数据

本文介绍了在MySQL 5.7环境中如何进行数据恢复,包括创建数据库、表结构,使用ALTER TABLE命令进行TABLESPACE操作。在过程中遇到了ERROR 1812和ERROR 1015等错误,通过调整文件权限和使用innodb_force_recovery配置解决了问题。
摘要由CSDN通过智能技术生成

网上一大堆环境条件都不同,现在列举我的情况

仅有ibd和frm

mysql 5.7

我知道表的结构,不知道的可以划走或者知道再看下面

首先创建数据库

然后创建表

CREATE TABLE `baidu` (
  `title` varchar(255) DEFAULT NULL,
  `link` varchar(255) DEFAULT NULL,
  `create_time` datetime DEFAULT NULL,
  `work_last` datetime DEFAULT NULL,
  `numbers` int DEFAULT NULL
)ENGINE=InnoDB ROW_FORMAT = Dynamic;

注意这个row_fomat

创建表以后删除空间,5.5新建表不会有ibd,5.7输入命令删除ibd

ALTER TABLE table_name DISCARD TABLESPACE;

上传原ibd

上传完成改权限

这样足够了

改完权限打命令

ALTER TABLE table_name IMPORT TABLESPACE;

到这一步数据已经恢复

下面说一下碰到的错误,网上查出来两种意思的

 ERROR 1812 (HY000): Tablespace is missing for table

覆盖的文件没改权限

ERROR 1015 (HY000): Can't lock file (errno: 165 - Table is read only)
配置文件innodb_force_recovery

不要这条,可能有解决方案加这条

1030 - Got error -1 from storage engine

版本装5.7

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值