LoginSignup
12
11

More than 5 years have passed since last update.

JavaでDB(MySQL)接続しようとするとエラーが出る解決策

Last updated at Posted at 2019-02-04

投稿テスト兼、忘れないようにメモメモ・・

使用環境

eclipse 2018
MySQL 5.6

現象

javaでSQLに繫いで、値を表示させようとすると、
以下のようなエラーを吐く。

Caused by: com.mysql.cj.exceptions.InvalidConnectionAttributeException: The server time zone value '“Œ‹ž (•W€Žž)' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to utilize time zone support.

プログラムに触れて約一年・・
未だにエラーは読めないが・・・Timezoneが何たらと思い、調べてみることに..

調べている間に、発見!!
[リンク]https://qiita.com/KKZ@github/items/e3f594b04c9233a86419
この方の記事にたどり着きました。

その記事の下のほうに、

jdbc:mysql://localhost:xxxx/xxxx
?useUnicode=true&
useJDBCCompliantTimezoneShift=true&
useLegacyDatetimeCode=false&
serverTimezone=UTC
とURLに書いたら、エラーをはかなくなった。
※xxxxは人によって違う、

以下説明(間違ってたらごめんなさい)

useUnicode=true

ユニコードを使いますか?YES!!
(絶対違う気がする・・・)

useJDBCCompliantTimezoneShift=true

TIME/TIMESTAMP/DATETIME値のtimezone情報を変換する時,
ドライバは JDBC 対応 ルールを使用しますか ?  
YES

useLegacyDatetimeCode=false

MySQL Connector/J 5.1.6 で時刻周りの処理が書き直されてuseLegacyDatetimeCode=false することでタイムゾーン変換などを自動で扱ってくれるようになった。

だそうなので、
タイムゾーン変換とか自分でやります?
NO!! → 自動でやってくれる

ちなみに、
MySQL Connector/J 6 では useLegacyDatetimeCodeプロパティを含め、
古いタイムゾーン周りのプロパティは全部削除される。

と以下のリンクに書いてありました。 笑
[リンク]https://vividcode.hatenablog.com/entry/mysql/connector-j-5.1-use-legacy-datetime-code

serverTimezone=UTC

サーバータイムゾーンはUTCですよー

っと言った感じですかね、、

@ KKZさん・・感謝です!!

あぁ会社の人に見られたら怒られそう・・泣、、

12
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
11