Erreur de démarrage du userland proxy: écouter tcp0.0.0.0:3306: bind: adresse déjà en cours d'utilisation
ERREUR: pour dockervel_mysql_1 Ne peut pas redémarrer conteneur c258b418c03cbd6ec02c349c12cf09403f0eaf42fa9248019af7860d037d6474: pilote a échoué de programmation externe de la connectivité sur le point de terminaison dockervel_mysql_1 (da3dd576458aa1fe3af7b539c48b9d61d97432cf5e9ee02d78562851f53981ae): Error de départ userland proxy: écouter tcp0.0.0.0:3306: bind: adresse déjà en cours d'utilisation.
Je dois faire LAravel application et à fournir un Dockerfile ,mais je suis vraiment coincé avec ce. Avant que j'ai eu un cauchemar wile l'installation de laravel sur ma machine.
Je vais essayer d'obtenir dockervel image et je suis en suivant les étapes décrites ici:
http://www.spiralout.eu/2015/12/dockervel-laravel-development.html
Mais quand je lance dartisan faire:auth il donne cette erreur ci-dessus.
J'ai essayé de Changer le port par défaut dans le menu fixe-composer.yml
ports:
- "8084:80"
toujours rien,a également essayé d'arrêter apache2 (service apache2 stop) sur ma machine ,également essayé docker-composition de redémarrer et enlever le panneau contenant dockervel_mysql_1.
Je mantion que j'ai déjà un Laravel proj. dans /var/www/laravel .
S'il vous plaît aider!
- À partir de la sortie de
sudo netstat -antp
qu'est-ce que en utilisant le port 3306? - Je l'ai obtenu , je suppose que c'est mon mysql local . Il y a trois jours j'ai installé laravel et mysql à l'aide de ce tecadmin.net/install-laravel-framework-on-ubuntu/#. Merci beaucoup pour votre aide! tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 1370/mysqld
- goodnesskay réponse m'a aidé. Mais pour moi, la commande est: sudo service mysql stop
Vous devez vous connecter pour publier un commentaire.
Probablement vous avez déjà un serveur MySQL d'un service en cours d'exécution dans le port 3306. Vous devriez la fermer en premier.
Ensuite, essayez de fin
docker-compose down
et de le redémarrer avecdocker-compose up
.Rappelez-vous aussi pour modifier les autorisations d'après vous ajoutez un fichier dans votre projet (comme
dartisan make:auth
) avecdpermit
Mise à JOUR:
depuis que vous avez changé le port "8084" vous devriez aller
localhost:8084
Si vous voyez l'apache par défaut alors vous avez probablement la navigation sur un autre serveur depuis dockervel est de s'appuyer sur
nginx
.Vous avez aussi probablement avoir quelques lacunes sur Docker. Ne mélangez pas votre local de stockage avec le panneau de stockage.
/var/www
dans un conteneur est différent de celui de votre local/var/www
. dans le menu fixe-composer.yml vous montez le local~/dockervel/www
à conteneurs/var/www
.Je voudrais vous suggérer de tout recommencer, et annuler les modifications que vous avez apportées à votre serveur apache. L'arrêter, vous n'en avez pas besoin. Dockervel allons vous fournir un serveur NginX dans un récipient.
J'ai eu le même problème et
m'a montré le PID et le service auquel il a été initié par (mysgld). Chaque fois que j'ai essayé de tuer le PID puis il a commencé à nouveau. Mais le problème a été résolu quand j'ai arrêté le service par
Notez que vous devrez utiliser
mysql
et pasmysqld
.J'espère que cela va le faire pour vous - j'ai été en mesure d'exécuter
docker-compose up
sans aucun problèmesur Ubuntu l'exécution de cette commande arrête mysql à partir de l'exécution de votre conteneur docker au travail.
Ensuite, si votre apache2 est en cours d'exécution, vous devez arrêter le service en particulier lorsque vous voulez travailler avec nginx.
Ensuite, vous pouvez exécuter votre
docker-compose up -d ...
commandeL'erreur que vous voyez est à partir d'un local instance mysql à l'écoute sur le port 3306 (actuellement sur pid 1370 à partir de vos commentaires). Vous ne serez pas en mesure d'exécuter un conteneur qui publie sur ce port de l'hôte alors qu'il est déjà utilisé par un autre processus. Solutions pour arrêter mysql sur l'hôte local, ou à modifier/supprimer le port publié dans votre conteneur. Si le port est seulement nécessaire par d'autres conteneurs, vous pouvez le laisser inédites, et ils peuvent communiquer directement sur le panneau de réseau privé (par défaut, c'est "le pont").
ls /etc/init.d
de trouver le nom du service pour mysql. Modification de la base de données mysql publié le port est les mêmes étapes que vous avez changé pour le port 80, vous avez juste besoin de faire cela pour 3306 au lieu de 80.Vous avez besoin de changer le port mysql
parce que vous êtes l'installation de mysql sur votre machine et il prend par défaut le port 3306
et maintenant vous essayez de faire dockervel_mysql_1 exécuter sur le même port 3306 , c'est pourquoi vous voyez l'erreur "Address already in use"
donc, si vous changez dockervel_mysql_1 port 3307 par exemple, il fonctionne très bien , sans arrêter le serveur mysql qui est en cours d'exécution sur votre machine