Spring Bootのバージョンを2.4.4にあげるときの落とし穴

概要

Spring Bootのバージョンを2.4.4に上げたタイミングで自動的に解決されるmysql-connector-javaのバージョンが8.0.23に変わります。

しかし、このバージョンからタイムゾーンを接続文字列に含めて明示してない(serverTimezoneなどを指定していない)場合に採用されるタイムゾーンが8.0.22以前はサーバ側(MySQLインスタンスの設定)だったにもかかわらず、8.0.23からは接続元(Spring Bootが動いている環境のタイムゾーン)に変わるので、日時や日付をLocalDateやLocalDateTimeを使っていると9時間ずれて動いてしまいます。

対応策

手っ取り早いのはserverTimezoneまたはconnectionTimeZoneを指定し、MySQLが動いている環境のタイムゾーンと一致させることっぽいです。いやはやハマった…

f:id:kogayushi:20210409222810p:plain

情報はここ dev.mysql.com