flinkcdc同步mysql的timestamp类型时区问题

【遇到的问题】
用flinkcdc同步mysql表中的时间类型时会出现+8小时的问题,为了不每张表都手动处理,使用了csdn论坛的一篇文章的做法:
这篇文章是<Flink cdc同步mysql到starrocks(日期时间格式/时区处理)> ;链接

https://blog.csdn.net/JGMa_TiMo/article/details/129421295
出现的问题:这时候mysql表中datetime,date,time类型就转换正常了,但是用flinkcdc读取表的模式是全量+增量,全量读取表的timestamp类型时,会+8小时,在读取增量数据timestamp时就没有问题。
【解决方法】
想咨询一下有什么方法可以解决?

针对该问题,可以尝试以下解决方案:

  1. 在 MySQL 中设置日期时间格式和时区,使得cdc 同步时能够正确解析 timestamp 类型。可以通过修改 MySQL 表的 datetime 和时区属性来实现。具体实现方式请参考 MySQL 官方文档。

  2. 使用 Flink CDC 的时区转换功能,将 MySQL 中的时区信息转换为 Flink CDC 所需的时区信息。具体实现方式请参考 Flink CDC 官方文档。

  3. 为了避免手动处理每个表的情况,可以在 Flink CDC 中设置一个全局时区缓存,使得在读取全量数据时能够自动获取正确的时区信息,而不需要手动处理。具体实现方式请参考 Flink CDC 官方文档。

以上是一些可能的解决方案,具体的实现方式取决于具体的应用场景和数据源。

在Flink CDC的配置文件中,设置时区参数。可以在配置文件中添加以下参数:
flink.cdc.mysql.server-time-zone=UTC

因为我们是使用flinksql作业时遇到的这个问题,我们是这么处理的:
1.在作业中,添加时区设置如下
--指定时区
set table.local-time-zone=Asia/Shanghai;
2.在cdc链接配置中配置如下:
'url' = 'jdbc:mysql://192...22:30010/ss_db?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai',

同时添加了这两个配置,解决了我们遇到的时区问题