MySQL JDBC 驱动程序 5.1.33 - 时区问题

2022-08-31 04:29:33

一些背景:

我有一个在Tomcat 7上运行的Java 1.6 webapp。数据库是MySQL 5.5。以前,我使用Mysql JDBC驱动程序5.1.23连接到数据库。一切都很好。我最近升级到Mysql JDBC驱动程序5.1.33。升级后,Tomcat 会在启动应用程序时引发此错误。

WARNING: Unexpected exception resolving reference
java.sql.SQLException: The server timezone value 'UTC' is unrecognized or represents
  more than one timezone. You must configure either the server or JDBC driver (via
  the serverTimezone configuration property) to use a more specifc timezone value if
  you want to utilize timezone support.

为什么会发生这种情况?


答案 1

显然,要使MySQL JDBC驱动程序的5.1.33版本与UTC时区一起使用,必须在连接字符串中显式指定。serverTimezone

jdbc:mysql://localhost/db?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC

答案 2

我通过配置MySQL解决了这个问题。

SET GLOBAL time_zone = '+3:00';


推荐