技術質問
DockerでMySQLコンテナに接続できない(接続拒否)
docker-compose up でMySQLを立ち上げてPHPから接続しようとするとConnection refusedになります。ポートは3306:3306で開けています。PHP側のhostnameをlocalhostにしていたのですが、コンテナ名に変えても同じエラーです。何が原因でしょうか?
@yamamoto_eng
2025年02月02日 20:00
👁 575
💬 3 返信
// 3 REPLIES
S
@suzuki_infra
2025/02/02 21:00
#1
MySQLの起動完了前にPHPが接続しようとしているケースが多いです。depends_onにhealthcheckを設定してみてください。condition: service_healthy を使うと確実です。
I
@ito_frontend
2025/02/02 22:30
#2
hostnameは必ずサービス名(db)にしてください。localhostだとコンテナ内を指してしまいます。これが原因の可能性が高いです。
Y
@yamamoto_eng
2025/02/03 10:00
#3
healthcheckとdepends_on設定で解決しました!ありがとうございます。hostnameもdbに変えてたのですが起動タイミングの問題でした。