🔨
Docker環境のLaravelからMySQLコンテナへ接続できない
Docker環境のLaravelからMySQLへ繋ごうとすると以下のエラーになる。
SQLSTATE[HY000] [2002] Connection refused
原因はLaravelプロジェクト側にある環境変数の設定が間違っている可能性がある。
.env
DB_HOST=127.0.0.1
環境変数の「DB_HOST」 をMySQLのコンテナ名にするか、docker-composer.ymlのMySQLのサービス名を設定すれば解決するという情報があったが自分の場合はダメだった。
解決
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