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 |