ddcw / ibd2sql

parse mysql ibd file to sql for learn or recovery data
GNU General Public License v3.0
154 stars 44 forks source link

转换的时候乱码了 #25

Open ToothlessKing opened 2 months ago

ToothlessKing commented 2 months ago

你好 ,请教一下 ,我在使用工具恢复idb文件的时候乱码了 ,想了解可能是什么原因 表结构如下:

CREATE TABLE zxjl_keyword ( id bigint NOT NULL AUTO_INCREMENT COMMENT '主键', uuid bigint NOT NULL COMMENT '用户uuid', task_id bigint NOT NULL COMMENT '任务id', keyword_name varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '关键词名字', status char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT '1' COMMENT '状态 1待审核 2通过 3驳回 4已发布 5过期', create_time datetime NOT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '创建时间', value longtext NOT NULL COMMENT '内容', submit_status int NOT NULL DEFAULT '0' COMMENT '状态: 0. 未提交, 1、已提交', reason varchar(125) DEFAULT NULL COMMENT '审核失败原因', PRIMARY KEY (id) USING BTREE, KEY idx_task_id (task_id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='关键词表';

INSERT INTO wenmo.zxjl_keyword VALUES (17, 636182, 24, '0xe5', '0x9388e596bd3299b179180e5b7b226669656c644e616d65223a22e58e9fe4b9a6e5908d222c226669656c6456616c7565223a22e4bda0e5a5bde59180e59180222c2270726f70223a22626f6f6b4e616d65222c227265717569726564223a747275657d2c7b226669656c644e616d65223a22626964222c226669656c6456616c7565223a22313233343536222c2270726f70223a22626964222c227265717569726564223a747275657d2c7b226669656c644e616d65223a22e585b3e994aee8af8defbc88e68ea7e588b6e59ca8342d37e4b8aae5ad97efbc89222c226669656c6456616c7565223a22e59388e596bd222c2270726f70223a226b6579776f7264222c227265717569', '-9010-11-18 2:8:58', 't', -227187331, '');

ddcw commented 2 months ago

表结构看起来没得问题. 应该是online ddl的问题. 确认下mysql版本是否大于等于8.0.29呢. 是否做过online ddl呢. 可使用 ibd2sdi 验证: ibd2sql xxx.ibd | grep version

ddcw commented 2 months ago

online ddl相关的BUG已修复, 你可以再试下, 如果还有问题的话, 那大概率是ibd文件有问题了(坏块).

lastYoueven commented 1 month ago

online ddl相关的BUG已修复, 你可以再试下, 如果还有问题的话, 那大概率是ibd文件有问题了(坏块).

这种情况该怎么处理啊?

ddcw commented 1 month ago

如果没得备份的话, 就只能强制解析了, 即尽可能的解析坏块里面的数据, 文档里有相关操作步骤的(ibd文件损坏的场景):https://github.com/ddcw/ibd2sql/blob/main/docs/USAGE.md

online ddl相关的BUG已修复, 你可以再试下, 如果还有问题的话, 那大概率是ibd文件有问题了(坏块).

这种情况该怎么处理啊?