TIDB出现异常信息:[ddl:8200]Unsupported modify charset from utf8mb4 to utf8 ,帮忙协助解决一下

,

tidb版本:tidb-huawei-p tidb v5.2.3
dm版本:tidb-p tidb v2.0.6
异常语句: “Message”: “startLocation: [position: (mysqld-bin|000005.002219, 905313031), gtid-set: ], endLocation: [position: (mysqld-bin|000005.002219, 905313254), gtid-set: ], origin SQL: [alter table grant_draw_record modify column uuid varchar(50) CHARACTER SET utf8 DEFAULT NULL COMMENT ‘唯一标识uuid’]: cannot track DDL: ALTER TABLE gaia_acc_5i5j.grant_draw_record MODIFY COLUMN uuid VARCHAR(50) CHARACTER SET UTF8 DEFAULT NULL COMMENT ‘唯一标识uuid’”,
“RawCause”: “[ddl:8200]Unsupported modify charset from utf8mb4 to utf8”,
“Workaround”: “”

看了相关帖子 说v2.1.3 版本以上已修复,现在tidb是v5.2.3依然在报错,麻烦请帮忙协助解决一下

你好。

  1. 既然 DM 已经报错了,那这个版本应该就是不支持这种 DDL 修改;
  2. 如果这个操作可以忽略,可以使用 handle-error <task> skip 跳过这个错误;
  3. 如果这个操作不可以忽略,可以在主库这样变相执行这个 SQL:
    先新增一个满足需求的字段,比如 new_uuid,再将旧字段 uuid 的值都拷贝到新字段,再将旧字段删除,最后将新字段 new_uuid 改名为 uuid。(曲线救国,目前我们就是这么处理不兼容的 DDL SQL 的)
2 个赞

你是参考的这个贴子么?可以将报错语句放到TiDB中手工执行,看看报不报错

1 个赞

此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。