首頁 >Java >java教程 >為什麼 MySQL JDBC 驅動程式 5.1.33 會拋出有關伺服器時區的 SQLException?

為什麼 MySQL JDBC 驅動程式 5.1.33 會拋出有關伺服器時區的 SQLException?

Barbara Streisand
Barbara Streisand原創
2024-12-13 12:13:10866瀏覽

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