Docker : Erreur de connexion refusée lors de l'exécution de la commande artisanale Laravel
P粉787820396
2023-08-07 16:24:22
<p>J'utilise Laravel 5.4 dans Docker. Ceci est ma composition de quai. fichier yml :</p>
<pre class="brush:php;toolbar:false;">version : '2'
prestations de service:
application :
nom_du conteneur : laravel_app
image : webdevops/php-apache-dev:ubuntu-16.04
liens:
-mysql
dépend de:
-mysql
ports :
- 8888:80
tomes :
- .:/application
environnement:
docker : 'vrai'
WEB_DOCUMENT_ROOT : '/app/public'
WEB_NO_CACHE_PATTERN : '.(.*)$$'
rép_travail : '/app'
mysql :
image : mariadb : dernière
ports :
- 8889:80
environnement:
MYSQL_ROOT_PASSWORD : 'développeur'
MYSQL_DATABASE : 'développeur'
MYSQL_USER : 'développeur'
MYSQL_PASSWORD : 'dev'</pre>
<p>Voici la partie pertinente de mon fichier <code>.env</code>
<pre class="brush:php;toolbar:false;">DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=8889
DB_DATABASE=dév
DB_USERNAME=développeur
DB_PASSWORD=dev</pre>
<p>Je peux voir la page d'accueil de Laravel - cela fonctionne. Mais lorsque j'exécute php artisan migrate, j'obtiens cette erreur : </p>
<blockquote>
<p>SQLSTATE[HY000] [2002] Connexion refusée (SQL : sélectionnez * dans information_schema.tables où table_schema = dev et table_name = migrations)</p>
</blockquote>
<p>J'ai essayé de modifier les paramètres d'hôte et de port dans le fichier .env. </p>
Mettre le nom de mon conteneur mysql au lieu de 127.0.0.1
Tout d'abord, modifiez votre fichier docker-compose.yml
Ensuite, définissez le bon port de base de données dans le fichier .env
Votre port de base de données est incorrect. Vous essayez de vous connecter à un port exposé via une instance de base de données exécutée dans Docker. Dans ce cas, vous devez utiliser DB_PORT=3306
dans le fichier .env