2014-10-28 17 views
12

Mój problem jest podobny do innych danych wejściowych i sugestii na tej stronie, ale żadna nie pomogła mi. Po zainstalowaniu MongoDB nie uruchomiono, ponieważ baza danych nie jest uruchomiona.MongoDB: Nie można połączyć się z 127.0.0.1:27017, powód: errno: 61 Połączenie odrzucone

pierwsze próby uruchomienia Mongo i odpowiedział następująco:

Mac-Pro-de-User: ~ user $ mongo 
MongoDB shell version: 2.6.4 
connecting to: test 
2014-10-28T10: 47: 08713-0700 warning: Failed to connect to 127.0.0.1:27017, reason: errno: 61 Connection refused 
2014-10-28T10: 47: 08713-0700 Error: could not connect to server 127.0.0.1:27017 (127.0.0.1) Attempt connection failed at src/mongo/shell/mongo.js: 146 
exception: connect failed 

Następnie spróbuj sprawdzić mongod i odpowiedział następująco:

Mac-Pro-de-User: ~ user $ mongod 
mongod --help for help and startup options 
2014-10-28T10: 59: 34485-0700 [initandlisten] MongoDB starting: pid = 926 port = 27017 dbpath =/data/db host = 64-bit Mac-Pro-de-Ernesto.local 
2014-10-28T10: 59: 34485-0700 [initandlisten] 
2014-10-28T10: 59: 34485-0700 [initandlisten] ** WARNING: soft rlimits too low. Number of files is 256, Should be at Least 1000 
2014-10-28T10: 59: 34485-0700 [initandlisten] db version v2.6.4 
2014-10-28T10: 59: 34485-0700 [initandlisten] git version: 3a830be0eb92d772aa855ebb711ac91d658ee910 
2014-10-28T10: 59: 34485-0700 [initandlisten] Build info: Darwin bs-osx108-4 12.5.0 Darwin Kernel Version 12.5.0: Sun Sep 29 13:33:47 PDT 2013; root: xnu-2050.48.12 ~ 1/x86_64 RELEASE_X86_64 BOOST_LIB_VERSION = 1_49 
2014-10-28T10: 59: 34485-0700 [initandlisten] allocator: system 
2014-10-28T10: 59: 34485-0700 [initandlisten] options: {} 
2014-10-28T10: 59: 34486-0700 [initandlisten] journal dir =/data/db/journal 
2014-10-28T10: 59: 34486-0700 [initandlisten] recover: no journal files present, no recovery needed 
2014-10-28T10: 59: 34500-0700 [FileAllocator] allocating new datafile /data/db/local.ns, filling zeroes With ... 
2014-10-28T10: 59: 34500-0700 [FileAllocator] creating directory/data/db/_tmp 
2014-10-28T10: 59: 34512-0700 [FileAllocator] done allocating datafile /data/db/local.ns, size: 16MB, took 0.011 secs 
2014-10-28T10: 59: 34726-0700 [FileAllocator] allocating new datafile /data/db/local.0, filling zeroes With ... 
2014-10-28T10: 59: 35398-0700 [FileAllocator] done allocating datafile /data/db/local.0, size: 64MB, took 0.671 secs 
2014-10-28T10: 59: 35695-0700 [initandlisten] build index on: local.startup_log properties: {v: 1, key: {_id: 1}, name: "_id_" ns "local.startup_log"} 
2014-10-28T10: 59: 35695-0700 [initandlisten] index added to empty collection 
2014-10-28T10: 59: 35695-0700 [initandlisten] Local command $ cmd command. Create {create: "startup_log" size: 10485760, capped: true} ntoreturn: 1 KeyUpdates: 0 numYields: 0 reslen: 37 1194ms 
2014-10-28T10: 59: 35695-0700 [initandlisten] waiting for connections on port 27017 
2014-10-28T11: 00: 34516-0700 [clientcursormon] mem (MB) res: 33 virt: 2653 
2014-10-28T11: 00: 34516-0700 [clientcursormon] mapped (incl journal view): 160 
2014-10-28T11: 00: 34516-0700 [clientcursormon] connections: 0 

następnie spróbuj ponownie połączyć i spędzić trochę czasu, i ponownie mówi to samo:

2014-10-28T11: 05: 34589-0700 [clientcursormon] mem (MB) res: 33 virt: 2653 
2014-10-28T11: 05: 34589-0700 [clientcursormon] mapped (incl journal view): 160 
2014-10-28T11: 05: 34589-0700 [clientcursormon] connections: 0 

I tak dalej. Jeśli możesz pomóc, bardzo to docenisz.

PS: Nie ma już/data/db z 777 zezwoleń, a ja użyciu OSX Mavericks 10.9.5

+0

Po prostu go wrzuciłem - po prostu włączałam i wyłączałam komputer i znowu zaczął działać. Zdarzyło mi się to dwukrotnie: – James111

Odpowiedz

19

Czy używasz tych wszystkich poleceń w tym samym terminalu jako oddzielne działania, które sugerują twoje znaczniki czasu? (jeśli nie, spodziewałbym się, że wystąpią nakładki między błędami i logami, aby prawidłowo zdiagnozować).

Jeśli tak, to co robisz jest następujący:

  1. Zaczynając otoczkę, próbując połączyć się z non-running bazy danych (odmowa połączenia)
  2. Uruchomienie bazy danych, widząc 0 połączeń w dzienniki
  3. zatrzymywanie bazy (Ctrl-C lub podobny) rozpoczynając skorupę, nie połączyć się ponownie, ponieważ baza danych została zamknięta
  4. Uruchomienie bazy danych, widząc 0 połączeń w dziennikach
  5. powtórzenie

Baza danych musi działać równolegle z powłoką, aby można było się z nią połączyć. Dlatego należy rozpocząć proces mongod w jednym terminalu, pozostawić go uruchomionym, a następnie otworzyć nowy terminal (lub kartę) i uruchomić polecenie mongo, aby połączyć się z wciąż działającą bazą danych. Druga opcja to run mongod as a daemon, która pozwoli ci uruchomić komendę mongo w tym samym terminalu po powrocie.

Uwaga: nigdy nie powinieneś mieć folderu z 777 uprawnieniami, nie jest on wymagany i jest znaczącym zagrożeniem bezpieczeństwa.

+1

Dziękuję, zadziałało. Uruchom mongodę w tle i można uzyskać do niego dostęp za pośrednictwem mongo sell. Czy możesz mi powiedzieć, jakie uprawnienia są polecane dla tego folderu. Jeszcze raz dziękuję =) –

+1

Zakładając, że jest on w posiadaniu ciebie i prowadzisz mongoba jako siebie (nie używając sudo), wtedy 755 będzie dobrze, po prostu nie chcesz, żeby był on zapisywalny na świecie. Jeśli nie jest on własnością użytkownika, należy go najpierw zakodować ('chown -R user: staff/data/db' - zastąpić użytkownika rzeczywistą nazwą użytkownika). –

+0

Bardzo dziękuję =) był bardzo pomocny = D –

1

Po prostu spróbuj tego polecenia.

sudo chown MongoDB /tmp/mongodb-27017.sock

I

usługę sudo mongod restart

1

Poprawiono!

Powodem była zmienna dbpath w pliku /etc/mongodb.conf. Poprzednio używałem mongodb 1.8, gdzie domyślną wartością dla dbpath było/data/db. Monstre job upstart (dołączone do pakietu mongodb-10gen) wywołuje mongodę za pomocą opcji --config /etc/mongodb.conf.

Jako rozwiązanie musiałem tylko rekursywnie zmienić właściciela katalogu/data/db.

Jak to: Idź do "/ Data" lokalizacji w terminalu a następnie wpisz

sudo chown -R <username>:foldername

na przykład:

sudo chown -R raja db/

0

Witam prostu sprawdzić jeśli utworzyłeś ścieżkę/data/db, a jeśli tak, to podaj 755 za misja z chmod.

+1

Witamy w SO! Istnieje już akceptowana odpowiedź na te pytania, które autor potwierdził, działa. Unikaj dodawania odpowiedzi, chyba że dostarczą coś nowego. Ponadto korzystanie z 777 może stanowić problem bezpieczeństwa i powinno się go unikać. – ext

Powiązane problemy