MySQL连接器错误"服务器时区值中欧时间"

Mar*_*til 8 java mysql jdbc

我的问题

MySQL连接器"服务器时区值中欧时间"无法识别或代表多个时区.

该项目

小型Web项目:JavaEE,Tomcat 8.5,MySQL,Maven

我的尝试

  • Maven - >将MySQL连接器格式6.x更改为5.1.39(无更改)
  • 编辑context.xml URL更改

context.xml中的连接

URL ="jdbc:mysql://127.0.0.1:3306/rk_tu_lager?useLegacyDatetimeCode = false; serverTimezone = CEST; useSSL = false;

错误:

引起:com.mysql.cj.core.exceptions.InvalidConnectionAttributeException:服务器时区值'Mitteleurop?ische Sommerzeit'无法识别或代表多个时区.如果要使用时区支持,则必须配置服务器或JDBC驱动程序(通过serverTimezone配置属性)以使用更具体的时区值.

Mar*_*til 15

谢谢Mark Rotteveel和Gord Thompson

我在XML文件中有连接&,Europe/Amsterdam最后工作.

url="jdbc:mysql://127.0.0.1:3306/rk_tu_lager?useLegacyDatetimeCode=false&serverTimezone=Europe/Amsterdam&useSSL=false"
Run Code Online (Sandbox Code Playgroud)

谢谢你,你很棒

  • 在 DataGrip 中也有同样的问题,可以使用类似的设置值来解决。将其设置为“serverTimezone=Europe/Berlin”让我摆脱了连接警告。 (2认同)

小智 8

找出您所在的时区并将 +00:00 替换为您的时区。

SET @@global.time_zone = '+00:00';
SET @@session.time_zone = '+00:00';
Run Code Online (Sandbox Code Playgroud)

然后检查是否设置了值:

SELECT @@global.time_zone, @@session.time_zone;
Run Code Online (Sandbox Code Playgroud)

选择结果


vik*_*ngh 6

当我将mysql服务器升级到SQL Server 8.0(MYSQL80)时,遇到了这个问题。

解决此问题的最简单方法是在MYSQL Workbench中编写以下命令-

  SET GLOBAL time_zone = '+5:30'
Run Code Online (Sandbox Code Playgroud)

时区之后的值将等于GMT +/-时区中的差异。上面的示例适用于印度(GMT + 5:30)。它将解决问题。