Laravel : `SQLSTATE[HY000] [2002] Connection refused` avec Docker

poze 3 months ago420 gadefr

7

Mon app Laravel tourne dans un conteneur et MySQL dans un autre (docker compose). Dans .env j'ai DB_HOST=127.0.0.1. Erreur : Connection refused.

Dyagnostik IA

Se IA ki fè l. Se pa yon repons — kominote a anba a konfime oswa korije l. Toujou verifye anvan ou fye l.

poze 3 months ago

1 Repons

6
✓
✓ Repons yo aksepte

Dans un conteneur, 127.0.0.1 désigne le conteneur lui-même, pas ta machine ni le conteneur MySQL. Utilise le nom du service défini dans docker-compose.yml :

DB_HOST=mysql   # nom du service
DB_PORT=3306    # port interne, pas le port publié

Ensuite :

docker compose exec app php artisan config:clear

Si l'erreur persiste au démarrage, c'est que MySQL n'est pas encore prêt. Ajoute un healthcheck sur le service MySQL et depends_on: condition: service_healthy sur l'app.

Astuce : Laravel Sail configure tout ça pour toi (DB_HOST=mysql par défaut).

Konekte pou di lòt moun si li te mache.

answered 3 months ago

Sign in and verify your email to post an answer.