2013-01-20 25 views
22

Ho installato MongoDB usando il comando Mac Homebrew, ma quando ho eseguito mongodMongoDB non si avvia

Non è riconosciuto il mio mio terminale:/

Se digito export PATH=$PATH:/usr/local/mongodb/bin quindi eseguirlo mongod si avvia ma rapidamente esce

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 

ho provato a riavviare il mio guscio, ma se provo a correre mongod di nuovo, si ritorna come non riconosciuta e mi richiede di digitare nuovamente in export PATH=$PATH:/usr/local/mongodb/bin.

+1

Qualcosa sta già usando le porte, che mongo vuole usare. Forse la precedente istanza di mongo è in esecuzione. Usa 'netcat' o uno strumento simile per conoscere il PID di quel processo. – madhead

+0

Non ho molta familiarità con netcat ma ho provato netstat e sto ottenendo .. netstat -an | grep 27017 tcp4 0 0 127.0.0.1.27017 *. * ASCOLTA 84de1dfcd2270d97 stream 0 0 84de1dfcd318fb37 0 0 0 /tmp/mongodb-27017.sock – Keva161

+0

Hai provato a avviare il client mongo per connetterti a localhost? Forse mongod è già avviato e devi solo collegarti ad esso. –

risposta

3

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

Sembra Mongo è già in esecuzione o in un altro processo sta utilizzando la porta 27017

0

Per mongod non essere nel PATH, sembra che la logica di sostenere che è stato ottimizzato un paio di volte in quanto la versione sei su. Se si aggiorna, il problema potrebbe essere risolto automaticamente.

Come altri hanno già detto, l'errore è dare indica che un altro processo sta già utilizzando la porta configurata. Una possibilità è che in passato hai eseguito il comando che Homebrew ti ha presentato per installare MongoDB come LaunchAgent. Se questo è il caso, questo comando dovrebbe annullare quello, permettendoti di avviarlo dalla riga di comando.

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

+0

Ho provato il comando hat ma ho ricevuto un errore 'launchctl scarica ~/Library/LaunchAgents/homebrew.mxcl.mongodb.plist launchctl: non può stat ("/ Users/Keva161/Library/LaunchAgents/homebrew.mxcl.mongodb. plist "): Nessun file o directory trovato per scaricare ' Sembra che sia in esecuzione automaticamente un server quando non lo desidero:/Esiste comunque la disattivazione? – Keva161

+0

Sembra che forse hai installato Mongo come servizio, ma non in quella posizione. Mac OS X non ha un'interfaccia utente particolarmente buona per la gestione di LaunchAgent/LaunchDaemon. "man launchctl" ti aiuterà nell'approccio a linea di comando. Lingon (attualmente $ 5) è un'app GUI per gestirli che lo rende molto più semplice. http://www.peterborgapps.com/lingon/ – davidmc24

4

Ho appena installato birra su OSX (10.9.3), mongod (2.6.1) e aveva lo stesso problema. Def non esegue una seconda copia.

$ lsof -i | grep 2701 

non mostra nessuna porta aperta.

Ho trovato il seguente aiuto.

La scrittura file di configurazione di default BREW (/usr/local/etc/mongod.conf) contiene la linea:

bind_ip = 127.0.0.1,<my-machine>.local 

Se si modifica il file e cambiare la linea per una delle seguenti operazioni:

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

Quindi riavviare il servizio con il comando seguente, dovrebbe essere avviato come previsto.

$ brew services restart mongodb 

È possibile verificare il successo o il fallimento da tailing il file di log in un'altra finestra mentre a partire

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

Sembra che sta cercando di aprire sia degli indirizzi elencati qui ed entrambi risolvere a 127,0. 0.1, quindi otteniamo sempre un errore quando tenta di aprire la seconda porta e poi chiude il tutto.

73

Kyle: "Sembra che Mongo è già in esecuzione o in un altro processo sta utilizzando la porta 27017"

In questo caso, digitare il seguente comando

ps wuax | grep mongo 

Si dovrebbe vedere qualcosa che assomiglia a questo

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 

Ora inserite il comando kill per l'istanza mongod (31936 in questo caso):

kill 31936 
+0

Fantastico !!! Questo ha funzionato per me. :) –

+1

Ho dovuto usare "sudo kill pid" – user3681587

+0

Risolto per me :) grazie. – Airwavezx

0

questa soluzione funziona per me. Sto usando MongoDB versione 3.2

ho impostato percorso,

/usr/local/bin 

e faccio directory dei dati MongoDB a/dati/permesso db e impostare myown conto. Questo tutorial di mkyong è davvero utile.

0

Per nessuna delle persone che sbarcano qui, questo è stato risolto (almeno da parte mia) arrestando il già in esecuzione mongodb servizio:

brew services stop mongodb

e quindi eseguire mongod.