使用 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中文网其他相关文章!