web-dev-qa-db-fra.com

Erreur lors du démarrage du proxy utilisateur: listen tcp0.0.0.0: 3306: bind: adresse déjà utilisée

ERREUR: pour dockervel_mysql_1 Impossible de redémarrer conteneur c258b418c03cbd6ec02c349c12cf09403f0eaf42fa9248019af7860d037d6474: pilote connectivité externe point final dockervel_mysql_1 programmation failed (de da3dd576458aa1fe3af7b539c48b9d61d97432cf5e9ee02d78562851f53981ae): E rror départ proxy userland: écouter tcp0 .0.0.0: 3306: bind: adresse déjà utilisée.

Je dois faire l'application LAravel et livrer un fichier Docker, mais je suis vraiment coincé avec cela. Avant cela, j’avais fait un cauchemar en installant Laravel sur ma machine.

J'essaie d'obtenir une image de dockervel et je suis les étapes suivantes: http://www.spiralout.eu/2015/12/dockervel-laravel-development.html

Mais quand je lance dartisan make: auth, cela donne cette erreur ci-dessus.

J'ai essayé de changer le port par défaut dans le fichier docker-compose.yml

ports:

- "8084:80"

toujours rien, également essayé d'arrêter Apache2 (service Apache2 stop) sur ma machine, également essayé docker-compose restart et en supprimant le conteneur docker dockervel_mysql_1. Je dois dire que j’ai déjà un _ Laravel proj. dans/var/www/laravel.

S'il vous plaît aider!

9
moonlight

Vous avez probablement déjà un service MySQL sur le port 3306. Vous devez d'abord le fermer.
Essayez ensuite de terminer docker-compose down et de le redémarrer avec docker-compose up.
N'oubliez pas non plus de modifier les autorisations après avoir ajouté un fichier dans votre projet (tel que dartisan make:auth) avec dpermit

UPDATE: Depuis que vous avez changé le port en "8084", vous devriez aller à localhost:8084
Si vous voyez la valeur par défaut d’Apache, vous naviguez probablement sur un autre serveur car dockervel repose sur nginx.
Vous avez probablement aussi des lacunes sur Docker. Ne mélangez pas votre stockage local avec le stockage docker. /var/www dans un conteneur est différent de votre /var/www local. Dans docker-compose.yml, vous montez le ~/dockervel/www local sur les conteneurs /var/www.
Je vous suggérerais de tout recommencer et d’annuler les modifications apportées à votre serveur Apache. Fermez-le, vous n'en avez pas besoin. Dockervel vous fournira un serveur NginX dans un conteneur.

8
Spiral Out

J'ai eu le même problème et

Sudo netstat -nlpt |grep 3306

m'a montré le PID et le service qui l'a démarré (mysgld). Chaque fois que j'ai essayé de tuer le PID, il a été redémarré. Mais le problème a été résolu lorsque j'ai arrêté le service par

Sudo service mysql stop

Notez que vous devrez utiliser mysql et non mysqld.

J'espère que cela le fera pour vous - j'ai pu exécuter docker-compose up sans aucun problème

16
Per Mikkelsen

sous Ubuntu, l'exécution de cette commande empêchera votre mysql de s'exécuter pour que votre conteneur docker fonctionne.

Sudo service mysqld stop  

Ensuite, si votre Apache2 est en cours d'exécution, vous devez arrêter le service, en particulier lorsque vous souhaitez utiliser nginx.

Sudo service Apache2 stop

Ensuite, vous pouvez exécuter votre commande docker-compose up -d ... 

4
goodnesskay

L'erreur que vous voyez provient d'une instance mysql locale qui écoute sur le port 3306 (actuellement sur le pid 1370 de vos commentaires). Vous ne pourrez pas exécuter un conteneur qui publie sur ce port d'hôte s'il est déjà utilisé par un autre processus. Les solutions consistent soit à arrêter mysql sur l'hôte local, soit à modifier/supprimer le port publié dans votre conteneur. Si le port n'est utilisé que par d'autres conteneurs, vous pouvez le laisser non publié et ils peuvent communiquer directement sur le réseau privé du menu fixe (par défaut, il s'agit du "pont").

1
BMitch

Vous devez changer le port mysql Parce que vous installez mysql sur votre machine et que le port par défaut est 3306

et maintenant vous essayez de faire en sorte que dockervel_mysql_1 soit exécuté sur le même port 3306, c’est pourquoi vous voyez dans l’erreur "Adresse déjà utilisée"

donc si vous changez le port de dockervel_mysql_1 en 3307 par exemple, cela fonctionnera correctement, sans arrêter le mysql en cours d'exécution sur votre machine 

0
Ahmed Al Bermawy