mongo - nie można połączyć się z serwerem 127.0.0.1:27017

164

Pochodzę z riak i redis, gdzie nigdy nie miałem problemu z uruchomieniem tych usług lub z interakcją.

Jest to wszechobecny problem z mongo i raczej nie mam pojęcia. Ponowne uruchomienie nie pomaga, jestem nowy w mongo.

mongo
MongoDB shell version: 2.2.1
connecting to: test
Fri Nov  9 16:44:06 Error: couldn't connect to server 127.0.0.1:27017 src/mongo/shell/mongo.js:91
exception: connect failed

Oto, co widzę w dziennikach.

 now open)
Fri Nov  9 16:44:34 [conn47] end connection 10.29.16.208:5306 (1 connection now open)
Fri Nov  9 16:45:04 [initandlisten] connection accepted from 10.29.16.208:5307 #48 (2 connections now open)
Fri Nov  9 16:45:04 [conn48] end connection 10.29.16.208:5307 (1 connection now open)
Fri Nov  9 16:45:04 [initandlisten] connection accepted from 10.29.16.208:5308 #49 (2 connections now open)
Fri Nov  9 16:45:04 [conn49] end connection 10.29.16.208:5308 (1 connection now open)
Fri Nov  9 16:45:34 [initandlisten] connection accepted from 10.29.16.208:5316 #50 (2 connections now open)
Fri Nov  9 16:45:34 [conn50] end connection 10.29.16.208:5316 (1 connection now open)
Fri Nov  9 16:45:34 [initandlisten] connection accepted from 10.29.16.208:5317 #51 (2 connections now open)
Fri Nov  9 16:45:34 [conn51] end connection 10.29.16.208:5317 (1 connection now open)
Fri Nov  9 16:46:04 [initandlisten] connection accepted from 10.29.16.208:5320 #52 (2 connections now open)
Fri Nov  9 16:46:04 [conn52] end connection 10.29.16.208:5320 (1 connection now open)
Fri Nov  9 16:46:04 [initandlisten] connection accepted from 10.29.16.208:5321 #53 (2 connections now open)
Fri Nov  9 16:46:04 [conn53] end connection 10.29.16.208:5321 (1 conn
Tampa
źródło
2
Ponieważ IMO nie ma to nic wspólnego z programowaniem jako takim, radziłbym zadać to pytanie na serverfault.com .
cimnine
2
Miałem też ten sam problem. Jego cus mongo Nie można utworzyć
STEEL
Napotkałem ten sam błąd podczas korzystania z firmowego laptopa i instalowania MongoDB na C :. Ze względu na uprawnienia administratora i fakt, że za każdym razem, gdy coś instaluję lub modyfikuję w C:, pojawia się monit o podanie nazwy użytkownika i hasła administratora, to był powód, dla którego nie mogłem uruchomić mongodb. Po zainstalowaniu go na D: wszystko działało dobrze.
paranza

Odpowiedzi:

47

Ten błąd jest tym, co zobaczysz, jeśli powłoka mongo nie będzie w stanie komunikować się z serwerem mongod.

Może to być spowodowane tym, że adres był nieprawidłowy (host lub adres IP) albo nie był uruchomiony. Należy zwrócić uwagę na to, że dostarczony ślad w dzienniku nie obejmuje daty „piątek 9 listopada 16:44:06” mongo timestamp.

Czy możesz:

  1. Podaj argumenty wiersza poleceń (jeśli są) użyte do uruchomienia procesu mongod
  2. Czy podać aktywność pliku dziennika z uruchamiania mongod, a także dzienniki podczas próby uruchomienia powłoki mongo?
  3. Czy potwierdzasz, że twój proces mongod jest uruchamiany na tej samej maszynie, co powłoka mongo?
Jenna
źródło
282

Zwykle jest to spowodowane tym, że proces mongod nie został uruchomiony przed uruchomieniem powłoki mongo.

Uruchom serwer mongod

mongod

Otwórz inne okno terminala

Uruchom muszlę mongo

mongo
Ravi Hamsa
źródło
3
Ten przypadek zadziałał dla mnie, musiałem zrobić ~> sudo mongod --dbpath / dbpathlocation, a następnie otworzyłem nowy terminal, aby uruchomić mongo ...
Saji
5
to, co działało dla mnie na macOS Sierra, to, sudo mongoda potemmongo
Amin Jafari
Musiałem utworzyć katalog / data / db przed uruchomieniem mongod
Student,
Nie mogę uwierzyć, że wszystko, co musiałem zrobić, to uruchomić mongodw tle lub w innej powłoce przed uruchomieniem mongo. Krzyczcie do Raviego Hamsy !
Kareem Jeiroudi
Pracował dla mnie jak urok!
Sobhit Sharma
86

Zdecydowany.

Ten problem można rozwiązać za pomocą poniższych 4 kroków

1) Usuń plik .lock

sudo rm /var/lib/mongodb/mongod.lock 

2) napraw mongodb

mongod -–repair

3) uruchom serwer mongod

sudo service mongod start 

4) uruchom klienta mongo

mongo

Więcej informacji można znaleźć pod adresem http://shakthydoss.com/error-couldnt-connect-to-server-127-0-0-127017-srcmongoshellmongo-js-exception-connect-failed/

http://shakthydoss.com/technical/error-couldnt-connect-to-server-127-0-0-127017-srcmongoshellmongo-js-exception-connect-failed/

shakthydoss
źródło
4
Zastanawiam się tylko, co to jest /var/lib/mongodb/mongod.lock i co z nim nie tak?
ozn
Pozycja 2 w Ubuntu 18.04 tomongod --repair
Aline Matos
43

Ta metoda działa tylko wtedy, gdy chcesz naprawić pliki danych bez zachowywania oryginalnych plików

Aby znaleźć lokalizację dbpath - vim /etc/mongodb.conf

sprawdź opcję dbpath =

(Mam dbpath = / var / lib / mongodb)

Domyślnie: / data / db /

Typowe lokalizacje to: / srv / mongodb, / var / lib / mongodb lub / opt / mongodb.

Zastąp / var / lib / mongodb swoją dbpath

sudo rm /var/lib/mongodb/mongod.lock
sudo mongod --dbpath /var/lib/mongodb/ --repair
sudo mongod --dbpath /var/lib/mongodb/ --journal

(Upewnij się, że zostawiłeś działający terminal, w którym uruchomiłeś powyższe linie, nie naciskaj 'Ctrl + c' ani nie wychodź.) Wpisz polecenie uruchomienia mongo teraz w innym oknie.

Mam nadzieję, że to działa dla Ciebie! dla tych, którzy chcą naprawić swoje pliki danych, zachowując oryginalne pliki, które mongo odzyskać

poorva
źródło
1
pracować na ubuntu. - dziennik rozwiązał mój problem. Co tak naprawdę robi? po co jest - dziennik?
grep
Pracował dla mnie na fedorze 20. Czy możemy teraz zamknąć pierwsze okno terminala?
Khayam Gondal
26

SYSTEM OPERACYJNY MAC

Sprawdź status

brew services list

Coś jak:

Name    Status  User Plist
mongodb stopped  

Zacznij to

brew services start mongodb

Spróbuj ponownie

mongo lub mongo --port 27017

William Hu
źródło
1
To pomogło mi +1.
Sandeep
Nie działa dla mnie. Od godziny walczę z tym MongoDB. Łał!!!
Glenn
to mi pomogło, dziękuję ..
Iam ByeBlogs
15

W moim przypadku:

Najpierw otwieram plik konfiguracyjny

sudo vi /etc/mongodb.conf

Komentuj IP i port w ten sposób

#bind_ip = 127.0.0.1
#port = 27017

Następnie uruchom ponownie mongodb

sudo service mongodb restart
sudo service mongod restart

Wreszcie praca: D

finn@Finn ~ $ mongo
MongoDB shell version: 2.4.9
connecting to: test
> exit
Fin
źródło
Usunięcie adresu IP / portu nie działa dla mnie. W rzeczywistości zepsuł serwer jeszcze bardziej. Serwis odmówił ponownego uruchomienia ...
Cerin
1
Uważaj na bind_ip. Jeśli to skomentujesz, pozwoli to na zdalne połączenia z twoją bazą danych, co jest oczywiście okropnym pomysłem, chyba że masz ustawienia zabezpieczeń i autoryzacji. Uważam, że MongoDB domyślnie nie ma użytkowników ani hasła, więc musisz być tego świadomy.
agm1984
Pracuj też dla mnie, ale nie wiem o bezpieczeństwie po komentarzu @ agm1984, po prostu użyję tego w trybie deweloperskim i po skorzystaniu z Atlas Cloud of Mongodb, bezpieczniejszego w moim przypadku (z moim słabym serwerem umiejętności: D)
Adrien V
1
@AdrienV oczywiście, jest to ryzykowne, jeśli usuniesz lokalne powiązanie IP, ponieważ pozwoli to na dostęp z Internetu. To tylko obejście dla serwera deweloperskiego.
Finn
bind_ip został ustawiony na dodatkowy nieznany adres IP. Usunięcie go rozwiązało błąd / db / data ... ufff
zevero
14

Upewnij się, że Twoje mongo działa. Naprawiłem ten problem, próbując naprawić mongodb, ale okazało się, że katalog wymagany do uruchomienia bazy danych nie został utworzony. Pokazuje ten błąd

Wpisz mongod:, pokaże błąd

exception in initAndListen: 29 Data directory /data/db not found., terminating

Błąd występuje, ponieważ ścieżka dbpath /data/db/(domyślna konfiguracja) nie istnieje. Musisz utworzyć folder danych i ustawić do niego uprawnienia.

Następnie tworzę folder w moim systemie za pomocą polecenia

sudo mkdir -p / data / db / i sudo chown id -u/ data / db

potem ponownie uruchomiłem mongo i zadziałało.

Bipul Chandra Dev Nath
źródło
14

Trochę za późno z odpowiedzią, ale napotkałem ten sam problem

Oto kroki, które mi pomogły.

  1. Idź do C: \
  2. Utwórz folder „data”
  3. W „data” utwórz folder „db”
  4. otwórz terminal (CMD) -> przejdź do EX: „ c:\MongoDB\Server\3.4\bin
  5. wpisz mongod => to uruchomi serwer mongo (pozostaw otwarty)

Uruchom za pomocą GUI, EX „robomongo”

Lub

otwórz nowy terminal (CMD) -> idź do EX: " c:\MongoDB\Server\3.4\bin" wpisz polecenie "mongo"

Metin Atalay
źródło
12

Jestem użytkownikiem systemu Windows i zainstalowałem MongoDB w listopadzie 2018 i nie chciałem konfigurować katalogów data / db. Ale po kilku dniach, kiedy otworzyłem, pojawił się komunikat o błędzie:

MongoDB shell version v4.0.4
connecting to: mongodb://127.0.0.1:27017
2018-12-05T20:42:40.108+0530 E QUERY    [js] Error: couldn't connect to server 127.0.0.1:27017, connection attempt failed: SocketException: Error connecting to 127.0.0.1:27017 :: caused by :: No connection could be made because the target machine actively refused it. :
connect@src/mongo/shell/mongo.js:257:13
@(connect):1:6
exception: connect failed

Następnie próbowałem naprawić, używając wszystkich powyższych odpowiedzi, ale nie zadziałało. Kiedy próbowałem uruchomić mongod, powiedział

MongoDB starting : pid=12220 port=27017 dbpath=C:\data\db\ 64-bit host=bla

Próbowałem zmienić ścieżkę db (do plików programu) poprzez system plików, a także za pomocą cmd, ale to nie zadziałało.

Rozwiązanie, które zadziałało dla mnie to:

Otworzyłem Menedżera zadań ( ctrl + shift + esc) -> zakładkę Usługi i pojawił się wiersz MongoDB ze statusem zatrzymany . Następnie kliknąłem prawym przyciskiem myszy i uruchomiłem i wszystko działało idealnie :) .

Blasanka
źródło
6

Jeśli wszystkie powyższe rozwiązania nie działają: przejdź do service ( start>search>services) i uruchom usługę mongodb. Następnie w zachęcie cmd, po przejściu do bin, wpisz:/>mongo

Khalid
źródło
5

Aby połączyć się z mongo, musimy najpierw uruchomić usługi „mongod”. następujące dane wyjściowe, które można zobaczyć:

$ mongod
2017-03-05T00:31:39.055+0530 I CONTROL  [initandlisten] MongoDB starting : pid=1481 port=27017 dbpath=/data/db 64-bit host=Prabhu-Nandans-Mac.local
2017-03-05T00:31:39.056+0530 I CONTROL  [initandlisten] db version v3.4.2
2017-03-05T00:31:39.056+0530 I CONTROL  [initandlisten] git version: 3f76e40c105fc223b3e5aac3e20dcd026b83b38b
2017-03-05T00:31:39.056+0530 I CONTROL  [initandlisten] OpenSSL version: OpenSSL 1.0.2k  26 Jan 2017
2017-03-05T00:31:39.056+0530 I CONTROL  [initandlisten] allocator: system
2017-03-05T00:31:39.056+0530 I CONTROL  [initandlisten] modules: none
2017-03-05T00:31:39.056+0530 I CONTROL  [initandlisten] build environment:
2017-03-05T00:31:39.056+0530 I CONTROL  [initandlisten]     distarch: x86_64
2017-03-05T00:31:39.056+0530 I CONTROL  [initandlisten]     target_arch: x86_64
2017-03-05T00:31:39.056+0530 I CONTROL  [initandlisten] options: {}
2017-03-05T00:31:39.056+0530 W -        [initandlisten] Detected unclean shutdown - /data/db/mongod.lock is not empty.
2017-03-05T00:31:39.057+0530 I -        [initandlisten] Detected data files in /data/db created by the 'wiredTiger' storage engine, so setting the active storage engine to 'wiredTiger'.
2017-03-05T00:31:39.057+0530 W STORAGE  [initandlisten] Recovering data from the last clean checkpoint.
2017-03-05T00:31:39.057+0530 I STORAGE  [initandlisten] wiredtiger_open config: create,cache_size=3584M,session_max=20000,eviction=(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-03-05T00:31:39.620+0530 I CONTROL  [initandlisten] 
2017-03-05T00:31:39.620+0530 I CONTROL  [initandlisten] ** WARNING: Access control is not enabled for the database.
2017-03-05T00:31:39.620+0530 I CONTROL  [initandlisten] **          Read and write access to data and configuration is unrestricted.
2017-03-05T00:31:39.620+0530 I CONTROL  [initandlisten] 
2017-03-05T00:31:39.620+0530 I CONTROL  [initandlisten] 
2017-03-05T00:31:39.620+0530 I CONTROL  [initandlisten] ** WARNING: soft rlimits too low. Number of files is 256, should be at least 1000
2017-03-05T00:31:39.643+0530 I FTDC     [initandlisten] Initializing full-time diagnostic data capture with directory '/data/db/diagnostic.data'
2017-03-05T00:31:39.643+0530 I NETWORK  [thread1] waiting for connections on port 27017
2017-03-05T00:31:40.008+0530 I FTDC     [ftdc] Unclean full-time diagnostic data capture shutdown detected, found interim file, some metrics may have been lost. OK
2017-03-05T00:32:03.832+0530 I NETWORK  [thread1] connection accepted from 127.0.0.1:49806 #1 (1 connection now open)
2017-03-05T00:32:03.833+0530 I NETWORK  [conn1] received client metadata from 127.0.0.1:49806 conn1: { application: { name: "MongoDB Shell" }, driver: { name: "MongoDB Internal Client", version: "3.4.2" }, os: { type: "Darwin", name: "Mac OS X", architecture: "x86_64", version: "16.4.0" } }
2017-03-05T00:32:08.376+0530 I -        [conn1] end connection 127.0.0.1:49806 (1 connection now open)

Następnie otwórz kolejny terminal i po prostu wpisz „mongo”.

Poniżej przedstawiono wyniki, które można zobaczyć:

$ mongo
MongoDB shell version v3.4.2
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.4.2

Twój problem rozwiązany :)

Prabhu Nandan Kumar
źródło
4

Mam też ten sam problem, który został naprawiony przez te dwie linie kodu. Mam nadzieję, że to pomoże

systemctl start mongod
systemctl enable mongod
Bahodir Boydedayev
źródło
Naprawiłem mój problem!
S.M_Emamian
3

Po wielu poszukiwaniach napotykam ten sam problem, rozwiązuję go, wykonując następujące czynności:

sudo service mongodb stop 

sudo rm /var/lib/mongodb/mongod.lock 

sudo mongod --repair --dbpath /var/lib/mongodb 

sudo mongod --fork --logpath /var/lib/mongodb/mongodb.log --dbpath /var/lib/mongodb 

sudo service mongodb start
Rohit Gaidhane
źródło
to zadziałało! ale to jest tymczasowe, kiedy ponownie uruchamiam system, nie uruchamia się ponownie
Predator X
2

Możesz spróbować za pomocą następującego polecenia:

sudo service mongod start

shivam kumar chaturvedi
źródło
2

Działo się to ze mną dzisiaj i rozwiązałem to w następujący sposób.

Maszyna: używam komputera z systemem Windows 10 i pobrałem najnowszą MongoDB - wydanie społeczności.

Więc problem polegał na tym, że nie C:\data\dbstworzyłem.

Bez tworzenia C:\data\dbotworzyłem terminal CMD i uruchomiłem bazę danych za pomocą mongodpolecenia na terminalu

C: \ YourInstallationPath \ bin> mongod

A kiedy zwolniłem mongopolecenie, pojawił się problem.

Twist, utworzyłem niezbędne foldery, ale nadal występował problem. A to dlatego, że serwer mongo już działał. Aby to naprawić, odpaliłemmongod ponownie polecenie i automatycznie odwołałem się do C:\data\db.

Inni użytkownicy zasugerowali dodanie, C:\data\dbale nie rozmawiali o mongodponownym uruchomieniu , co dokładnie rozwiązało mój problem.

Amnesh Goel
źródło
2

Miałem ten sam problem z podłączeniem mongodb po instalacji za pomocą brew na macOS.

Problem polegał również na tym, mongod.lockże zanim zainstalowałem mongodb 3.6 i katalog bazy danych był /usr/local/var/mongodbi ma stare pliki imongod.lock

Po prostu przeniosłem moje stare pliki bazy danych do innego folderu i usunąłem wszystko z /usr/local/var/mongodb

Następnie uruchomiono ponownie:

brew services restart mongodb

I teraz działa dobrze.

Mandeep Gill
źródło
2

w moim przypadku w systemie Windows i Ubuntu musiałem stworzyć /data/db folder w katalogu głównym. W Ubuntu potrzebowałem jednej dodatkowej opcji; nadać uprawnienia do katalogu.

okna

mkdir c:/data/db

ubuntu:

sudo mkdir -p /data/db
sudo chmod 700 /data/db

następnie uruchomić

sudo service mongod start

czek

sudo service mongod status

a potem biegnij

mongo
Віталій Мартиненко
źródło
2

Otrzymałem ten błąd na Ubuntu, ale możesz spróbować za pomocą następującego polecenia:

sudo service mongod start
Rahul
źródło
1

Inne rozwiązanie, które rozwiązało ten sam błąd dla mnie, chociaż może to być tylko wtedy, gdy uzyskujesz dostęp do mongo (lokalnie) za pośrednictwem połączenia SSH za pośrednictwem maszyny wirtualnej (przynajmniej taka jest moja konfiguracja) i może być problemem ze zmienną środowiskową specyficzną dla systemu Linux:

export LC_ALL=C

Ponadto odniosłem większy sukces, uruchamiając mongo jako usługę demona niż z uruchomieniem usługi sudo, rozumiem, że używa to argumentów wiersza poleceń, a nie pliku konfiguracyjnego, więc prawdopodobnie jest to problem z moim plikiem konfiguracyjnym:

mongod --fork --logpath /var/log/mongodb.log --auth --port 27017 --dbpath /var/lib/mongodb/admin
edencorbin
źródło
1

Utwórz folder C: data / db, jeśli jeszcze nie istnieje na komputerze. Okazuje się, że MongoDB wymaga do działania struktury folderów „data / db”. Mam nadzieję, że to komuś pomoże.

Amin Balogun
źródło
1

Przyczyną przeze mnie była przestrzeń - uruchom to w konsoli:

df -h

a dokładniej:

du -hs /var/lib/mongodb/ 

aby sprawdzić użycie dysku. Jeśli jest to ~ 99% - po prostu wyczyść trochę miejsca i spróbuj ponownie!

tsveti_iko
źródło
1

Najpierw przejdź do, c:\mongodb\bin>aby włączyć mongoDB, jeśli widzisz w konsoli, że mongo nasłuchuje na porcie 27017, jest OK Jeśli nie, zamknij konsolę i utwórz folder c:\data\dbi uruchom ponownie mongod

Monte Cristo
źródło
1

jeśli powyższe rozwiązanie nie zadziała, być może to może być pomocne. Gdzieś tam możesz połączyć się z lokalną bazą danych mongodb za pośrednictwem skrzynek włóczęgów.

  1. vagrant up, a następnie ssh do swojej maszyny włóczęgów, w której nawiązałeś połączenie z mongodb (vagrant ssh vagrant_box_name)
  2. zakomentuj linię bind_ip z /etc/mongod.conf używając # (sudo nano /etc/mongod.conf)
  3. zrestartuj usługę demona mongodb (usługa sudo mongod restart) voila ...
Ashwin J Chhetri
źródło
1

Uruchom usługę monogdb przy użyciu

sudo service mongod start 

następnie z nowego okna lub terminala uruchom klienta mongo za pomocą

mongo
MILION GASHAW
źródło
0

Usuń plik mongod.lock. I uruchom "mongod -repair". odinstalowanie / ponowne zainstalowanie usługi mongod rozwiązało ten problem za mnie.

Dzięki.

Kadź
źródło
0

Wreszcie udało mi się to w prosty sposób ...

otwórz terminal i przejdź do lokalizacji mongodb. W moim przypadku tak

e:\mongodb\bin> 

i wpisz następujące polecenie i naciśnij klawisz Enter.

mongod --config e:\mongodb\mongo.config

Otwórz inny terminal i uruchom mongodb za pomocą

mongo.exe

To wszystko… możesz użyć mongo

Santhosh Kumar
źródło
0

To stare pytanie, ale jako początkujący pomyślałem, że dodam, że (używając Webstorm) musisz kliknąć Mongo Explorer (zakładka po prawej stronie okna). Stamtąd:

-Kliknij Ustawienia. -Kliknij przycisk przeglądania (wygląda jak przycisk z napisem „...”). -Przejdź do Program Files> MongoDB> Server> 3.4> bin> mongo.exe (Twoja wersja może być inna niż 3.4) -Po tym kliknij zielony znak plus po prawej stronie. Otworzy się okno -Wprowadź nazwę w polu „Etykieta”. -Kliknij Zastosuj.

Powinieneś być teraz połączony. Wpisanie "mongod" w terminalu nie wystarczy. Musisz również wykonać powyższe kroki.

Z góry przepraszam tych, którzy nie korzystają z Webstorm! Nie jestem pewien co do kroków przy użyciu innych IDE.

David Mitchell
źródło
0

jeśli instalujesz przez brew (na osx), najpierw uruchom sudo mkdir /data/db mondoDB Daemon, wpisując mongod(zostaw otwarte), a następnie uruchom mongo, wpisując mongonową kartę terminala

majid
źródło
0

Po prostu utwórz folder o nazwie „data” na dysku C, a wewnątrz folderu danych utwórz kolejny folder o nazwie „db”. Następnie uruchom mongod.exe :)

Rohan Pawar
źródło
Co sprawia, że ​​myślisz, że pytający ma Windows lub nie udało mu się zainstalować MongoDB?
Nemo