使用DM升级MySQL5.7到8.0,增量DDL报sql_mode相关错误

【 TiDB 使用环境】Poc
【 TiDB DM 版本】6.5.0
【复现路径】做过哪些操作出现的问题
【遇到的问题:问题现象及影响】使用DM升级MySQL5.7到8.0,全量模式同步正常,增量同步进行建表DDL下游MySQL8报sql_mode错误,关闭下游MySQL8 sql_mode也错误,如下:

“Message”: “startLocation: [position: (mysql-bin.000003, 237639569), gtid-set: 84c1354f-419e-11ee-af95-fa163ecab0ce:1-1513], endLocation: [position: (mysql-bin.000003, 237639640), gtid-set: 84c1354f-419e-11ee-af95-fa163ecab0ce:1-1513]: gen insert sqls failed, sourceTable: test.repl5_8, targetTable: test.repl5_8: failed to set default downstream sql_mode ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION in schema tracker”,
“RawCause”: “Error 1231: Variable ‘sql_mode’ can’t be set to the value of ‘NO_AUTO_CREATE_USER’”,

【资源配置】
【附件:截图/日志/监控】


:thinking: 我试了下 v7.1.1 的 tidb 可以设置这个。

:thinking:楼主说的是MySQL8报错吧

https://github.com/pingcap/tiflow/pull/8190
这是一个被解决的issue。

解决日期靠近dm6.6不好判断6.6是否包含这个修复,但是可以肯定dm7.0以上是不会有这个问题的。
所以,升级dm。

好吧 dm 还会去设置上游 SQL_mode ? 这么神奇

应该是把上游的sql_mode搬到下游的时候报错了。

十分感谢,我瞅瞅 :grinning:

给个临时解决方法,下游设置sql_mode和上游一样,记得去掉NO_AUTO_CREATE_USER这个,因为mysql8已经移除了这一项。
然后dm通过binlog skip 来跳过这个报错。

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