Nie udało się połączyć z 127.0.0.1:27017, przyczyna: errno: 111 Odmowa połączenia

81

podczas próby wykonania tego polecenia mongo w systemie ubuntu otrzymuję ten błąd.

    ritzysystem@ritzysystem-Satellite-L55-A:~$ mongo
    MongoDB shell version: 2.6.1
    connecting to: test
    2014-10-06T12:59:35.802+0530 warning: Failed to connect to 127.0.0.1:27017, reason: errno:111 Connection refused
    2014-10-06T12:59:35.802+0530 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

jak mogę to naprawić to ktoś miał ten sam problem.

Ashish Ranjan
źródło
6
mongodserwer nie działa, włącz go, wpisując mongodna terminalu.
Ravi
2
Twój mongod nie działa na 127.0.0.1 Czy możesz spróbować na przykład "mongo --host localhost"
Lalit Agarwal
1
dziękuję wszystkim Próbowałem uruchomić mongo to nie działało w końcu stwierdziłem, że nie ma miejsca na dysku twardym opróżniłem trochę miejsca i na koniec ponownie zainstalowałem tę samą procedurę instalacyjną, jak podano w dokumentacji mongodb wreszcie zrestartowałem serwer i działa. docs.mongodb.org/manual/tutorial/install-mongodb-on-ubuntu
Ashish Ranjan
4
możesz odpowiedzieć na własne pytanie (zamiast zamieścić komentarz). Rozwiązanie byłoby bardziej widoczne i pomoże innym
mihai

Odpowiedzi:

98

Uruchom następujące polecenie:

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

Odmowa połączenia z MongoDB errno 111

System operacyjny Mac:

rm /usr/local/var/mongodb/mongod.lock  
sudo service mongod restart
Jagdish Barabari
źródło
na Ubuntu: mongod zamiast mongodb
Blacksonic
6
Po uruchomieniu usługi sudo mongod uruchom ponownie na Ubuntu:Job for mongod.service failed. See "systemctl status mongod.service" and "journalctl -xe" for details.
Flavio Wuensche,
4
nie ma mongodbw/var/lib/
RegarBoy
1
biegnij mongodzamiast tego
Iman Mohamadi
Działa idealnie na Ubuntu Server 16.04.1 LTS
Cami Rodriguez,
29

Miałem ten sam problem w systemie Mac OS. Spróbuj uruchomić sudo mongod i na nowej karcie terminala uruchom mongo

Levon
źródło
Z mongosudo też musiałem biec
Tomasz Mularczyk
22

dziękuję wszystkim Próbowałem uruchomić mongo to nie działało w końcu stwierdziłem, że nie ma miejsca na moim dysku twardym opróżniłem trochę miejsca i na koniec zainstalowałem ponownie tą samą procedurę instalacji, jak podano w dokumentacji mongodb w końcu zrestartowałem serwer i działa.

https://docs.mongodb.org/manual/tutorial/install-mongodb-on-ubuntu

Ashish Ranjan
źródło
Nie wiem, dlaczego zostałeś ponownie zainstalowany. Myślę, że wystarczy zwolnić trochę miejsca, usuwając niechciane pliki, a następnie możesz chcieć ponownie uruchomić usługę mongod, ponieważ usługa mongod może zostać zabita z powodu braku miejsca. czy jest jakiś konkretny powód do ponownej instalacji ?.
Siva S,
18

W moim przypadku błąd był spowodowany brakiem folderu / data / db, którego mongodb używa do przechowywania danych. Wpisz to polecenie $sudo mongod w swoim terminalu. Jeśli komunikat o błędzie jest podobny do:

missing data/db folder error

Po prostu utwórz folder i gotowe.

Sourav Prem
źródło
Dziwne, że nie jest tworzony automatycznie.
basickarl
utwórz directroy data / db w folderze głównym, teraz działa dobrze.
vidur punj
Uwaga: nie zapomnij również przyznać uprawnień do folderu. mkdir /data/dbpotemchmod 777 /data/db
AndreFeijo
11

Najpierw uruchom MongoDB:

sudo service mongod start

Następnie uruchom:

mongo
Akash Adhikari
źródło
9

Prawdopodobnie nie masz miejsca na dysku twardym. Sprawdź to, wpisując promt df -h

Należy pamiętać, że mongo może zawieść, nawet jeśli na odpowiedniej partycji jest dostępne 3 GB. Aby uzyskać szczegółowe informacje, możesz sprawdzić dziennik:cat /var/log/mongodb/mongod.log

Pablo Tapia
źródło
„mongodb.log” zawiera literówkę i jest zapisywane jako „mongod.log”. Próbowałem edytować, ale przepełnienie stosu powiedział mi, że muszę edytować co najmniej 6 znaków. Zły pomysł imo SO.
Robert Bracco
8

Miałem ten sam problem na swoim Macu i zainstalowałem mongodb przez homebrew. Rozwiązuję ten problem poleceniem usług homebrew .

Pierwsze uruchomienie usługi mongodb:

$ brew services start mongodb

Uruchom terminal mongodb

$ mongo

Zatrzymaj usługę Mongodb:

$ brew services stop mongodb

Yingbo Cui
źródło
7

Upewnij się, że uruchomiłeś usługę MongoDB, zanim zechcesz podłączyć konsolę.

uruchom i uruchom serwer:

$ sudo mongod

następnie:

$ mongo
...
>
GuoX
źródło
5

Zrób to:

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

Jeśli korzystasz z Ubuntu 16.04, które możesz sprawdzić, uruchamiając runnign:

lsb_release -a

Musisz utworzyć nowy plik /lib/systemd/system/mongod.serviceo następującej zawartości:

[Unit]
Description=High-performance, schema-free document-oriented database
After=network.target
Documentation=https://docs.mongodb.org/manual

[Service]
User=mongodb
Group=mongodb
ExecStart=/usr/bin/mongod --quiet --config /etc/mongod.conf

[Install]
WantedBy=multi-user.target
Iman Mohamadi
źródło
4

W moim przypadku problem był spowodowany pozorną utratą uprawnień do pliku mongodb.lock. Mogłem rozwiązać problem zmieniając uprawnienia za pomocą następującego polecenia:

sudo chown mongodb:mongodb /var/lib/mongodb/mongodb.lock

Oto moje dochodzenie: weryfikacja krok po kroku

pablo.vix
źródło
4

Myślę, że oprócz issuse miejsca na dysku, powinieneś sprawdzić logowanie, /var/log/mongodbaby poznać szczegóły, dlaczego uruchomienie mongodb nie powiodło się.

cat /var/log/mongodb/mongod.log

2016-06-26T15:26:26.642+0800 I CONTROL  [main] ***** SERVER RESTARTED *****
2016-06-26T15:26:26.649+0800 I CONTROL  [initandlisten] MongoDB starting : pid=8130 port=27017 dbpath=/var/lib/mongodb 64-bit host=hadoop-master
2016-06-26T15:26:26.649+0800 I CONTROL  [initandlisten] db version v3.2.7
2016-06-26T15:26:26.649+0800 I CONTROL  [initandlisten] git version: 4249c1d2b5999ebbf1fdf3bc0e0e3b3ff5c0aaf2
2016-06-26T15:26:26.649+0800 I CONTROL  [initandlisten] OpenSSL version: OpenSSL 1.0.1f 6 Jan 2014
2016-06-26T15:26:26.649+0800 I CONTROL  [initandlisten] allocator: tcmalloc
2016-06-26T15:26:26.649+0800 I CONTROL  [initandlisten] modules: none
2016-06-26T15:26:26.649+0800 I CONTROL  [initandlisten] build environment:
2016-06-26T15:26:26.649+0800 I CONTROL  [initandlisten]     distmod: ubuntu1404
2016-06-26T15:26:26.649+0800 I CONTROL  [initandlisten]     distarch: x86_64
2016-06-26T15:26:26.649+0800 I CONTROL  [initandlisten]     target_arch: x86_64
2016-06-26T15:26:26.649+0800 I CONTROL  [initandlisten] options: { config: "/etc/mongod.conf", net: { bindIp: "127.0.0.1,192.168.3.10", port: 27017 }, storage: { dbPath: "/var/lib/mongodb", journal: { enabled: true } }, systemLog: { destination: "file", logAppend: true, path: "/var/log/mongodb/mongod.log" } }
2016-06-26T15:26:26.678+0800 E NETWORK  [initandlisten] Failed to unlink socket file /tmp/mongodb-27017.sock errno:1 Operation not permitted
2016-06-26T15:26:26.678+0800 I -        [initandlisten] Fatal Assertion 28578
2016-06-26T15:26:26.678+0800 I -        [initandlisten] 

***aborting after fassert() failure

Więc tutaj muszę rmować wszystkie pliki w /tmp. Dla mnie to działa dobrze.

Idąc moją drogą
źródło
3

Rozumiem, że pytanie dotyczy Ubuntu.

Ale jeśli otrzymujesz ten sam błąd na komputerze Mac i nie chcesz $ sudo mongoduruchamiać na osobnej karcie, możesz wykonać następujące czynności, aby naprawić błąd połączenia, jeśli masz Homebrew -

brew services start mongodb

Na podstawie odpowiedzi z tego wątku - Nie można połączyć się z mongodb errno: 61 Odmowa połączenia

Aswin Ramakrishnan
źródło
3

W moim przypadku nie było bind_ip 127.0.0.1 w /etc/mongodb.conf pliku więc zmiana bind_ip do 127.0.0.1 (może to być oddzielone przecinkami wartości więc upewnij się, że 127.0.0.1 jest jednym z nich) Następnie uruchom ponownie system, aby odniosły skutek. Uruchom ponownie tylko dla tych, którzy stoją w obliczu

$sudo service mongod restart
Failed to restart mongod.service: Unit mongod.service not found.
Mr Code.
źródło
3

Mongo 3.6.3 + (lub wersje 2019)

rm /var/lib/mongodb/mongod.lock
service mongodb restart
penta
źródło
1

jest bardzo prosta, wystarczy usunąć plik /var/lib/mongodb/mongodb.lock. po tylko wykonać: mongo. skończone

Felipe Sousa
źródło
1

Możliwe, że katalog danych dla mongo określony w /etc/mongod.confnie jest poprawną ścieżką.

Spróbuj ponownie sudo vi /etc/mongod.confsprawdzić ścieżkę, jeśli naprawdę istnieje, i sprawdź dbPath.

Rohith Yeravothula
źródło
1

Mam z tobą ten sam błąd, to moja sprawa:

~# mongod
2018-07-15T05:27:08.265+0000 I JOURNAL  [initandlisten] journal dir=/data/db/journal
2018-07-15T05:27:08.265+0000 I JOURNAL  [initandlisten] recover : no journal files present, no recovery needed
2018-07-15T05:27:08.301+0000 I JOURNAL  [durability] Durability thread started
2018-07-15T05:27:08.301+0000 I JOURNAL  [journal writer] Journal writer thread started
2018-07-15T05:27:08.302+0000 I CONTROL  [initandlisten] MongoDB starting : pid=26796 port=27017 dbpath=/data/db 64-bit host=ubuntu-s-2vcpu-4gb-sfo2-01
2018-07-15T05:27:08.302+0000 I CONTROL  [initandlisten] ** WARNING: You are running this process as the root user, which is not recommended.
2018-07-15T05:27:08.302+0000 I CONTROL  [initandlisten] 
2018-07-15T05:27:08.302+0000 I CONTROL  [initandlisten] 
2018-07-15T05:27:08.302+0000 I CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.
2018-07-15T05:27:08.302+0000 I CONTROL  [initandlisten] **        We suggest setting it to 'never'
2018-07-15T05:27:08.302+0000 I CONTROL  [initandlisten] 
2018-07-15T05:27:08.302+0000 I CONTROL  [initandlisten] db version v3.0.6
2018-07-15T05:27:08.302+0000 I CONTROL  [initandlisten] git version: 1ef45a23a4c5e3480ac919b28afcba3c615488f2
2018-07-15T05:27:08.302+0000 I CONTROL  [initandlisten] build info: Linux build6.ny.cbi.10gen.cc 2.6.32-431.3.1.el6.x86_64 #1 SMP Fri Jan 3 21:39:27 UTC 2014 x86_64 BOOST_LIB_VERSION=1_49
2018-07-15T05:27:08.302+0000 I CONTROL  [initandlisten] allocator: tcmalloc
2018-07-15T05:27:08.302+0000 I CONTROL  [initandlisten] options: {}
2018-07-15T05:27:08.308+0000 I NETWORK  [initandlisten] waiting for connections on port 27017

Wpisuję mongod, aby uruchomić serwer, i wpisuję control+c aby wyjść do powłoki

potem piszę mongoi mam

~# mongo
MongoDB shell version: 3.0.6
connecting to: test
2018-07-15T05:05:02.738+0000 W NETWORK  Failed to connect to 127.0.0.1:27017, reason: errno:111 Connection refused
2018-07-15T05:05:02.739+0000 E QUERY    Error: couldn't connect to server 127.0.0.1:27017 (127.0.0.1), connection attempt failed
    at connect (src/mongo/shell/mongo.js:179:14)
    at (connect):1:6 at src/mongo/shell/mongo.js:179

Jak widać, moje informacje o błędzie są takie same jak ty.

Jest to przypadek, w którym mongod nie uruchamia się z procesem zaplecza, kiedy wpisuję control+ c, wychodzę z mongod.

Możemy dodać argumenty --fork, aby uczynić proces demona procesem.

#  mongod --logpath /usr/local/mongodb/log.txt --fork

musisz ustawić --logpath, jeśli chcesz używać --fork

wtedy uda ci się połączyć z mongo

bitfishxyz
źródło
1

Wykonaj te proste kroki; (Działa również na MAC OS)

  1. Otwórz terminal i uruchom sudo mongod

  2. Otwórz nową kartę terminala (nie zamykaj karty kroku 1) i uruchom sudo mongo

To wszystko

Victor Ifeanyi Ejiogu
źródło
0

Mongo 3. *. * - OSX - 2017

Z README

RUNNING

Zmień katalog na mongodb-osx-x86_64-3. *. * / Bin

Aby uruchomić bazę danych na jednym serwerze:

$ mkdir /data/db
$ ./mongod

Przejdź do nowego terminala

$ # The mongo javascript shell connects to localhost and test database 
$ # by default -Run the following command in new terminal
$ ./mongo 
> help
Mina Gabriel
źródło
Dlaczego downvoting? tak powinieneś to zrobić ?? !!
Mina Gabriel
0

Rozwiązałem to po prostu wpisując sudo mongopo mongodkomendzie.

Pavle
źródło
0

Tylko kilka przemyśleń na temat mojej sprawy.

Jeśli zmieniłeś katalogi dbPath i logPath na swoje wartości niestandardowe (powiedzmy / data / mongodb / data, / data / mongodb / log), musisz zmienić je na użytkownika mongodb, w przeciwnym razie nieistniejący / data / db / dir będzie użyty.

sudo chown -R mongodb:mongodb /data/mongodb/

sudo service mongod restart
Aram Paronikyan
źródło
0

W najnowszej wersji bazy danych MongoDB 3.6.5 + wprowadzono zmiany w pliku mongod.conf

Oto, jak rozwiązałem ten problem w systemie Mac OS High Sierra w wersji 10.12.3

Uwaga: Zakładam, że zainstalowałeś / zaktualizowałeś MongoDB za pomocą homebrew

mongo - wersja

MongoDB shell version v3.6.5 
git version: a20ecd3e3a174162052ff99913bc2ca9a839d618 
OpenSSL version: OpenSSL 1.0.2o  27 Mar 2018 
allocator: system modules: none build environment:
distarch: x86_64
target_arch: x86_64
  1. znajdź plik mongod.conf

     sudo find / -name mongod.conf` 
    

    /usr/local/etc/mongod.conf> pierwszy wynik.

  2. otwórz plik mongod.conf

    sudo vi /usr/local/etc/mongod.conf
    
  3. edytuj w pliku do zdalnego dostępu w sekcji net :.

     port: 27017  
     bindIpAll: true 
     #bindIp: 127.0.0.1 // comment this out
    
  4. zrestartuj mongodb

    jeśli zainstalowałeś przy użyciu naparu niż

    brew services stop mongodb
    
    brew services start mongodb
    

w przeciwnym razie zakończ proces.

   sudo kill -9 <procssID>
diEcho
źródło
1
Do osób czytających tę odpowiedź: OSTROŻNIE! O ile się nie mylę, wykomentowanie bindIpujawni twoje bazy danych w otwartym Internecie, chyba że masz włączoną autoryzację (nie jest włączona domyślnie).
0

Problem dotyczył połączenia z bazą danych, może to być spowodowane kilkoma przyczynami. Dla mnie było to mało miejsca na moim serwerze, a kiedy mongo próbuje się połączyć, odmawia z powodu niskiego poziomu dysku, sprawdź lokalną pamięć serwera, du -shjeśli masz mało miejsca, sprawdź rozmiar dzienników i podejmij odpowiednie kroki, problem może istnieją z powodu sprzeczności dbpath /etc/mongod.confi serwera, z którym faktycznie działa dbpath. mongod Jeśli napotkasz tego typu problem, sprawdź moją odpowiedź w podanym linku poniżej. https://stackoverflow.com/a/53057695/8247133

Touseef Murtaza
źródło
0

Napotkałem ten sam problem, więc sprawdź, czy istnieje folder mongodb, najpierw spróbuj usunąć ten folder

rm -rf /var/lib/mongodb/*

Teraz spróbuj uruchomić mongo i jeśli ten sam problem, to jego plik blokady mongodb, który uniemożliwia uruchomienie mongo, więc usuń plik blokady mongo

rm /var/lib/mongodb/mongod.lock

Na siłę rm -rf /var/lib/mongodb/mongod.lock

service mongodb restart, jeśli jest już w trybie sudo, w przeciwnym razie musisz użyć like sudo service mongod start

lub możesz uruchomić serwer metodą fork

mongod --fork --config /etc/mongod.conf

a do obejrzenia tego samego, czy jest rozwidlony, sprawdź za pomocą poniższego polecenia

ps aux | grep mongo
VIKAS KOHLI
źródło
0

Dla osób z systemem Windows. Miałem ten sam problem w systemie Windows. Ponowne uruchomienie usługi Mongodb rozwiązuje ten problem.

Oto kroki, aby ponownie uruchomić w systemie Windows:

ja). Przejdź do „Usług” w systemie Windows.

ii). Wyszukaj „MongoDB” na liście usług.

iii). Kliknij prawym przyciskiem myszy "start" / "restart" w zależności od twojego statusu.

iv). Gdy stan zmieni się na „działa”, sprawdź, czy problem został rozwiązany, uruchamiając „Mongo” lub łącząc klienta Mongo.

varad11
źródło
0

Dla macOSwielu z tych odpowiedzi są już nieaktualne według oficjalnych docs . Jakoś to brewsię zmieniło i jak powinniśmy zainstalować MongoDB, najpierw odinstaluj go z twojego macOS(nawet jeśli może to nie być konieczne), a następnie zainstaluj, wykonując następujące kroki:

  1. brew tap mongodb/brew
  2. brew install [email protected]
  3. brew services start [email protected]

Uważaj na tę 4.4część, to się zmieni. Jeśli w przyszłości się zepsuje, zapoznaj się z oficjalną dokumentacją i zainstaluj wersję, która jest sugerowana w połączonym samouczku.

Daniel Danielecki
źródło