railsをdockerで構築して、Host ‘172.18.0.5’ is not allowed to connect to this MySQL server

docker

概要

  • 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をデータディレクトリに使っている場合に発生する。
  • 発生原因が謎。

コメント