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

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?

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

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/


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ć


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


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

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.


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"


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 :) .


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


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 :)


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

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

to zadziałało! ale to jest tymczasowe, kiedy ponownie uruchamiam system, nie uruchamia się ponownie
Predator X


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.


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.


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

2

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

sudo service mongod start

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

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.


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!


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


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 ...

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

0

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

Dzięki.



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


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.


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


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 :)


Co sprawia, że ​​myślisz, że pytający ma Windows lub nie udało mu się zainstalować MongoDB?
Nemo
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.