dm迁移的时候报错Error 1105 (HY000): strconv.Atoi: parsing \"\": invalid syntax

【 TiDB 使用环境】生产环境 /测试/ Poc
【 TiDB 版本】
【复现路径】做过哪些操作出现的问题
【遇到的问题:问题现象及影响】
【资源配置】进入到 TiDB Dashboard -集群信息 (Cluster Info) -主机(Hosts) 截图此页面
【附件:截图/日志/监控】


sync 阶段报错 :Error 1105 (HY000): strconv.Atoi: parsing "": invalid syntax

1 个赞

看起来是语法错误,用的DM增量同步工具?上游的MYSQL是什么版本?5.7?8.x? 另外可以把上游的这条UPDATE SQL拿到下游TIDB里手动去执行下,看看报什么错?还有上下游的字符集编码、排序规则是不是都一致的

2 个赞

看着这个报错应该是和数据类型转换有关,关注下上下游表是不是有varchar类型转换为int/bigint类型?

1 个赞

上游8.0.28 MySQL : ENGINE=InnoDB AUTO_INCREMENT=553691708826086401 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='User ’
tidb:ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin AUTO_INCREMENT=553296534740563553 COMMENT='User ’

1 个赞

上下游数据类型是一样的

1 个赞

感觉源库中某数字类型字段(如INT/BIGINT)存储了空字符串导致

1 个赞

现在是sync阶段,应该是update里面有啥问题吧

1 个赞

这个报错是go语言将字符串转换成int类型失败引发的报错。还是需要围绕这个类型转换以及具体的数据去进行排查

1 个赞

感觉是sql语法有问题

1 个赞

DM 在尝试将某个字符串转换为整数时失败了. 看下表结构, 哪个是数字类型的

1 个赞

出现转义字符了吗这是

怎么定位到有问题的数据呢

这个要怎么定位问题的数据呢

看可能是数据有问题吧

最好分段到,先导一半,有问题再减少一半二分法去导

通过加筛选条件去控制吗