首页 >Java >java教程 >为什么 MySQL JDBC 驱动程序 5.1.33 会抛出有关服务器时区的 SQLException?

为什么 MySQL JDBC 驱动程序 5.1.33 会抛出有关服务器时区的 SQLException?

Barbara Streisand
Barbara Streisand原创
2024-12-13 12:13:10872浏览

Why Does MySQL JDBC Driver 5.1.33 Throw a SQLException Regarding Server Timezone?

MySQL JDBC 驱动程序 5.1.33 和意外的 JDBC 异常

使用 JDBC 驱动程序 5.1.23 的 Java Web 应用程序在连接到 MySQL 5.5 数据库时没有遇到任何问题。但是,升级到驱动程序版本 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.

为了纠正此问题,确定 MySQL JDBC 驱动程序 5.1.33 需要显式连接字符串中的 serverTimezone 参数规范以支持 UTC 时区。这是通过将以下内容添加到连接字符串来实现的:

?serverTimezone=UTC

此添加可确保驱动程序使用指定的时区进行临时操作,解决异常并使应用程序能够正常运行。因此,修改后的连接字符串如下所示:

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

以上是为什么 MySQL JDBC 驱动程序 5.1.33 会抛出有关服务器时区的 SQLException?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn