Skip to content
/ ibd2sql Public

parse mysql ibd file to sql for learn or recovery data

License

Notifications You must be signed in to change notification settings

ddcw/ibd2sql

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

69 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

介绍

ibd2sql is tool of transform mysql ibd file to sql(data).

ibd2sql是一个使用纯python3编写的离线解析MYSQL INNODB存储引擎的ibd文件的工具. 无第三方依赖包. 使用GPL-3.0 license.

特点

  1. 方便: 提取表DDL
  2. 实用: 可替换库(--schema)/表(--table)名, 可在sql语句中输出完整的字段(--complete)
  3. 简单: 纯python3代码编写, 无依赖包.
  4. 支持众多数据类型: 支持所有mysql数据类型
  5. 支持复杂的表结构: 分区表, 注释, 主键, 外键, 约束, 自增, 普通索引, 前缀索引, 主键前缀索引, 唯一索引, 复合索引, 默认值, 符号, 虚拟字段, INSTANT, 无主键等情况的表
  6. 数据误删恢复: 可以输出被标记为deleted的数据
  7. 安全: 离线解析ibd文件, 仅可读权限即可
  8. 支持范围广: 支持mysql 5.6 or 5.7 or 8.0 or 8.4 or 9.0

测试例子: docs/ALLTEST.md

下载使用

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

V1.5 版本下载地址: https://github.com/ddcw/ibd2sql/archive/refs/tags/v1.5.tar.gz

若要将结果保存到文件, 可使用重定向(python3 main.py xxx.ibd --sql > xxxx.sql)

下载

wget https://github.com/ddcw/ibd2sql/archive/refs/heads/main.zip
unzip main.zip
cd ibd2sql-main

使用

Linux

python3 main.py /data/mysql_3314/mysqldata/ibd2sql/ddcw_alltype_table.ibd --sql --ddl

Windows

注意python名字和路径

python main.py F:\t20240627\test\ddcw_char_ascii.ibd --sql --ddl

更多使用方法或者5.7环境请看: docs/USAGE.md

版本更新

版本 更新时间 说明
v0.1 2023.4.27 第一个版本
v0.2 2023.08.30 支持更多数据类型
v0.3 2023.10.13 支持5.7升级到8.0的ibd文件
v1.0 2024.01.05 支持debug,支持更多类型和功能
v1.1 2024.04.12 修复一些bug
v1.2 2024.04.25 新增空间坐标的支持
v1.3 2024.05.11 支持mysql 5.6, 5.7
v1.4 2024.05.21 支持溢出页, 子分区
v1.5 2024.07.10 vector and instant BUG

详情: docs/CHANGELOG.md

要求和支持范围

要求: python3

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