如果我使用连接URL中的serverTimezone=UTC
与MySQL建立连接,这是否会更改与MySQL的连接@@session.time_zone
的变量?还是通过发布@@session.time_zone
语句更改SET time_zone...
的唯一方法?我被认为是serverTimezone=UTC
和useLegacyDateTimeCode=false
的组合将把@@session.time_zone
设置为UTC(或我作为serverTimezone
的参数传递的任何时区),但是对此进行了测试MySQL Connector / J的行为似乎表明事实并非如此。
答案 0 :(得分:0)
正如我在评论中所说,我面临着同样的问题-需要找到一种方法,而不是通过配置JDBC驱动程序来执行无SQL语句的@@session.time_zone = '+0:00'
。
如果您使用属性(Dropwizard甚至是Spring),这是解决方案:
sessionTimeZone: UTC
useLegacyDatetimeCode: false
或仅将其附加到JDBC连接URL:?sessionTimeZone=UTC&useLegacyDatetimeCode=false
连接器的documentation根本没有提到它(这可能就是为什么有这么多答案指向“ serverTimezone”和其他答案的原因。
答案 1 :(得分:-1)
如果您希望将MySQL配置为UTC:
SET @@global.time_zone = '+00:00';
因此,每次自动更新日期时间以及每次连接到数据库时,@@ session.time_zone都将设置为@@ global.time_zone。
可能需要重新启动和重新连接数据库。
如果您只是对会话时区的修改感兴趣:
SET @@session.time_zone = '+00:00';
您需要在每次连接后执行此操作。