投稿テスト兼、忘れないようにメモメモ・・
##使用環境
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さん・・感謝です!!
あぁ会社の人に見られたら怒られそう・・泣、、