# 开源功能强大的 MySQL 数据恢复工具ibd2sql

*Published:* 2024-09-21
*Author:* 飞翔001

#### 温馨提醒

如果文章内容或图片资源失效，请留言反馈，我们会及时处理，谢谢

本文最后更新于2024年9月20日，已超过 180天没有更新



[ibd2sql](https://www.xarjtc.com/tag/ibd2sql "查看ibd2sql此标签更多文章")是一个使用纯python3编写的离线解析MYSQL INNODB存储引擎的ibd文件的工具. 无第三方依赖包. 使用GPL-3.0 license.

能够从 .ibd 文件中提取数据并生成 .sql 文件，帮助用户在数据丢失和数据库损坏时有效恢复数据。尽管在某些方面有局限性，但其简单易用的特点使得它成为处理 MySQL 数据库问题时的得力助手。

**特点**

方便: 提取表DDL

实用: 可替换库(--schema)/表(--table)名, 可在sql语句中输出完整的字段(--complete)

简单: 纯python3代码编写, 无依赖包.

支持众多数据类型: 支持所有[mysql](https://www.xarjtc.com/tag/mysql "查看mysql此标签更多文章")数据类型

支持复杂的表结构: 分区表, 注释, 主键, 外键, 约束, 自增, 普通索引, 前缀索引, 主键前缀索引, 唯一索引, 复合索引, 默认值, 符号, 虚拟字段, INSTANT, 无主键等情况的表

数据误删恢复: 可以输出被标记为deleted的数据

安全: 离线解析ibd文件, 仅可读权限即可

支持范围广: 支持mysql 5.6 or 5.7 or 8.0 or 8.4 or 9.0

**要求和支持范围**

要求: python3

支持范围: mysql5.x 8.x 9.x

工具使用纯python3编写, 无依赖包, 所以建议直接使用源码。

**ibd文件损坏的场景**

如果ibd文件数据页损坏, 则可以跳过该页, 或者暴力解析.

对于想并发解析的, 也可以使用本方法.

如果是ibd文件的元数据信息损坏, 则要先恢复元数据信息. 然后使用--sdi-table选项指定正确的元数据信息文件.

github地址：https://github.com/ddcw/ibd2sql