0
0

More than 3 years have passed since last update.

SpringBootからDockerHubのMySQLに接続する設定

Last updated at Posted at 2021-07-07

2021/7/7時点での情報です。

はじめに

docker-hubのmysqlをローカルで使用して結合テストしようとしてハマりました。

環境

■ Spring Boot

Windows10
Spring Boot v2.3.5.RELEASE
mysql-connector-java 8.0.22

■MySQL
ubuntu 20.04
docker v20.10.7
docker-hub MySQL 8.0.25

結論

こうすれば繋がりました。

application.yml
# local docker setting
  datasource:
    url: jdbc:mysql://localhost:3306/test_todo?useLegacyDatetimeCode=false&serverTimezone=Asia/Tokyo
    driverClassName: com.mysql.cj.jdbc.Driver
    username: <ユーザー名>
    password: <パスワード>

TimeZoneの設定が必要だったみたいです。

確認ポイント

mysql-connector-java のバージョンによって

  • Spring Bootとの相性
  • Spring Bootの設定ファイル(application.yml)の書き方

が違います。

  • Spring Boot(gradle)との相性

gradleを使用してライブラリを管理していると
mysql-connector-java 8.0.22がデフォルトでした。

mysql-connector-java 8.0.25に変えると
java.time.LocalDateTime cannot be cast to java.sql.Timestamp
のエラーが出てSpring Bootが起動できませんでした。
(コンパイルは通っていたのでmysql-connector-java 8.0.25との相性に問題があるのでは...)

  • Spring Bootの設定ファイル(application.yml)の書き方

mysql-connector-javaのバージョンが
8.0.22以前はTimeZoneの設定をapplication.ymlに記載する必要が有りますが、
8.0.23以降はTimeZoneの設定をapplication.ymlに記載する必要が無いです。
mysql-connector-java 8.0.23

0
0
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
0
0