最終更新日:2021‐08-15
エラーの内容
SpringBootの開発をしていてPom.xmlで色々とライブラリをアップデートしたときに発生したエラーです。
おそらくSpringBootのバージョンを1.5.7から2.2.6に上げたタイミング発生したので、依存関係で「mysql-connector-java」のライブラリもアップデートされたことが原因では…とか適当なことを考えてます。
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.6.RELEASE</version>
</parent>
エラーメッセージ(抜粋と一部の翻訳)
java.sql.SQLException: 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.
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:89)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:63)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:73)
タイムゾーンサポートを利用する場合は、サーバードライバーまたはJDBCドライバーのいずれかを( 'serverTimezone'構成プロパティを介して)構成し、より具体的なタイムゾーン値を使用する必要があります。
解決方法
application.propertiesを以下のように修正すると、エラーが発生しなくなります
spring.datasource.url=jdbc:mysql://localhost:3306/?serverTimezone=JST
もしくは「C:\ProgramData\MySQL\MySQL Server 8.0\my.ini」ファイルに
default-time-zone = +9:00
と追記してあげてMySQLを再起動してあげると、正常に起動するようになります。
技術の進化についていけていないシステムエンジニア。浅く広く、何でも大体はこなせるエンジニアで重宝されてる(つもり)。でもやっぱり特化した武器欲しい。
備忘録として記事を投稿していますが、少しでも誰かの助けになればと思います。
最近はプロジェクトでReact(TypeScript )を触っています。
趣味でギター弾きます。