270 文字
1 分
railsをdockerで構築して、Host '172.18.0.5' is not allowed to connect to this MySQL server
概要
- dockerをクリーンインストールしたら繋がらなくなった
- コードを追っていく必要あって、ちょっと面倒だった
トレース
調べた流れ
- mysqlの権限が無くなっているっぽいから、docker-compose execして、mysqlの中身を見てみると、からっぽ。rootのパスワードも設定されていない状態。
hostテーブルに許可情報を入れようと思って、entry-point.sh を見てみて、MYSQL_ROOT_HOSTを設定したりしたけど、実行されていない。- このあたり のコードが実行されていれば良いのだけれど、実行されていない。
- もうすこし
entry-point.shを見てみると、mysqlのデータディレクトリの存在チェックが行われている。
最終的には、docker-compose.ymlで定義してあるvolumeの中身を消して、docker-compose upしたら直った。
docker compose down -vまとめ
- 発生原因ちょっと謎。docker-composeとかdockerでmysqlを構築していて、volumeをデータディレクトリに使っている場合に発生する。
- 発生原因が謎。
railsをdockerで構築して、Host '172.18.0.5' is not allowed to connect to this MySQL server
https://blog.teraren.com/posts/rails-docker-host-is-not-allowed-to-connect-to-this-mysql-server/