91 votes

SocketException : Adresse déjà utilisée MONGODB

J'ai trouvé cette erreur en essayant d'exécuter mongodb. Je l'installe via homebrew. Merci de m'aider

Agungs-MacBook-Pro:~ agungmahaputra$ mongod
2017-12-26T15:31:15.911+0700 I CONTROL  [initandlisten] MongoDB starting : pid=5189 port=27017 dbpath=/data/db 64-bit host=Agungs-MacBook-Pro.local
2017-12-26T15:31:15.911+0700 I CONTROL  [initandlisten] db version v3.6.0
2017-12-26T15:31:15.911+0700 I CONTROL  [initandlisten] git version: a57d8e71e6998a2d0afde7edc11bd23e5661c915
2017-12-26T15:31:15.911+0700 I CONTROL  [initandlisten] OpenSSL version: OpenSSL 1.0.2n  7 Dec 2017
2017-12-26T15:31:15.911+0700 I CONTROL  [initandlisten] allocator: system
2017-12-26T15:31:15.911+0700 I CONTROL  [initandlisten] modules: none
2017-12-26T15:31:15.911+0700 I CONTROL  [initandlisten] build environment:
2017-12-26T15:31:15.911+0700 I CONTROL  [initandlisten]     distarch: x86_64
2017-12-26T15:31:15.911+0700 I CONTROL  [initandlisten]     target_arch: x86_64
2017-12-26T15:31:15.911+0700 I CONTROL  [initandlisten] options: {}
2017-12-26T15:31:15.911+0700 E STORAGE  [initandlisten] Failed to set up listener: SocketException: Address already in use
2017-12-26T15:31:15.911+0700 I CONTROL  [initandlisten] now exiting
2017-12-26T15:31:15.911+0700 I CONTROL  [initandlisten] shutting down with code:48
Agungs-MacBook-Pro:~ agungmahaputra$

137voto

Balasubramani M Points 538

Vous pouvez tuer le précédent mongod et démarrer la nouvelle instance.

Pour tuer l'instance précédente de mongod, recherchez d'abord une liste des tâches en cours d'exécution sur votre machine en tapant,

sudo lsof -iTCP -sTCP:LISTEN -n -P

Recherche de mongod COMMANDE et son PID et le type,

sudo kill <mongo_command_pid>

Démarrez maintenant votre instance de mongod en tapant,

mongod

Vous pouvez voir que MongoDB fonctionne correctement.

2 votes

Ça marche pour moi ! Bonne réponse !

2 votes

Il faudrait probablement le modifier pour qu'il fonctionne sur PC, mais pour Mac, il est parfait. Tnx

1 votes

Dans mon cas, (Centos 7 Mongo 4.0.10) le service en cours d'exécution était le démon Mongo et le tuer a juste causé un problème différent. Il suffisait d'utiliser la commande 'mongo' au lieu de 'mongod'

109voto

Tony Roczz Points 1024

Vous avez déjà un processus en cours d'exécution dans le port 27017 qui est utilisé par mongodb . Il faut donc soit arrêter le processus dans ce port, soit essayer avec un autre numéro de port.

Essayer mongod --port 27018

Vous pouvez modifier le numéro de port de votre choix.

EDIT :

Vous pouvez également arrêter toutes les instances du serveur Mongo en cours d'exécution. sudo killall mongod comme le mentionne @Dassi Orleando dans les commentaires. Et courir mongod

11 votes

Bonne réponse, nous pouvons en fait fermer l'ancienne instance de Mongo en appuyant sur la commande : sudo killall mongod .

10voto

crifan Points 1242

Résumé autre( @Tony Roczz , @Balasubramani M ) :

Cause première

erreur : Failed to set up listener: SocketException: Address already in use

signifie :

  • avoir précédemment exécuté mongodb
    • probablement utiliser le port par défaut 27017

Solución

(dans la plupart des cas) tuer et redémarrer mongod

tuer mongod

deux méthodes :

  • utiliser killall
    • killall mongod
  • tuer par PID
    • find mongod PID
      • méthode 1 : ps aux | grep mongod
      • La sortie peut se faire de la manière suivante : limao 425 ... /usr/local/opt/mongodb-community/bin/mongod --config /usr/local/etc/mongod.conf
      • méthode 2 : lsof -iTCP -sTCP:LISTEN -n -P
      • La sortie peut se faire de la manière suivante : mongod 425 limao .. TCP 127.0.0.1:27017 (LISTEN)
    • tuer par PID : kill -9 425

redémarrer mongod

  • dans la plupart des cas : mongod
  • un cas particulier
    • brew services start mongodb-community
      • pour installer la version communautaire sur Mac by : brew install mongodb-community

(pour certaines personnes) fonctionner avec un autre port

  • avec un autre port : mongod --port 27018
    • seulement pour ceux qui veulent faire tourner plusieurs serveurs mongod en même temps

Note complémentaire

Quel est le port utilisé par mongodb en cours d'exécution ?

 lsof -iTCP -sTCP:LISTEN -n -P
COMMAND     PID  USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
mongod      425 limao   10u  IPv4 0xab744305e75263cf      0t0  TCP 127.0.0.1:27017 (LISTEN)

peut voir 27017 est le port actuel de mongodb.

comment vérifier / s'assurer que mongod fonctionne

  • vérifier l'état du mongod :
    • ps aux | grep mongod
      • la sortie peut voir mongod service
    • brew services list
      • s'il est installé par brew et commencer par brew

7voto

sh6210 Points 503

Si vous utilisez la version 4.* de mongodb

dans les paramètres par défaut, il devrait y avoir un dossier "db" "/data/db" disposant des autorisations nécessaires.

pour vérifier si le service MongoDB a démarré

brew services list

si ce n'est pas le cas, exécuter

brew services start mongodb

courir mongo au lieu de mongod

0 votes

Merci. Dans mon cas, (Centos 7 Mongo 4.0.10) c'est tout ce qu'il fallait.

6voto

Agustín Marí Points 51

J'ai résolu le problème en collant la commande ci-dessous dans la ligne de commande afin de fermer le serveur Mongo.

sudo pkill -f mongod

"sudo" (Super User Do) exécute la commande admin permissions, et vous demandera donc votre mot de passe d'utilisateur.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X