2012-03-31 20 views
30

Nie mogę połączyć się z Mongo DB, które zainstalowałem jako usługę Windows na moim komputerze lokalnym. Zbudowałem również małą aplikację WPF, która komunikuje się z MongoDB. ErrorMessage:Jak naprawić moją monondę?

błędu: nie mógł połączyć się z serwerem powłoki 127.0.0.1/mongo.js 8 wyjątek: brak połączenia Unclean zamknięcie wykryty.

+1

zrobiłem tę samą aplikację Architecture: WPF aplikacji i MongoDB jako „lokalnego db” i dochodzę do wniosku, że z powodu tego problemu MongoDB nie nadaje się do tego typu aplikacji, ale tylko dla wysoko niezawodne platformy po stronie serwera. Inaczej będzie często odwiedzany przez ten problem. Lepiej wybierz alternatywę, taką jak LiteDb lub Mini-Biggy. –

Odpowiedz

89

Należy go uruchomić z flagą --repair.

mongod --repair 

Po zakończeniu naprawy zatrzymaj ją i uruchom normalnie. Documentation on --repair option.

+1

Zorientowałem się, czytając instrukcję. – marko

+37

Czytanie jest dobre :) –

+1

Jeśli naprawa się nie powiedzie i mongod zareaguje wyjątkiem na uszkodzonym pliku danych, usuń plik mongd.lock wraz z uszkodzonymi plikami danych mongo i uruchom mongod - ponownie napraw. Będziesz oczywiście tracił dane dzięki temu podejściu, ale przynajmniej będziesz mógł ponownie zacząć mongodę. – chromaloop

11

Szybsze:

sudo rm /data/db/mongod.lock 
sudo mongod --dbpath /data/db --repair 
sudo mongod --dbpath /data/db 
+0

pomógł, dzięki! – Saani

+1

Dzięki! Używanie opcji --dbpath z flagą --repair działało dla mnie. Miałem ten sam problem z "nieczystym zamknięciem" (cokolwiek to oznacza), a kiedy próbowałem naprawić, dostałem komunikat o błędzie, że nie znaleziono domyślnego katalogu "\ data \ db". Było to oczekiwane, ponieważ korzystam z oddzielnej lokalizacji do przechowywania moich dzienników i danych. Właśnie ustawiłem --dbpath na moją niestandardową lokalizację i działałem. Nie potwierdziłem, ale domyślam się, że mogłem użyć --config "mongodb \ mongod.cfg" z flagą --repair dla MongoDB do korzystania z moich własnych ustawień. Dziwne, że nie czytało z tego pliku z naprawą. –

+0

działa. Dzięki +1 –

9

Jeśli zrobisz to operacja naprawy jako użytkownik root mieć pewność, że pliki potem wszystko db są własnością użytkownika MongoDB, inaczej MongoDB nie rozpocznie

chown -R mongodb:mongodb /data/db 
rm /data/db/mongod.lock 
/etc/init.d/mongodb start 
Powiązane problemy