2013-01-20 11 views
22

zainstalowałem MongoDB używając polecenia Mac Homebrew ale gdy uruchamiam mongodMongoDB nie rozpocznie

To nie rozpoznał mój mój zacisk:/

Gdybym wpisać export PATH=$PATH:/usr/local/mongodb/bin następnie uruchomić mongod uruchamia się, ale szybko wyjście

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 

próbowałam ponownym moją skorupę, ale gdy próbuję uruchomić mongod znowu wraca jako nierozpoznane i wymaga ode mnie wpisywać w export PATH=$PATH:/usr/local/mongodb/bin.

+1

Coś już korzysta z portów, których chce używać mongo. Może poprzednia instancja mongo działa. Użyj 'netcat' lub podobnego narzędzia, aby poznać PID tego procesu. – madhead

+0

Nie jestem zaznajomiony z netcat, ale próbowałem netstat i otrzymuję .. netstat -an | grep 27017 tcp4 0 0 127.0.0.1.27017 *. * LISTEN 84de1dfcd2270d97 strumień 0 0 84de1dfcd318fb37 0 0 0 /tmp/mongodb-27017.sock – Keva161

+0

Czy próbowałeś uruchomić klienta mongo, aby połączyć się z localhost? Być może mongoda już się zaczęła i po prostu musisz się z nim połączyć. –

Odpowiedz

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

Wygląda Mongo jest już uruchomiony lub inny proces jest za pomocą portu 27017

0

Dla mongod nie będąc w PATH, wygląda logiki do wsparcia, które zostało manipulowane kilka razy od wersji jesteś na. Jeśli dokonasz aktualizacji, problem ten może zostać naprawiony automatycznie.

Jak inni już powiedziałem, to dawanie błąd wskazuje, że inny proces używa już skonfigurowanego portu. Jedną z możliwości jest to, że w przeszłości uruchamiałeś polecenie, które Homebrew zaoferował ci, aby zainstalować MongoDB jako LaunchAgent. W takim przypadku to polecenie powinno je cofnąć, umożliwiając uruchomienie z wiersza polecenia.

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

+0

Próbowałem polecenia hat, ale wystąpił błąd "launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.mongodb.plist launchctl: Nie można stat ("/Users/Keva161/Library/LaunchAgents/homebrew.mxcl.mongodb. plist "): Brak takiego pliku lub katalogu nic nie znaleziono dla zwolnienia" Wygląda na to, że automatycznie uruchamia serwer, gdy nie chcę tego:/Czy mimo to można go wyłączyć? – Keva161

+0

Wygląda na to, że Mongo zostało zainstalowane jako usługa, ale nie w tym miejscu. Mac OS X nie ma szczególnie dobrego interfejsu do zarządzania LaunchAgents/LaunchDaemons. "man launchctl" pomoże ci w podejściu opartym na linii poleceń. Lingon (obecnie 5 USD) to aplikacja GUI do zarządzania nimi, co znacznie ułatwia. http://www.peterborgapps.com/lingon/ – davidmc24

4

Właśnie zainstalowałem napar na OSX (10.9.3), mongod (2.6.1) i miał ten sam problem. Def nie uruchamia drugiej kopii.

$ lsof -i | grep 2701 

pokazuje brak otwartego portu.

Znalazłem następujące pomógł.

pisze domyślny plik konfiguracyjny Brew (/usr/local/etc/mongod.conf) zawiera linię:

bind_ip = 127.0.0.1,<my-machine>.local 

Jeśli edytujesz ten plik i zmienić linię do jednego z następujących:

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

Następnie uruchom ponownie usługę za pomocą poniższego polecenia, powinna rozpocząć się zgodnie z oczekiwaniami.

$ brew services restart mongodb 

Można sprawdzić na sukces lub niepowodzenie ogonków pliku dziennika w innym oknie podczas uruchamiania

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

Wydaje się, że stara się otworzyć oba adresy wymienionych tutaj i oboje postanawiają 127,0. 0.1, więc zawsze mamy awarię, gdy próbuje otworzyć drugi port, a następnie zamyka wszystko.

73

Kyle: „Wygląda na to, Mongo jest już uruchomiony lub inny proces używa portu 27017”

W tym przypadku, należy wpisać następujące polecenie

ps wuax | grep mongo 

Powinieneś zobaczyć coś, co wygląda tak

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 

teraz wprowadź polecenie kill dla mongod instancji (31936 w tym przypadku):

kill 31936 
+0

Awesome !!! To działało dla mnie. :) –

+1

Musiałem użyć "sudo kill pid" – user3681587

+0

Naprawiono dla mnie :) dziękuję. – Airwavezx

0

to rozwiązanie działa dla mnie. Używam MongoDB wersji 3.2

i ustawić ścieżkę,

/usr/local/bin 

i robię MongoDB katalog danych do/data/db i ustawić uprawnienia do myown konto. Ta tutorial z mkyong jest naprawdę pomocna.

0

Dla każdego z ludzi, którzy lądują tu ten został rozwiązany (przynajmniej na moim końcu) przez zatrzymanie już uruchomiony mongodb usługę:

brew services stop mongodb

a następnie uruchomiony mongod.

Powiązane problemy