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が動いている環境のタイムゾーンと一致させることっぽいです。いやはやハマった…
情報はここ dev.mysql.com