Es kann keine Verbindung zu mongodb hergestellt werden errno: 61 Verbindung abgelehnt


91

Ich habe kürzlich mongodb-2.6.0 mit Homebrew installiert . Nach erfolgreicher Installation habe ich versucht, eine Verbindung mit dem mongoBefehl herzustellen. Ich erhalte die folgenden Fehler, bei denen ich keine Verbindung herstellen kann:

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

1
Sind Sie sicher, dass der Mongod-Dienst überhaupt ausgeführt wird? Welche Konfigurationsoptionen haben Sie in Ihrer conf-Datei?
Ffflabs

Haben Sie sudo apt-get zur Installation verwendet? Ich habe über Leute gelesen, bei denen Probleme damit auftreten. Versuchen Sie stattdessen , sie zu entfernen und über die MongoDB- Site herunterzuladen .
Hassan

Ich habe mit Homebrew installiert. In den Anweisungen auf der offiziellen Website wurde nicht angegeben, dass ich eine .config-Datei einrichten muss. Ich habe es einfach heruntergeladen und den Befehl 'mongoose' ausgeführt, der zu den oben genannten Fehlern führte.
Michael

Überprüfen Sie Ihre Protokolle, in der Regel in, /var/logs/mongodbwenn ich mich richtig erinnere.
AlbertEngelB

Ich habe über den Download neu installiert und die Datei entpackt. Ich verwende "Mongo" und erhalte immer noch die gleichen Fehler.
Michael

Antworten:


277

Dies kann passieren, wenn der Mongodb-Dienst nicht auf dem Mac ausgeführt wird. Um es zu starten, habe ich es versucht

brew services start mongodb

und es hat funktioniert.

Bearbeiten: Laut der Diskussion über diese PR auf Homebrew: https://github.com/Homebrew/homebrew/issues/30628

brew servicesist veraltet, ich habe mich auf SO umgesehen und festgestellt, dass diese Antworten jetzt die Frage beantworten: Was ist der richtige Weg, um einen Mongod-Dienst unter Linux / OS X zu starten?


8
Ich
erhalte

7
'Brew Services' wird nicht mehr unterstützt: github.com/Homebrew/homebrew/issues/32006
Vitaly

7
Ich habe Sudo Mongod anstelle von Mongo ausprobiert und es fing an! Um auf die Mongo-Shell zuzugreifen, habe ich ein neues Shell-Fenster geöffnet und Mongo geschrieben und es hat funktioniert !! Sie können vollständige Fehlerverfolgung mit Lösung auf diesem Blog finden
Ali Raza Bhayani

1
Die Brühdienste werden in meinem Mac OS X Yosemite nicht mehr unterstützt. sudo mongodstartete den Mongodb und dann funktionierte der Mongo-Befehl. Danke @Ali Raza Bhayani.
Psun

2
Danke für diese Lösung !! Der Befehl "Brew Service" funktionierte für mich in meinem Mac OS X Sierra.
Jcc.Sanabria

32

Ich habe genau das gleiche Problem festgestellt und hier ist ein klarer Schritt-für-Schritt-Prozess, um diesen Fehler zu vermeiden.

Schritt 1 - Installation (Befolgen Sie diesen Schritt nicht, wenn Sie MongoDB bereits installiert haben):

brew update
brew install mongodb

Schritt 2 - Führen Sie Mongo Daemon aus:

mkdir -p /data/db
sudo mongod

Schritt 3 - Führen Sie die Mongo Shell-Schnittstelle aus:

mongo

In dieser Reihenfolge konnte ich den mongoBefehl fehlerfrei ausführen . Ich habe auch die Fehlerverfolgung und ihre Lösung in diesem Blog detailliert beschrieben .


1
Dies wird auch auf der offiziellen MongoDB-Seite erwähnt: docs.mongodb.org/v2.2/tutorial/install-mongodb-on-os-x/…
Paulo Oliveira

das hat bei mir einmal funktioniert ... aber dann ist es umgefallen
danwild

Dies ist ein guter Weg, um die Schlacht zu gewinnen und den Krieg zu verlieren. Führen Sie keine Dienste als Root aus.
Miles Erickson

22

Um Ihr Problem zu lösen, müssen Sie die Anweisungen befolgen, die Sie dann von Brew erhalten, nachdem Sie "Brew Install Mongodb" verwendet haben.

So starten Sie mongodb beim Login:

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

Dann mongodb jetzt laden:

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

Wenn Sie launchctl nicht möchten / benötigen, können Sie einfach Folgendes ausführen:

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

Möglicherweise können Sie nur diesen letzten Befehl ausführen, aber er hat bei mir nicht funktioniert, und ich musste den zweiten Befehl ausführen. Um mich in Zukunft zu retten. Ich habe gerade auch den ersten Befehl ausgeführt. Hoffentlich hilft das!

EDIT Hrishis Verwendungsmethode brew services mongodb starthat mir gut getan. Ich denke, sie sollten dies in die Mongo-Dokumente aufnehmen.


Ich habe den letzten Befehl verwendet und localhost / 27017 in meinem Browser besucht. Auf dem Bildschirm stand: "Es sieht so aus, als würden Sie versuchen, über den nativen Treiberport über HTTP auf MongoDB zuzugreifen." Das scheint nicht richtig zu sein ...
Michael

Mongo läuft jetzt aber richtig? Wie in können Sie Mongo in Shell eingeben und Sie erhalten nicht mehr die Verbindung verweigert Nachricht? Sie werden nicht über den Browser auf Mongo zugreifen, sondern möchten über die CLI damit arbeiten.
jh3y

Nein, kein Befehl in der Shell wird ausgeführt, nachdem ich 'mongod --config /usr/local/etc/mongod.conf' eingegeben habe. Es ist einfach eine leere Eingabeaufforderung. Ich habe ohne Homebrew erneut blockiert und die Zip-Datei von der Website heruntergeladen, die ausführbaren Dateien nach / usr / local / bin verschoben, aber jetzt erhalte ich immer noch die gleichen Fehlermeldungen.
Michael

Ja, der letzte Befehl hing auch nur für mich. Ich würde nur die ersten beiden laufen lassen und du solltest gut sein. Wenn es hängt, schlagen Sie einfach ctrl + cund versuchen Sie es mongodanach.
jh3y

Hmm ... Es funktioniert immer noch nicht. Ich werde in den mongoDB-Foren posten. Danke für die Hilfe.
Michael

16

In einer anderen Registerkarte können Sie die Mongo-Shell mit starten

Mongod

Kehren Sie dann zur vorherigen Registerkarte zurück und versuchen Sie es erneut. Wenn Sie Probleme beim Einrichten Ihrer Mongoshell haben, überprüfen Sie diesen Link in der Mongo-Shell: http://docs.mongodb.org/manual/tutorial/manage-mongodb-processes/ oder diesen Link bei der Installation von Mongodb: http: / /docs.mongodb.org/manual/tutorial/install-mongodb-on-os-x/


Das hat es für mich getan. Ich habe es völlig übersehen, den Dienst mongod zu starten, bevor ich versuchte, mongo auszuführen. Vielen Dank!
Matt Welander

7

Ich hatte das gleiche Problem, als ich über mongoddie Befehlszeile anrief .

Ich habe das gelöst, indem ich stattdessen angerufen habe sudo mongod.


Führen Sie keine Dienste als Root aus.
Miles Erickson

4

Ich hatte den gleichen Fehler, aber eine andere Grundursache. Ich dachte, ich würde die Lösung hier posten, falls jemand anderes auf das Problem stößt. Ich habe diesen Fehler erhalten, nachdem mein Mac während des Betriebs nicht ordnungsgemäß heruntergefahren wurde mongorestore -d foo dump/foo/.

tl; dr : Ich reparierte das Problem , indem die beschädigte Entfernen foo.nsDatei zusammen mit foo.0, foo.1, ... aus meinen Datenordnern /usr/local/var/mongodb/. Dann habe ich den Mongo Server mit neu gestartet brew services restart mongodbund war wieder normal.

Details : Ich habe den Fehler auch nach dem Versuch, den Mongodb-Dienst über Brew oder Launchctl zu starten oder neu zu starten, immer wieder erhalten. Schließlich lief ich mongod --dbpath /usr/local/var/mongodb und sah, dass der Dienst nicht tatsächlich gestartet wurde, und die Startsequenz enthielt den folgenden Fehler: [initandlisten] bad .ns file: /usr/local/var/mongodb/foo.ns [initandlisten] User Assertion: 10079:bad .ns file length, cannot open database Ich habe die fehlerhafte .nsDatei und den Rest der Datendateien entfernt, und als ich den Dienst das nächste Mal startete, konnte ich loslegen .


1
Ich bedaure nur, dass ich nur eine Gegenstimme abgeben kann: Alle anderen Antworten ignorieren die Tatsache, dass die Standard-Braukonfigurationen dbs in / usr / local / var / mongodb setzen!
PremiumFrye

1
Annnddd Mongo ist gerade wieder abgestürzt, also musste ich diesen Prozess jetzt noch einmal durchlaufen. Gut, dass ich Ihre Antwort positiv bewertet habe, damit ich sie wiederfinden kann: D
premiumFrye

3

Für mich auf OSX musste ich die alte laufende Instanz beenden, dann funktionierte der Neustart.

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

1

Ich habe diesen Fehler erhalten, nachdem ich mit Homebrew auf Mongo 3.6 aktualisiert habe.

Das Protokoll /usr/local/var/log/mongodb/mongo.logenthielt die Nachricht shutting down with code:62. Dieser Fehlercode bedeutet, dass die vorhandene Datenbank zu alt ist, um mit der aktuellen Version von mongo ausgeführt zu werden.

Ich habe 2 Lösungen in einer anderen SO-Frage gefunden :

  • Löschen Sie Ihren Datenbankordner ( /usr/local/var/mongodb)
  • Oder folgen Sie dem Upgrade-Verfahren

Ich habe mich für ein Upgrade entschieden. In meinem Fall bedeutete dies, dass ich ein Downgrade auf 3.4 durchführen, einen Befehl in der Mongo-Konsole ausführen und dann erneut ein Upgrade durchführen musste. Bei Mongo müssen Sie jeweils eine Hauptversion aktualisieren. Je nachdem, wie weit Sie zurückliegen, können zusätzliche Schritte erforderlich sein. Die Dokumente werden Sie führen.

Die Befehle brew switch* und brew services restartmachten das Wechseln zwischen Versionen relativ schmerzlos.



0

Wenn Sie MongoDB bereits installiert haben, versuchen Sie zuerst, mongod als sudo-Benutzer auszuführen. Ich hatte das Problem, weil mongod nicht als Superuser ausgeführt wurde.

Ich habe das O / P für beide Befehle ( Mongod und Sudo Mongod ) ganz unten eingefügt , das können Sie aber auch überprüfen

Versuchen Sie dies zuerst

sudo mongod

nicht das

mongod

Ich hatte MongoDB auf meinem MAC OS X Sierra 10.12.6 installiert, indem ich den folgenden Befehl nacheinander ausgeführt habe.

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

Anschließend wurde ein Verzeichnis erstellt, in das der Mongod-Prozess die Daten schreibt. Dies ist optional, da der Mongod-Prozess dies standardmäßig übernimmt. Weitere Informationen finden Sie in diesem nützlichen Handbuch unter https://docs.mongodb.com/manual/tutorial/install-mongodb-on-os -x /

sudo mkdir -p /data/db

Schließlich begann der Mongod- Prozess wie folgt

sudo mongod

Ausgabe von mongod (fehlgeschlagen) und sudo mongod (erfolgreich) auf meinem Terminal.

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

Dann habe ich ein neues Terminal geöffnet, um die MongoDB abzufragen . Es hat funktioniert.

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
>

Das ist es.


0

Ich hatte das gleiche Problem und als ich in die Protokolldatei schaute, sah ich Folgendes:

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

/usr/local/var/mongodb Also habe ich das Verzeichnis erstellt, in dem der Befehl "Brew Services Restart Mongodb" ausgegeben wurde. Ich konnte die Mongo-Konsole öffnen.


-1

Ich vermute, dass Sie keine laufende Datenbank haben, während Sie versuchen, über den Befehl "mongo" auf Tests zuzugreifen.

Führen Sie diesen Befehl zuerst im Terminal aus:

mongod 

Öffnen Sie dann ein anderes Terminalfenster und führen Sie Folgendes aus:

Mongo

Alles sollte jetzt funktionieren.


-1

Mein ähnlicher Fehler wird behoben, indem die Datei "sudo rm /data/db/mongod.lock" gelöscht wird, während versucht wird, mongod auszuführen. Jetzt kannst du Mongod und dann Mongo laufen lassen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.