一次datax同步mysql数据为空的经历

通过select version()得到的结果是:5.6.29-mycat-1.6.7.6-release-20201112144313

起初以为是mysql驱动版本的问题,于是修改了mysqlreader插件lib中的驱动版本为5.x,但是不行,后面又以为是jdbcurl参数的问题,修改之后也不行。

最后通过自己写main方法,一点点把datax源码中获取数据的代码添加进去,发现DButil中又这么一段代码:

 去掉之后,数据就查询出来了。

总结:

  • MySQL/MyCat 在 setAutoCommit(false) 下,部分 SQL(尤其是大表全表扫描、分片表、只读节点等)可能会有兼容性或实现差异,导致 ResultSet 为空或行为异常。
  • DataX 为了保证数据一致性,通常会在获取连接后设置 setAutoCommit(false),这在 MyCat 某些版本下会导致查不到数据。
posted @ 2025-07-09 11:22  炫舞风中  阅读(20)  评论(0)    收藏  举报