大佬们,请教下,Flink CDC2.4.0版本的mysql cdc,怎么设置时区"?[阿里云实时计算 Flink版]

问题1:大佬们,请教下,Flink CDC2.4.0版本的mysql cdc,怎么设置时区”Asia/Shanghai”才能生效呢,我现在设置了几次,都没成功
flink 1.14.5
mysql 5.7?始终走的是UTC时区
我是这么写的,是写法有错吗,跑出来的数差了8小时TIME_ZONE = “Asia/Shanghai”
问题2;这个是加在jdbc的url后面么,我放在下面那个参数里,报错了

「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
=====这是一个广告位,招租中,联系qq 78315851====
2 条回复 A 作者 M 管理员
  1. 在Flink CDC 2.4.0版本中,MySQL CDC模块的时区可以通过以下方式进行设置:

    在MySQL连接URL中指定时区:您可以在MySQL连接URL中添加serverTimezone参数,指定MySQL服务器的时区。例如,如果您的MySQL服务器时区为Asia/Shanghai,则可以使用以下URL连接MySQL数据库:
    Copy
    jdbc:mysql://localhost:3306/mydb?serverTimezone=Asia/Shanghai
    在MySQL连接属性中指定时区:您可以在MySQL连接属性中添加serverTimezone属性,指定MySQL服务器的时区。例如,如果您使用java.sql.DriverManager连接MySQL数据库,则可以使用以下代码设置时区:
    java
    Copy
    Properties props = new Properties();
    props.setProperty(“user”, “root”);
    props.setProperty(“password”, “root”);
    props.setProperty(“serverTimezone”, “Asia/Shanghai”);
    Connection conn = DriverManager.getConnection(url, props);
    在Flink CDC任务中指定时区:您可以在Flink CDC任务的配置中指定时区。例如,如果您使用FlinkCDCSource读取MySQL CDC数据,则可以使用以下代码设置时区:
    java
    Copy
    FlinkCDCSourceConfig sourceConfig = new FlinkCDCSourceConfig();
    sourceConfig.setDatabaseHostname(“localhost”);
    sourceConfig.setDatabasePort(3306);
    sourceConfig.setDatabaseUser(“root”);
    sourceConfig.setDatabasePassword(“root”);
    sourceConfig.setDatabaseName(“mydb”);
    sourceConfig.setTableList(Collections.singletonList(“mytable”));
    sourceConfig.setServerTimeZone(“Asia/Shanghai”);
    在上述示例中,我们使用setServerTimeZone方法指定了MySQL服务器的时区为Asia/Shanghai。

  2. 要在 Flink CDC 2.4.0 版本中设置 MySQL CDC 的时区为 “Asia/Shanghai”,您可以按照以下步骤进行操作:

    1. 在 MySQL 数据库的连接 URL 中添加 serverTimezone 参数,将其设置为 “Asia/Shanghai”。例如:       jdbc:mysql://localhost:3306/mydatabase?serverTimezone=Asia/Shanghai    

    2. 确保您的 Flink Job 的运行环境(如 Flink 集群或本地运行)也设置了正确的时区。可以通过以下方式之一来设置 Flink 的时区:    – 在启动 Flink Job 的脚本中,通过 env.setStreamTimeCharacteristic(TimeCharacteristic.EventTime) 设置使用事件时间,并使用 env.getConfig().setGlobalJobParameters(params) 添加全局参数。    – 在 Flink 集群的 flink-conf.yaml 文件中,将 jobmanager.execution.timezone 设置为 “Asia/Shanghai”。

    请确保在设置时区后重新运行 Flink Job,以使设置生效。如果仍然遇到问题,请提供更多详细信息,如错误日志或代码示例,以便更好地帮助您解决问题。

  3. 回答1:server-time-zone=‘Asia/Shanghai’启动不行吗?serverTimezone=GMT%2B8
    回答2:jdbc的url后面,,此回答整理自钉群“Flink CDC 社区”