0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Mysql2::Error::ConnectionError: Access denied for user 'root'@'172.20.0.4' (using password: YES)

Posted at

##はじめに
dockerでローカルの環境構築してdocker-compose up した後、ブラウザで確認したらタイトルのエラーが発生しました。

解決できたので解決の手順を記事に残しておきます。よろしくお願いします。

##解決までの手順
まず前提として、以前もローカルでdockerを使用して動かしていましたが、本番環境との兼ね合いでいろいろソースで設定をいじくった後のエラーでした。

①volumeの削除

docker-compose down --volumes

上記のコマンドでvolumeを削除します。

②db:create
volumeを削除してupすると次はdatabase見つかりません的なエラーが出たので下記コマンドでcreateしました。

docker-compose run web bundle exec rails db:create 

docker-compose run web bundle exec rails db:migrate

③docker-compose up

最後にupしたらうまいこといきました!

##仮説の原因

Mysqlにうまく繋げられていなかったのはエラー文から明らかですね。

このエラーについて調べていると、「volumeを削除することで解決する」といった記事がいくつか見かけたのでvolume削除しましたが、原因については詳しく書かれている方は見かけませんでした。。。

おそらくですが、以前にもdockerを使ってローカル環境で動かしていたこともあり、volumeに何かしらの情報が残っていてそれが邪魔していたのでは?と考えています。
例えばパスワード情報とか。。。(このときパスワード情報もソースで変更したりしていたので)

ですのでvolumeを一度削除しないとパスワードが書き換えられていないとか!?
そのための「①volumeの削除」だと考えています。

そして、②ですが、基本的にコンテナをdownさせるとその中の記録も削除されてしまいますが、DBの情報は削除されてしまうと困るのでvolumeとしてキャッシュさせています。

しかしながら先ほどvolumeを削除したのでDBもなくなったのでは!?と考えます。
ですので②でもう一度DBを作成してマイグレートしました。

##最後に
これらは私の見解ですので、もし、いやいや多分こうじゃね?とか似たような経験をされた方がいましたら教えていただけると幸いです。

参考:
https://qiita.com/fumi_042/items/7d1c14e335ab1c226e0f
https://qiita.com/muzou/items/c2f862b6f0ebfd1b22ae

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?