web-dev-qa-db-fra.com

Mongodb ne commencera pas

J'ai installé MongoDB à l'aide de la commande Mac Homebrew, mais lorsque j'exécute mongod

Ce n'est pas reconnu mon terminal: /

Si je tape export PATH=$PATH:/usr/local/mongodb/bin puis lancez mongod il démarre mais se ferme rapidement

mongod --help for help and startup options
Sun Jan 20 18:59:25 [initandlisten] MongoDB starting : pid=59800 port=27017 dbpath=/data/db/ 64-bit Host=Kevin-Tucks-MacBook-Pro.local
Sun Jan 20 18:59:25 [initandlisten] db version v2.0.4, pdfile version 4.5
Sun Jan 20 18:59:25 [initandlisten] git version: 329f3c47fe8136c03392c8f0e548506cb21f8ebf
Sun Jan 20 18:59:25 [initandlisten] build info: Darwin erh2.10gen.cc 9.8.0 Darwin Kernel Version 9.8.0: Wed Jul 15 16:55:01 PDT 2009; root:xnu-1228.15.4~1/RELEASE_I386 i386 BOOST_LIB_VERSION=1_40
Sun Jan 20 18:59:25 [initandlisten] options: {}
Sun Jan 20 18:59:25 [initandlisten] journal dir=/data/db/journal
Sun Jan 20 18:59:25 [initandlisten] recover : no journal files present, no recovery needed
Sun Jan 20 18:59:25 [initandlisten] preallocateIsFaster=true 2.38
Sun Jan 20 18:59:25 [websvr] ERROR: listen(): bind() failed errno:48 Address already in use for socket: 0.0.0.0:28017
Sun Jan 20 18:59:25 [websvr] ERROR:   addr already in use
Sun Jan 20 18:59:25 [initandlisten] ERROR: listen(): bind() failed errno:48 Address already in use for socket: 0.0.0.0:27017
Sun Jan 20 18:59:25 [initandlisten] ERROR:   addr already in use
Sun Jan 20 18:59:25 [initandlisten] now exiting
Sun Jan 20 18:59:25 dbexit: 
Sun Jan 20 18:59:25 [initandlisten] shutdown: going to close listening sockets...
Sun Jan 20 18:59:25 [initandlisten] shutdown: going to flush diaglog...
Sun Jan 20 18:59:25 [initandlisten] shutdown: going to close sockets...
Sun Jan 20 18:59:25 [initandlisten] shutdown: waiting for fs preallocator...
Sun Jan 20 18:59:25 [initandlisten] shutdown: lock for final commit...
Sun Jan 20 18:59:25 [initandlisten] shutdown: final commit...
Sun Jan 20 18:59:25 [initandlisten] shutdown: closing all files...
Sun Jan 20 18:59:25 [initandlisten] closeAllFiles() finished
Sun Jan 20 18:59:25 [initandlisten] journalCleanup...
Sun Jan 20 18:59:25 [initandlisten] removeJournalFiles
Sun Jan 20 18:59:25 [initandlisten] shutdown: removing fs lock...
Sun Jan 20 18:59:25 dbexit: really exiting now

J'ai essayé de redémarrer mon shell, mais si j'essaie d'exécuter à nouveau mongod, il redevient non reconnu et nécessite que je ressaisie dans export PATH=$PATH:/usr/local/mongodb/bin.

22
Keva161

Kyle: "On dirait que Mongo est déjà en cours d'exécution ou qu'un autre processus utilise le port 27017"

Dans ce cas, tapez la commande suivante

ps wuax | grep mongo

Vous devriez voir quelque chose qui ressemble à ceci

User           31936   0.5 0.4 2719784 35624   ?? S     7:34pm   0:09.98 mongod
User           31945   0.0 0.0 2423368   184 s000 R+   8:24pm   0:00.00 grep mongo

Maintenant, entrez la commande kill pour l'instance mongod (31936 dans ce cas):

kill 31936
77
Sacha Nacar

Je viens d'installer le brassage sur osx (10.9.3), Mongod (2.6.1) et j'ai le même problème. Def ne pas exécuter une deuxième copie. 

$ lsof -i | grep 2701 

ne montre aucun port ouvert.

J'ai trouvé ce qui suit aidé.

Le fichier de configuration par défaut brassé écrit (/usr/local/etc/mongod.conf) contient la ligne:

bind_ip = 127.0.0.1,<my-machine>.local

Si vous modifiez ce fichier et modifiez la ligne comme suit:

bind_ip = 127.0.0.1
or
bind_ip = <my-machine>.local

Puis redémarrez le service avec la commande ci-dessous, il devrait démarrer comme prévu.

$ brew services restart mongodb

Vous pouvez vérifier le succès ou l’échec en finissant le fichier journal dans une autre fenêtre

$ tail -f /usr/local/var/log/mongodb/mongo.log 

Il semble que le système tente d'ouvrir les deux adresses répertoriées ici et qu'elles résolvent toutes les deux en 127.0.0.1. Nous rencontrons toujours un échec lorsque le système essaie d'ouvrir le deuxième port, puis ferme le tout.

4
jrule

Dim 20 jan 18:59:25 [websvr] ERREUR: adresse déjà utilisée dim 20 jan 18:59:25 [initandlisten] ERREUR: listen (): bind () a échoué errno: 48 Adresse déjà utilisée pour le socket: 0.0.0.0:27017 dim. Janv. 20 18:59:25 [Initandlisten] ERROR: addr déjà utilisé

Il semble que mongo est déjà en cours d'exécution ou qu'un autre processus utilise le port 27017

3
Kyle

cette solution fonctionne pour moi. J'utilise la version 3.2 de Mongodb

j'ai mis le chemin vers,

/usr/local/bin

et je fais le répertoire de données mongodb sur/data/db et je donne la permission à mon compte. Ce tutoriel de mkyong est vraiment utile.

1
affhendrawan

Pour toutes les personnes qui arrivent ici, cela a été résolu (du moins de mon côté) en arrêtant le service mongodb déjà en cours d'exécution:

brew services stop mongodb 

puis en exécutant mongod.

1
Siddhartha Khanooja

Cela ne permet pas de tuer lorsque vous avez configuré le démarrage automatique, alors supprimez le fichier de verrouillage et réparez-le (mac osx).

 cd /data/db
 rm mongod.lock
 Sudo mongod --repair
0
Caner Çakmak

Pour que mongod ne soit pas dans votre PATH, il semble que la logique de prise en charge ait été modifiée à quelques reprises depuis la version que vous utilisez. Si vous mettez à niveau, ce problème pourrait bien être résolu automatiquement.

Comme d'autres l'ont déjà dit, l'erreur générée indique qu'un autre processus utilise déjà le port configuré. Une possibilité est que, dans le passé, vous avez exécuté la commande que Homebrew vous avait présentée pour installer MongoDB en tant que LaunchAgent. Si c'est le cas, cette commande devrait l'annuler, vous permettant de la lancer à partir de la ligne de commande.

launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.mongodb.plist

0
davidmc24