Nie można połączyć się z mongodb errno: 61 Odmowa połączenia

91

Niedawno zainstalowałem mongodb-2.6.0 z Homebrew . Po pomyślnym zainstalowaniu próbowałem połączyć się za pomocą mongopolecenia. Otrzymuję następujące błędy, które nie pozwalają mi się połączyć:

Failed to connect to 127.0.0.1:27017, reason: errno:61 Connection refused

Error: couldn't connect to server 127.0.0.1:27017 (127.0.0.1), connection attempt failed at src/mongo/shell/mongo.js:146

exception: connect failed
Michał
źródło
1
Czy na pewno usługa Mongod w ogóle działa? Jakie opcje konfiguracyjne masz w swoim pliku conf?
ffflabs
Czy użyłeś sudo apt-get do zainstalowania? Czytałem o ludziach, którzy mają z tym problemy ... spróbuj usunąć i pobrać za pośrednictwem witryny MongoDB .
Hassan
Zainstalowałem z homebrew, wskazówki na oficjalnej stronie nie mówiły, że muszę skonfigurować plik .config. Po prostu go ściągnąłem i uruchomiłem polecenie „mongoose”, co spowodowało powyższe błędy.
Michael
Sprawdź swoje logi, ogólnie /var/logs/mongodbjeśli dobrze pamiętam.
AlbertEngelB
Zainstalowałem ponownie podczas pobierania i rozpakowałem plik. Używam 'mongo' i nadal otrzymuję te same błędy.
Michael

Odpowiedzi:

277

Może się tak zdarzyć, gdy usługa mongodb nie działa na komputerze Mac. Aby to rozpocząć, próbowałem

brew services start mongodb

i zadziałało.

Edycja: Zgodnie z dyskusją na temat tego PR w homebrew: https://github.com/Homebrew/homebrew/issues/30628

brew servicesjest przestarzała, rozejrzałem się po SO i znalazłem te odpowiedzi, a teraz odpowiedz na pytanie: Jaki jest prawidłowy sposób uruchomienia usługi mongod w systemie Linux / OS X?

Hrishi
źródło
8
Otrzymuję błąd z tym poleceniem: „Nieznane polecenie: usługi”
ZeMoon
7
„Usługi parzenia” nie są już obsługiwane: github.com/Homebrew/homebrew/issues/32006
Witalij
7
Próbowałem sudo mongod zamiast mongo i zaczęło się! Aby uzyskać dostęp do powłoki mongo, otworzyłem nowe okno powłoki i napisałem mongo i zadziałało !! Pełne śledzenie błędów wraz z rozwiązaniem można znaleźć na tym blogu
Ali Raza Bhayani,
1
Usługi parzenia nie są już obsługiwane w moim systemie Mac OS X Yosemite. sudo mongoduruchomił mongodb, a następnie polecenie mongo zadziałało. Dzięki @Ali Raza Bhayani.
psun
2
Dzięki za to rozwiązanie !! Polecenie usługi parzenia działało dla mnie w moim Mac OS X Sierra.
Jcc.Sanabria
32

Napotkałem dokładnie ten sam problem i oto jasny proces krok po kroku, aby uniknąć tego błędu.

Krok 1 - Instalacja (nie wykonuj tego kroku, jeśli masz już zainstalowaną MongoDB):

brew update
brew install mongodb

Krok 2 - Uruchom demona Mongo:

mkdir -p /data/db
sudo mongod

Krok 3 - Uruchom interfejs powłoki Mongo:

mongo

W tej kolejności udało mi się uruchomić mongo polecenie bez żadnego błędu. Na tym blogu szczegółowo opisałem również śledzenie błędów i ich rozwiązanie .

Ali Raza Bhayani
źródło
1
Jest to również wymienione na oficjalnej stronie MongoDB: docs.mongodb.org/v2.2/tutorial/install-mongodb-on-os-x/ ...
Paulo Oliveira
to kiedyś zadziałało ... ale potem się przewróciło: / Wygląda na to, że
załatwiło sprawę
To dobry sposób na wygranie bitwy i przegranie wojny. Nie uruchamiaj usług jako root.
Miles Erickson
22

Aby rozwiązać problem, musisz postępować zgodnie z instrukcjami, które są następnie podawane przez brew po użyciu polecenia „brew install mongodb”.

Aby launchd uruchomił mongodb podczas logowania:

ln -sfv /usr/local/opt/mongodb/*.plist ~/Library/LaunchAgents

Następnie, aby załadować mongodb teraz:

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

Lub, jeśli nie chcesz / nie potrzebujesz launchctl, możesz po prostu uruchomić:

mongod --config /usr/local/etc/mongod.conf

Możesz po prostu uruchomić to ostatnie polecenie, ale nie zadziałało dla mnie i musiałem uruchomić drugie polecenie. Aby mnie uratować w przyszłości. Po prostu uruchomiłem też pierwsze polecenie. Mam nadzieję, że to pomoże!

EDYCJA Metoda używania Hrishiego brew services mongodb startdziałała dobrze dla mnie. Myślę, że powinni to zawrzeć w dokumentach mongo.

jh3y
źródło
Użyłem ostatniego polecenia i odwiedziłem localhost / 27017 w mojej przeglądarce, na ekranie pojawił się komunikat: „Wygląda na to, że próbujesz uzyskać dostęp do MongoDB przez HTTP na natywnym porcie sterownika”. To nie wydaje się być poprawne ...
Michael
Mongo teraz działa, prawda? Jak w ty możesz wpisać mongo w powłoce i nie dostajesz już komunikatu o odmowie połączenia? Nie będziesz mieć dostępu do mongo z przeglądarki, będziesz chciał z nim pracować z CLI.
jh3y
Nie, żadne polecenie w powłoce nie zostanie wykonane po wpisaniu „mongod --config /usr/local/etc/mongod.conf”. Jest to po prostu pusta zachęta. Zablokowałem ponownie bez użycia homebrew i pobrałem zip ze strony internetowej, przeniosłem pliki wykonywalne do / usr / local / bin, ale teraz nadal otrzymuję te same komunikaty o błędach.
Michael
tak, ostatnia komenda też mi się zawisła. Przejechałbym tylko pierwsze dwa i powinieneś być dobry. Kiedy się zawiesza, po prostu uderz ctrl + ci spróbuj mongo.
jh3y
Hmm ... Nadal nie działa. Będę pisać na forach mongoDB. Dzięki za pomoc.
Michael
16

W innej zakładce możesz uruchomić muszlę mongo za pomocą

mongod

Następnie wróć do poprzedniej karty i spróbuj ponownie. Jeśli masz problemy ze skonfigurowaniem mongoshell, sprawdź ten link w powłoce mongo: http://docs.mongodb.org/manual/tutorial/manage-mongodb-processes/ lub ten link dotyczący instalacji mongodb: http: / /docs.mongodb.org/manual/tutorial/install-mongodb-on-os-x/

Eric Hou
źródło
To zrobiło to dla mnie. Całkowicie przeoczyłem uruchomienie usługi mongod przed próbą uruchomienia mongo. Dzięki!
Matt Welander
7

Miałem ten sam problem podczas dzwonienia mongodz wiersza poleceń.

Rozwiązałem to dzwoniąc zamiast tego sudo mongod.

Bogdan T.
źródło
Nie uruchamiaj usług jako root.
Miles Erickson
4

Wystąpił ten sam błąd, ale inna przyczyna. Pomyślałem, że opublikuję tutaj rozwiązanie na wypadek, gdyby ktoś napotkał problem. Ten błąd wystąpił po nieprawidłowym zamknięciu komputera Mac podczas pracy mongorestore -d foo dump/foo/.

tl; dr : Naprawiłem problem poprzez usunięcie uszkodzonego foo.nspliku wraz z foo.0, foo.1... z mojego folderu danych /usr/local/var/mongodb/. Następnie zrestartowałem serwer mongo brew services restart mongodbi wróciłem do normy.

Szczegóły : Ciągle otrzymywałem błąd nawet po próbie uruchomienia lub ponownego uruchomienia usługi mongodb za pośrednictwem brew lub launchctl. W końcu uruchomiłem mongod --dbpath /usr/local/var/mongodb i zobaczyłem, że usługa tak naprawdę się nie uruchamia, a sekwencja startowa zawierała następujący błąd: [initandlisten] bad .ns file: /usr/local/var/mongodb/foo.ns [initandlisten] User Assertion: 10079:bad .ns file length, cannot open database pozbyłem się złego .nspliku i reszty plików danych, a następnym razem, gdy uruchomiłem usługę, było dobrze .

Nick Benes
źródło
1
Żałuję tylko, że mam tylko jeden głos za: wszystkie inne odpowiedzi ignorują fakt, że domyślne konfiguracje brew umieszczają dbs w / usr / local / var / mongodb!
premiumFrye
1
Annnddd Mongo znowu się zawiesił, więc teraz musiałem ponownie przejść przez ten proces. Dobrze, że zagłosowałem za twoją odpowiedzią, więc mogłem ją znaleźć ponownie: D
premiumFrye
3

dla mnie na osx musiałem zabić starą uruchomioną instancję, a ponowne uruchomienie zadziałało.

$>ps -aef | grep mongo
502  8047     1   0 11:52AM ??         0:00.23 /usr/local/opt/mongodb/bin/mongod --config /usr/local/etc/mongod.conf 

$>sudo kill 8047

$>sudo mongod
ranjeetcao
źródło
1

Otrzymałem ten błąd po uaktualnieniu do Mongo 3.6 z Homebrew.

Dziennik /usr/local/var/log/mongodb/mongo.logzawierał wiadomość shutting down with code:62. Ten kod błędu oznacza, że ​​istniejąca baza danych jest zbyt stara, aby mogła działać z aktualną wersją mongo.

Znalazłem 2 rozwiązania w innym pytaniu SO :

Zdecydowałem się na uaktualnienie. W moim przypadku oznaczało to, że musiałem przejść na starszą wersję 3.4, uruchomić polecenie w konsoli mongo, a następnie zaktualizować ponownie. Mongo wymaga aktualizowania jednej głównej wersji naraz, więc w zależności od tego, jak daleko byłeś, mogą być dodatkowe kroki. Dokumentacja Cię poprowadzi.

Polecenia brew switch* i brew services restartsprawiły, że przełączanie między wersjami było stosunkowo bezbolesne.

Chad von Nau
źródło
0

Jeśli zainstalowałeś już MongoDB, to najpierw spróbuj uruchomić mongod jako użytkownik sudo, napotkałem problem, ponieważ mongod nie był uruchomiony jako superużytkownik.

Wkleiłem o / p dla obu poleceń ( mongod i sudo mongod ) na samym dole, możesz to też sprawdzić, ale

Najpierw spróbuj tego

sudo mongod

nie to

mongod

Zainstalowałem MongoDB na moim MAC OS X Sierra 10.12.6, uruchamiając kolejno następujące polecenie.

brew update
brew install mongodb --devel
brew services start mongodb

następnie utworzył katalog, do którego proces mongod zapisze dane, jest to opcjonalne, ponieważ proces mongod przyjmuje go domyślnie, zobacz ten przydatny przewodnik pod adresem https://docs.mongodb.com/manual/tutorial/install-mongodb-on-os -x /

sudo mkdir -p /data/db

Wreszcie rozpoczął się proces mongod w następujący sposób

sudo mongod

Wyjście poleceń mongod (nie powiodło się) i sudo mongod (powiodło się) na moim terminalu.

MacBook-Pro-2:appscheck admin$ mongod
2017-12-10T08:12:06.166+0530 I CONTROL  [initandlisten] MongoDB starting : pid=2698 port=27017 dbpath=/data/db 64-bit host=MacBook-Pro-2.local
2017-12-10T08:12:06.166+0530 I CONTROL  [initandlisten] db version v3.4.10
2017-12-10T08:12:06.166+0530 I CONTROL  [initandlisten] git version: 078f28920cb24de0dd479b5ea6c66c644f6326e9
2017-12-10T08:12:06.166+0530 I CONTROL  [initandlisten] OpenSSL version: OpenSSL 1.0.2n  7 Dec 2017
2017-12-10T08:12:06.166+0530 I CONTROL  [initandlisten] allocator: system
2017-12-10T08:12:06.166+0530 I CONTROL  [initandlisten] modules: none
2017-12-10T08:12:06.166+0530 I CONTROL  [initandlisten] build environment:
2017-12-10T08:12:06.166+0530 I CONTROL  [initandlisten]     distarch: x86_64
2017-12-10T08:12:06.166+0530 I CONTROL  [initandlisten]     target_arch: x86_64
2017-12-10T08:12:06.166+0530 I CONTROL  [initandlisten] options: {}
2017-12-10T08:12:06.166+0530 I STORAGE  [initandlisten] exception in initAndListen: 20 Attempted to create a lock file on a read-only directory: /data/db, terminating
2017-12-10T08:12:06.166+0530 I NETWORK  [initandlisten] shutdown: going to close listening sockets...
2017-12-10T08:12:06.166+0530 I NETWORK  [initandlisten] shutdown: going to flush diaglog...
2017-12-10T08:12:06.167+0530 I CONTROL  [initandlisten] now exiting
2017-12-10T08:12:06.167+0530 I CONTROL  [initandlisten] shutting down with code:100


MacBook-Pro-2:appscheck admin$ sudo mongod
Password:
2017-12-10T08:12:14.084+0530 I CONTROL  [initandlisten] MongoDB starting : pid=2700 port=27017 dbpath=/data/db 64-bit host=MacBook-Pro-2.local
2017-12-10T08:12:14.084+0530 I CONTROL  [initandlisten] db version v3.4.10
2017-12-10T08:12:14.084+0530 I CONTROL  [initandlisten] git version: 078f28920cb24de0dd479b5ea6c66c644f6326e9
2017-12-10T08:12:14.084+0530 I CONTROL  [initandlisten] OpenSSL version: OpenSSL 1.0.2n  7 Dec 2017
2017-12-10T08:12:14.084+0530 I CONTROL  [initandlisten] allocator: system
2017-12-10T08:12:14.084+0530 I CONTROL  [initandlisten] modules: none
2017-12-10T08:12:14.084+0530 I CONTROL  [initandlisten] build environment:
2017-12-10T08:12:14.084+0530 I CONTROL  [initandlisten]     distarch: x86_64
2017-12-10T08:12:14.084+0530 I CONTROL  [initandlisten]     target_arch: x86_64
2017-12-10T08:12:14.084+0530 I CONTROL  [initandlisten] options: {}
2017-12-10T08:12:14.084+0530 I STORAGE  [initandlisten] wiredtiger_open config: create,cache_size=7680M,session_max=20000,eviction=(threads_min=4,threads_max=4),config_base=false,statistics=(fast),log=(enabled=true,archive=true,path=journal,compressor=snappy),file_manager=(close_idle_time=100000),checkpoint=(wait=60,log_size=2GB),statistics_log=(wait=0),
2017-12-10T08:12:14.472+0530 I CONTROL  [initandlisten] 
2017-12-10T08:12:14.472+0530 I CONTROL  [initandlisten] ** WARNING: Access control is not enabled for the database.
2017-12-10T08:12:14.472+0530 I CONTROL  [initandlisten] **          Read and write access to data and configuration is unrestricted.
2017-12-10T08:12:14.472+0530 I CONTROL  [initandlisten] ** WARNING: You are running this process as the root user, which is not recommended.
2017-12-10T08:12:14.472+0530 I CONTROL  [initandlisten] 
2017-12-10T08:12:14.472+0530 I CONTROL  [initandlisten] 
2017-12-10T08:12:14.472+0530 I CONTROL  [initandlisten] ** WARNING: soft rlimits too low. Number of files is 256, should be at least 1000
2017-12-10T08:12:14.560+0530 I FTDC     [initandlisten] Initializing full-time diagnostic data capture with directory '/data/db/diagnostic.data'
2017-12-10T08:12:14.707+0530 I INDEX    [initandlisten] build index on: admin.system.version properties: { v: 2, key: { version: 1 }, name: "incompatible_with_version_32", ns: "admin.system.version" }
2017-12-10T08:12:14.707+0530 I INDEX    [initandlisten]      building index using bulk method; build may temporarily use up to 500 megabytes of RAM
2017-12-10T08:12:14.719+0530 I INDEX    [initandlisten] build index done.  scanned 0 total records. 0 secs
2017-12-10T08:12:14.720+0530 I COMMAND  [initandlisten] setting featureCompatibilityVersion to 3.4
2017-12-10T08:12:14.720+0530 I NETWORK  [thread1] waiting for connections on port 27017

Następnie otworzyłem nowy terminal, aby rozpocząć odpytywanie MongoDB , zadziałało.

MacBook-Pro-2:appscheck admin$ mongo
MongoDB shell version v3.4.10
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.4.10
Welcome to the MongoDB shell.
For interactive help, type "help".
For more comprehensive documentation, see
    http://docs.mongodb.org/
Questions? Try the support group
    http://groups.google.com/group/mongodb-user
Server has startup warnings: 
2017-12-10T08:12:14.472+0530 I CONTROL  [initandlisten] 
2017-12-10T08:12:14.472+0530 I CONTROL  [initandlisten] ** WARNING: Access control is not enabled for the database.
2017-12-10T08:12:14.472+0530 I CONTROL  [initandlisten] **          Read and write access to data and configuration is unrestricted.
2017-12-10T08:12:14.472+0530 I CONTROL  [initandlisten] ** WARNING: You are running this process as the root user, which is not recommended.
2017-12-10T08:12:14.472+0530 I CONTROL  [initandlisten] 
2017-12-10T08:12:14.472+0530 I CONTROL  [initandlisten] 
2017-12-10T08:12:14.472+0530 I CONTROL  [initandlisten] ** WARNING: soft rlimits too low. Number of files is 256, should be at least 1000
> show dbs;
admin  0.000GB
local  0.000GB
> use practice
switched to db practice
>

Otóż ​​to.

kadłub
źródło
0

Miałem ten sam problem i patrząc w plik dziennika zobaczyłem to:

{2019-03-09T11:57:32.136-0500 I STORAGE  [initandlisten] 
exception in initAndListen: NonExistentPath: 
Data directory /usr/local/var/mongodb not found., terminating}

więc utworzyłem katalog, /usr/local/var/mongodb wydałem polecenie restart usług brew mongodb, mogłem otworzyć konsolę mongo.

Jonathan Wagner
źródło
-1

Domyślam się, że nie masz uruchomionej bazy danych, próbując uzyskać dostęp do testów za pomocą polecenia „mongo”.

Najpierw uruchom to polecenie w terminalu:

mongod 

Następnie otwórz kolejne okno terminala i uruchom:

mongo

Teraz wszystko powinno działać.

Ctpelnar1988
źródło
-1

Mój podobny błąd został rozwiązany przez usunięcie pliku „sudo rm /data/db/mongod.lock” podczas próby uruchomienia mongod. Teraz możesz uruchomić mongod, a potem mongo.

Rishabh Mehta
źródło