1. ホーム
  2. java

[解決済み] MySQL JDBC ドライバ 5.1.33 - タイムゾーンの問題

2022-03-21 22:47:58

質問

背景を教えてください。

私は、Tomcat 7上でJava 1.6のウェブアプリを動かしています。データベースはMySQL 5.5です。以前は、DBに接続するために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.

なぜ、このようなことが起こるのでしょうか?

どうすればいいですか?

MySQL JDBC ドライバのバージョン 5.1.33 で UTC タイムゾーンを使用するには、次のように指定する必要があるようです。 serverTimezone 接続文字列で明示的に指定します。

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