首页 > 解决方案 > `serverTimezone` 参数是否改变 MySQL 中的@@session.time_zone?

问题描述

如果我serverTimezone=UTC在我的连接 URL 中建立与 MySQL 的连接,那会改变@@session.time_zone我与 MySQL 的连接的变量吗?@@session.time_zone或者是通过发表声明来改变的唯一方法SET time_zone...?我被引导相信serverTimezone=UTCand的组合useLegacyDateTimeCode=false将设置@@session.time_zone为 UTC(或我作为参数传入的任何时区serverTimezone),但使用 MySQL Connector/J 测试这种行为似乎表明它没有。

标签: javamysqljdbctimezone

解决方案


正如我在评论中所说,我面临着同样的问题——需要通过配置 JDBC 驱动程序来找到一种@@session.time_zone = '+0:00'无需 SQL 语句的方法。

如果您使用属性(Dropwizard 和 Spring),这是解决方案:

sessionTimeZone: UTC
useLegacyDatetimeCode: false

或者只是将其附加到 JDBC 连接 URL:?sessionTimeZone=UTC&useLegacyDatetimeCode=false

连接器的文档根本没有提到它(这可能就是为什么有这么多答案指向“serverTimezone”等。


推荐阅读