365db 发表于 2023-9-15 16:34:08

mysql 8咋从ibd文件中提取表的DDL语句呢?有啥好工具吗

mysql 8咋从ibd文件中提取表的DDL语句呢?有啥好工具吗

目前试过官方的工具,但是易读性非常差,json的,不是方便DBA快速建表,需要去分析。且自增长和前缀索引无法判断。
github上的https://github.com/ddcw/ibd2sql也测试过,均存在相同的问题。
大部分github的工具都是基于官方的工具,使用python等语言获取DDL语句
寻求一个方法或者工具能从ibd文件中获得完整且正确的建表DDL语句。
比如:

# python3 main.py --ddl /root/t1.ibd

CREATE Table IF NOT EXISTS `db01`.`t1`(
`id` int NOT NULL ,
`name` varchar(20) NOT NULL ,
`rq` datetime DEFAULT NULL DEFAULT CURRENT_TIMESTAMP ,
PRIMARY KEY (`id`),
KEY `idx_name` (`name`),
KEY `idx_dt` (`rq`)
)ENGINE=InnoDB ;


实际的

mysql> show create table t1\G
*************************** 1. row ***************************
       Table: t1
Create Table: CREATE TABLE `t1` (
`id` int NOT NULL,
`name` varchar(20) NOT NULL,
`rq` datetime DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `idx_name` (`name`(10)),
KEY `idx_dt` (`rq`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
1 row in set (0.00 sec)


yejr 发表于 2023-9-15 16:37:38

用自带的工具ibd2sdi就可以的

kingzhesi 发表于 2023-9-18 15:37:31

yejr 发表于 2023-9-15 16:37
用自带的工具ibd2sdi就可以的

提问者说的官方工具应该就是ibd2sdi,用这个工具需要自己去分析
页: [1]
查看完整版本: mysql 8咋从ibd文件中提取表的DDL语句呢?有啥好工具吗