Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java MySQL中的'serverTimezone'参数是否更改@@session.time_zone?_Java_Mysql_Jdbc_Timezone - Fatal编程技术网

Java MySQL中的'serverTimezone'参数是否更改@@session.time_zone?

Java MySQL中的'serverTimezone'参数是否更改@@session.time_zone?,java,mysql,jdbc,timezone,Java,Mysql,Jdbc,Timezone,如果我使用连接URL中的serverTimezone=UTC连接到MySQL,这会更改连接到MySQL的@@session.time\u zone变量吗?或者是通过发出设置时区…语句来更改@@session.time\u zone的唯一方法?我被引导相信serverTimezone=UTC和useLegacyDateTimeCode=false的组合会将@@session.timezone设置为UTC(或我作为serverTimezone的参数传入的任何时区),但用MySQL Connector

如果我使用连接URL中的
serverTimezone=UTC
连接到MySQL,这会更改连接到MySQL的
@@session.time\u zone
变量吗?或者是通过发出
设置时区…
语句来更改
@@session.time\u zone
的唯一方法?我被引导相信
serverTimezone=UTC
useLegacyDateTimeCode=false
的组合会将
@@session.timezone
设置为UTC(或我作为
serverTimezone
的参数传入的任何时区),但用MySQL Connector/J测试这种行为似乎表明它不会

如果希望将MySQL配置为UTC:

SET @@global.time_zone = '+00:00';
因此,每次自动更新datetime和每次连接到数据库时,@@session.time_zone都将设置为@global.time_zone

可能需要重新启动和重新连接数据库

如果您只是对会话时区的修改感兴趣:

SET @@session.time_zone = '+00:00';

您需要在每次连接后执行此操作。

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

如果您使用的是属性(Dropwizard,可能还有Spring),下面是解决方案:

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


连接器上根本没有提到这一点(这可能就是为什么有如此多的答案指向“serverTimezone”和其他。

在您的服务器上,
显示“%zone%”之类的变量是什么;
说明了什么?MySQL和连接器的哪个版本?这是否相关?我在这里面临着完全相同的问题。您是否通过JDBC驱动程序配置实现了相同的行为on?假设我无法控制MySQL中的全局时区(因为有许多其他系统使用相同的MySQL实例,更改全局时区可能会产生意外的后果),我对管理每个连接的会话时区感兴趣。我知道我可以使用SQL语句进行设置,但我正在尝试找出
serverTimezone
URL参数是否对会话时区有任何影响,这是一个很好的信息,但它并不能真正回答问题。
sessionTimeZone: UTC
useLegacyDatetimeCode: false