ibd2sql v0.2版本 解析ibd文件为SQL
v0.2 版本主要是支持更多的数据类型了(上一版:https://www.modb.pro/db/626066)
项目地址: https://github.com/ddcw/ibd2sql
下载地址: https://github.com/ddcw/ibd2sql/releases/download/v0.2/ibd2sql_0.2_linux_x86_64.tar.gz
介绍
解析mysql8.0的数据文件, 并生成相关SQL.
功能
| 选项 | 说明 | 备注 |
|---|---|---|
| –sql | 打印解析出来的数据的insert语句 | |
| –ddl | 打印相关DDL | |
| –data | 打印解析出来的数据的LIST格式 | |
| –delete | 打印被标记为deleted的数据 | 全看运气 |
| –complete-insert | insert语句包含列名字 | |
| –table-name | 替换insert语句的表名 | 不含DDL的,这是特性,不是BUG -_- |
| -h | 打印帮助信息 | |
| -f | 对于包含有限支持和不支持的数据类型强制解析 | 我也不知道会发生啥… |
使用方法
推荐使用源码, 毕竟没得依赖
查看DDL
python main.py --ddl /data/mysql_3314/mysqldata/db1/t20230830.ibd
查看数据(INSERT)
python main.py --sql /data/mysql_3314/mysqldata/db1/t20230830.ibd
查看数据(含列名)
对于某些数据库,可能需要列名字(比如某些分布式数据库)
python main.py --sql --complete-insert /data/mysql_3314/mysqldata/db1/t20230830.ibd
查看数据(LIST)
python main.py --data /data/mysql_3314/mysqldata/db1/t20230830.ibd
查看被标记为deleted的数据
python main.py --delete /data/mysql_3314/mysqldata/db1/t20230830.ibd
支持
支持几乎所有mysql 8.0的数据类型(除了json). 对lob对象也是有限支持.
支持 大部分表/字段属性
DDL支持
| 对象 | 是否支持 | 备注 |
|---|---|---|
| IF NOT EXISTS | 支持 | 默认都是这个 |
| 自增 | 支持 | |
| 默认值 | 支持 | |
| 字段和表的注释 | 支持 | |
| 索引 | 支持 | 主键索引, 普通索引 |
| 外键 | 支持 | |
| 约束 | 支持 | |
| 存储引擎 | 支持 | 只支持innodb |
| 分区 | 不支持 | 不支持 |
支持的数据类型
参考:https://dev.mysql.com/doc/refman/8.0/en/storage-requirements.html
数字类型
| 类型 | 大小(字节) | 有无符号 | 备注 |
|---|---|---|---|
| tinyint | 1 bytes | 可选 | |
| smallint | 2 bytes | 可选 | |
| mediumint | 3 bytes | 可选 | |
| int | 4 bytes | 可选 | |
| bigint | 8 bytes | 可选 | |
| float§ | 4 bytes if p is None, 4 bytes if 0 回到顶部
|