💡

DockerでアプリケーションのコンテナからMySQLのコンテナに接続できない

2024/07/27に公開
rails aborted!
ActiveRecord::ConnectionNotEstablished: Host '172.18.0.5' is not allowed to connect to this MySQL server

docker-compose upするとアプリケーションのコンテナがこのエラーで立ち上がらない

原因

MySQLユーザーの権限不足

対応

MySQLに入って新しいユーザーを作成し権限を与えることにした

1.DBのコンテナに入る

docker exec -it {コンテナID} bash

2.MySQLに入る

mysql -u root -p

3.ユーザーを作成

CREATE USER 'app_user'@'%' IDENTIFIED BY 'app_password';

(一応ユーザーが作成されているか確認)

SELECT User, Host FROM mysql.user

4.作成したユーザーに権限を与える

GRANT ALL PRIVILEGES ON *.* TO 'app_user'@'%' WITH GRANT OPTION;

docker-compose.ymlの書き換え

webのUSERとPASSWORDの部分を作成したユーザーのものに書き換え

これで無事にアプリケーションのコンテナを立ち上げられた

Discussion