【Docker】mysqlサーバを立ててJavaのWeb ApplicationをLocalで動かす際に躓いた点


今回Dockerに乗せる範囲

  • バックエンド:Java(Spring Boot)
  • フロントエンド:thymeleaf
  • データベース:mysql

で実装した簡易Web Applicationがあったのですが、PCを買い換えて以来使われていなかったことを思い出したので、思い立ったが吉日!iMacちゃんにお引っ越しすることにしました。

▼今回お引っ越しされたアプリ

【Spring Boot x oauth2】Google認証でWeb Applicationを作成する

で、お引っ越しする際に開発環境の設定からだったのですが、せっかくなので流行りに乗ってDockerを使ってみました。今回はお試しということでmysql部分だけDockerを使っています。

ただ、mysql部分をDockerに乗せるだけでだいぶ躓いたので備忘録を残します…。


エラー1号「Can‘t connect to MySQL server on ‘127.0.0.1

IPアドれず部分を変えても「Can‘t connect to MySQL server on ‘x.x.x.xというエラーが出続けました。

聖なるうんこ(Holy Sxxtを直訳しています)って感じなのですが、Google先生に聞いてみると同じ悩みを持った先輩方がいらっしゃいました。

今回は下記の記事を参考にさせていただきました。

https://qiita.com/ny7760/items/ac517eef814ac8012743

ExposeすることでLocalからアクセスできるようにしてあげると、無事にmysqlサーバにつながりました。

が…悲劇は続きます…。


エラー2号「’caching_sha2_password’ cannot be loaded: dlopen(/usr/local/lib/plugin/caching_sha2_password.so, 2): image not found」

こいつもまた聖なるうんこなのですが、ローカルのSQL用のGUIアプリで何回ログインを試行してもこいつが出てきました。

仕方がないので、再度、全知全能を謳う大親友Googleに相談してみました。

結果、今回は下記の記事を参考にさせていただきました。

皆が通る道なのですね…。


エラー3号「Access denied for user ‘root’@’localhost’ (using password: YES)」

エラー2号と戦っているときに発生しました。

これはシンプルに「アクセスが拒否されたぞ(=今回のケースに当てはめた意訳:パスワードが違うぞ)」という趣旨のメッセージなのですが、まあ最初はだいぶ悩みました。

結局、途中で「docker-compose.yml」の「MYSQL_ROOT_PASSWORD」を書き換えたことが原因でした。僕は書き換え後のパスワードでログインを試行していたのですが、最初にコンテナを立ち上げたときにすでにPasswordがセットされているので、最初にセットしたパスワードじゃなければNGというなんとも初歩的なところでミスってました。

寝不足のせいにしておきます…。


無事に稼働

そんなこんなで無事にiMacちゃんでもWeb Applicationが動くようになりました!

せっかくDockerを入れたので、時間を見つけて夏ぐらいまでに何かWeb Applicationを1個作ってみたいと思います。

なにより自分のローカルを汚さずに手軽に開発環境が構築できるのは素敵ですね!


最後まで読んでいただきありがとうございます。もしこの記事を気に入って頂けたようであればシェアをお願い致します。非常に励みになります。


コメントを残す