🔨

Docker環境のLaravelからMySQLコンテナへ接続できない

2022/08/18に公開

Docker環境のLaravelからMySQLへ繋ごうとすると以下のエラーになる。

SQLSTATE[HY000] [2002] Connection refused

原因はLaravelプロジェクト側にある環境変数の設定が間違っている可能性がある。

.env

DB_HOST=127.0.0.1

環境変数の「DB_HOST」 をMySQLのコンテナ名にするか、docker-composer.ymlのMySQLのサービス名を設定すれば解決するという情報があったが自分の場合はダメだった。

https://qiita.com/kaorikatakura/items/98e928c57a761ac2d714

解決

MySQLコンテナのIPアドレスを調べ設定したところ解決。

## ターミナルを開いて下記実行(ローカルでMySQLを入れているためDockerのMySQLとポートを分けている)
mysql -u root -p -h 127.0.0.1 -P 4306 laravel9x_db

## あえてパスワードミスをすることでIPアドレスを表示
Enter password: 
ERROR 1045 (28000): Access denied for user 'root'@'172.19.0.1' (using password: NO)

.env

DB_HOST=172.19.0.1

Discussion