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
.
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
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.
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
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.
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
.
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
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