wake-up-neo.net

Es konnte keine Verbindung zum Server 127.0.0.1:27017 hergestellt werden

Ich erhalte folgende Fehlermeldung:

[email protected]:/$ mongo
MongoDB Shell version: 2.2.0
connecting to: test
Thu Oct 11 11:46:53 Error: couldn't connect to server 127.0.0.1:27017 src/mongo/Shell/mongo.js:91
exception: connect failed
[email protected]:/$ 

Folgendes passiert, wenn ich versuche, mongodb zu starten:

* Starting database mongodb                                             [fail]

Ich habe bereits mongo --repair ausprobiert

Ich habe chown und chmod zu var, lib und data/db und log mongodb gemacht.

Nicht sicher, was Sie sonst noch tun sollen. Irgendwelche Vorschläge?

mongodb.log:

***** SERVER RESTARTED *****


Thu Oct 11 08:29:40 
Thu Oct 11 08:29:40 warning: 32-bit servers don't have journaling enabled by default. Please use --journal if you want durability.
Thu Oct 11 08:29:40 
Thu Oct 11 08:29:41 [initandlisten] MongoDB starting : pid=1052 port=27017 dbpath=/var/lib/mongodb 32-bit Host=alex-K43U
Thu Oct 11 08:29:41 [initandlisten] 
Thu Oct 11 08:29:41 [initandlisten] ** NOTE: when using MongoDB 32 bit, you are limited to about 2 gigabytes of data
Thu Oct 11 08:29:41 [initandlisten] **       see http://blog.mongodb.org/post/137788967/32-bit-limitations
Thu Oct 11 08:29:41 [initandlisten] **       with --journal, the limit is lower
Thu Oct 11 08:29:41 [initandlisten] 
Thu Oct 11 08:29:41 [initandlisten] db version v2.2.0, pdfile version 4.5
Thu Oct 11 08:29:41 [initandlisten] git version: f5e83eae9cfbec7fb7a071321928f00d1b0c5207
Thu Oct 11 08:29:41 [initandlisten] build info: Linux domU-12-31-39-01-70-B4 2.6.21.7-2.fc8xen #1 SMP Fri Feb 15 12:39:36 EST 2008 i686 BOOST_LIB_VERSION=1_49
Thu Oct 11 08:29:41 [initandlisten] options: { config: "/etc/mongodb.conf", dbpath: "/var/lib/mongodb", logappend: "true", logpath: "/var/log/mongodb/mongodb.log" }
Thu Oct 11 08:29:41 [initandlisten] Unable to check for journal files due to: boost::filesystem::basic_directory_iterator constructor: No such file or directory: "/var/lib/mongodb/journal"
************** 
Unclean shutdown detected.
Please visit http://dochub.mongodb.org/core/repair for recovery instructions.
*************
Thu Oct 11 08:29:41 [initandlisten] exception in initAndListen: 12596 old lock file, terminating
Thu Oct 11 08:29:41 dbexit: 
Thu Oct 11 08:29:41 [initandlisten] shutdown: going to close listening sockets...
Thu Oct 11 08:29:41 [initandlisten] shutdown: going to flush diaglog...
Thu Oct 11 08:29:41 [initandlisten] shutdown: going to close sockets...
Thu Oct 11 08:29:41 [initandlisten] shutdown: waiting for fs preallocator...
Thu Oct 11 08:29:41 [initandlisten] shutdown: closing all files...
Thu Oct 11 08:29:41 [initandlisten] closeAllFiles() finished
Thu Oct 11 08:29:41 dbexit: really exiting now

BEARBEITEN:

Ich entfernte die Sperre und habe dann den Mongod repariert und diesen Fehler erhalten:

Thu Oct 11 12:05:37 [initandlisten] exception in initAndListen: 10309 Unable to create/open lock file: /data/db/mongod.lock errno:13 Permission denied Is a mongod instance already running?, terminating

also habe ich es mit Sudo gemacht:

[email protected]:~$ Sudo mongod --repair
Thu Oct 11 12:05:42 
Thu Oct 11 12:05:42 warning: 32-bit servers don't have journaling enabled by default. Please use --journal if you want durability.
Thu Oct 11 12:05:42 
Thu Oct 11 12:05:42 [initandlisten] MongoDB starting : pid=5129 port=27017 dbpath=/data/db/ 32-bit Host=alex-K43U
Thu Oct 11 12:05:42 [initandlisten] 
Thu Oct 11 12:05:42 [initandlisten] ** NOTE: when using MongoDB 32 bit, you are limited to about 2 gigabytes of data
Thu Oct 11 12:05:42 [initandlisten] **       see http://blog.mongodb.org/post/137788967/32-bit-limitations
Thu Oct 11 12:05:42 [initandlisten] **       with --journal, the limit is lower
Thu Oct 11 12:05:42 [initandlisten] 
Thu Oct 11 12:05:42 [initandlisten] db version v2.2.0, pdfile version 4.5
Thu Oct 11 12:05:42 [initandlisten] git version: f5e83eae9cfbec7fb7a071321928f00d1b0c5207
Thu Oct 11 12:05:42 [initandlisten] build info: Linux domU-12-31-39-01-70-B4 2.6.21.7-2.fc8xen #1 SMP Fri Feb 15 12:39:36 EST 2008 i686 BOOST_LIB_VERSION=1_49
Thu Oct 11 12:05:42 [initandlisten] options: { repair: true }
Thu Oct 11 12:05:42 [initandlisten] Unable to check for journal files due to: boost::filesystem::basic_directory_iterator constructor: No such file or directory: "/data/db/journal"
Thu Oct 11 12:05:42 [initandlisten] finished checking dbs
Thu Oct 11 12:05:42 dbexit: 
Thu Oct 11 12:05:42 [initandlisten] shutdown: going to close listening sockets...
Thu Oct 11 12:05:42 [initandlisten] shutdown: going to flush diaglog...
Thu Oct 11 12:05:42 [initandlisten] shutdown: going to close sockets...
Thu Oct 11 12:05:42 [initandlisten] shutdown: waiting for fs preallocator...
Thu Oct 11 12:05:42 [initandlisten] shutdown: closing all files...
Thu Oct 11 12:05:42 [initandlisten] closeAllFiles() finished
Thu Oct 11 12:05:42 [initandlisten] shutdown: removing fs lock...
Thu Oct 11 12:05:42 dbexit: really exiting now

Aber immer noch das gleiche Problem.

126
alexchenco

Das Protokoll zeigt an, dass Mongodb beendet wird, da eine alte Sperrdatei vorhanden ist. 

Wenn Sie nicht mit Journaling arbeiten und nicht mit dieser Funktion arbeiten, entfernen Sie die Sperrdatei, führen Sie die Reparatur aus und starten Sie mongodb erneut.

Wenn Sie mit aktiviertem Journal arbeiten oder laufen, lesen Sie die entsprechenden Mongo DB-Dokumente . Beachten Sie, dass folgende Angaben lauten: "Wenn Sie mit Journaling arbeiten, sollten Sie keine Reparatur durchführen, um den konsistenten Zustand wiederherzustellen." Wenn Sie also ein Journaling durchführen, könnte die Reparatur die Situation verschlimmert haben.

26
Trott
Step 1: Remove lock file.
Sudo rm /var/lib/mongodb/mongod.lock

Step 2: Repair mongodb. 
Sudo mongod --repair 

Step 3: start mongodb.
Sudo start mongodb 
or
Sudo service mongodb start

Step 4: Check status of mongodb.
Sudo status mongodb 
or   
Sudo service mongodb status

Step 5: Start mongo console.
mongo 
128
Nanhe Kumar

Haben Sie mongod ausgeführt, bevor Sie mongo ausgeführt haben? 

Ich habe die Installationsanweisungen für mongodb aus http://docs.mongodb.org/manual/tutorial/install-mongodb-on-os-x/ befolgt und hatte den gleichen Fehler wie Sie, als ich mongo tatsächlich ausgeführt habe Ausführen des Mongo-Prozesses mit mongod. Ich dachte, die Installation von mongodb würde es auch starten, aber Sie müssen es manuell mit mongod starten, bevor Sie irgendetwas anderes tun, das mongodb benötigt.

78
eloone

Dies liegt daran, dass der Mongod-Prozess heruntergefahren ist. Sie müssen die folgenden Befehle ausführen, um den Mongod-Prozess aufzurufen:

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

Hoffe das hilft dir.

35
Javier Gomez

Versuchen

Sudo service mongodb start

Das hat mein Problem gelöst.

12
潘博韜

Versuchen Sie, mongod vor mongo auszuführen. 

Sudo /usr/sbin/mongod auf meiner opensuse

Das hat mein Problem gelöst,

7
user3526

Überprüfen Sie den freien Speicherplatz Ihres Dateisystems und erhöhen Sie ihn, wenn es weniger ist. Dies kann auch dazu führen, dass der Mongo nicht startet. Überprüfen Sie die Datei /var/log/mongodb/mongodb.log.

ERROR: Insufficient free space for journal files
Please make at least 3379MB available in /var/lib/mongodb/journal or use --smallfiles
7
msnfreaky

sie müssen also zuerst die mongod.lock-Datei mit dem folgenden Befehl entfernen

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

und starten Sie dann den Mongo-Dienst neu, indem Sie den folgenden Befehl ausgeben 

Sudo service mongod restart 
6
user3470929

Sie können mit netstat -anp | grep 27017 überprüfen, ob der Port von einem anderen Prozess verwendet wird.

4
Efren

Führen Sie die folgenden Schritte aus, um ähnliche Fehler zu vermeiden:

1.Download MondoDBhttps://www.mongodb.com/

2.Öffnen Sie ein Terminal und eine CD in Ihren Downloads Ordner oder welchen Ordner Sie auch immer Ihren Mondodb-Download gespeichert haben (Stellen Sie sicher, dass Sie extrahieren dein mongodb ordner bevor du hinein cdst)

cd Downloads

3.Mongodb auf deinen usr/lokalen Pfad verschieben

Sudo mv mongodb-osx-... /usr/local/mongodb

4.cd in Ihren lokalen Ordner

cd /usr/local/mongodb

5.Erstelle ein neues Verzeichnis

Sudo mkdir -p /data/db

6.cd in das oben neu erstellte Verzeichnis

cd /data/db

7.give mongo permissions

Sudo chown YourMacUserName /data/db

8.Geh dann/öffne dein .bash_profile

Gehen Sie dazu folgendermaßen vor:

In deinem a neuen Terminal

1 .cd 2 .pwd 3 .ls -l

Überprüfen Sie, ob das .bash_profile in Ihrer Dateiliste auf Ihrem Terminal angezeigt wird

falls nicht, erstelle das -bash_profil

.bash_profile erstellen:

In deinem Terminal

berühren Sie .bash_profile

// überspringe diesen Schritt, wenn du bereits ein .bash_profil hast

Schritt 8:

Nächstes in Ihrem Terminal:

open .bash_profile

Und in Ihre Bash-Datei, die sich öffnet, fügen Sie Folgendes hinzu:

MONGO_PATH=/usr/local/mongodb
export PATH=$PATH:$MONGO_PATH/bin

Und dann speichern . (Datei speichern oder Befehl S/CMD + S)

Schritt 9: Zurück in Ihrem Terminal :

source .bash_profile

Jetzt öffnen Sie zwei Terminals . Einer wird für Ihren Mondo-Daemon der andere für Ihr Mongo .

Terminal 1: in Ihrem Terminaltyp: mongod

mongodb

Ausgabe: Mongod Terminal

Terminal 2:

mongo

Ausgabe: Mongo terminal

Stellen Sie auch sicher, dass Sie nicht den folgenden Tippfehler machen, wenn Sie Ihren Mongod in Ihrem Terminal starten: Das ist falsch

mongo d

gibt den folgenden Fehler aus: Fehler beim Herstellen einer Verbindung mit 127.0.0.1:27017 in (Überprüfen des Sockets auf Fehler nach Umfrage), Grund: Verbindung abgelehnt

Das ist richtig:

mongod

(Zwischen den Wörtern mongo und d darf kein Leerzeichen stehen. mondod

Denken Sie zum Schluss immer daran, dass Sie mondod ausführen müssen , bevor Sie mongo auf Ihren Terminals ausführen .

3
RileyManda

In Windows führen Sie cmd als Admin aus:

  1. Verzeichnis erstellen:

    mkdir c:\mongo\data\db

  2. Dienst installieren:

    mongod.exe --install --logpath c:\mongo\logs --logappend --bind_ip 127.0.0.1 --dbpath c:\mongo\data\db --directoryperdb

  3. Starten Sie MongoDB:

    net Start MongoDB

4.Starten Sie die Mongo Shell:

c:\mongo\bin\mongo.exe

Diese Lösung funktioniert gut für mich

3
Luke Le

Das hat für mich funktioniert:

Sudo rm /var/lib/mongodb/mongod.lock    
Sudo service mongodb restart
3
yogesh singh

Dieser Fehler kann durch die Bind-IP-Einstellung von MongoDB verursacht werden. Sie können die MongoDB-Konfigurationsdatei mit überprüfen

$ Sudo vi /etc/mongodb.conf

In meinem Fall ist die Bindungs-IP wie folgt auf die Intranetadresse des Servers festgelegt:

bind_ip = 10.10.1.14 
#port = 27017

Also habe ich mongo einen IP-Parameter gegeben, um mich per Typ mit Shell zu verbinden:

$ mongo 10.10.1.14

Vergessen Sie nicht, den mongodb-Dienst neu zu starten, wenn Sie die Konfiguration geändert haben.

2
Haoming Zhang

Ich habe Mongo Version 3.2.1 und musste die Sperrdatei aus /data/db/ löschen. Danach lief mongod und es wurde erfolgreich gestartet.

>rm /data/db/mongod.lock
>mongod
2
thehme

Ich folgte dem Dokument unter http://docs.mongodb.org/manual/tutorial/install-mongodb-on-red-hat/ .

Nach dem Konfigurieren und Neustart habe ich Sudo service mongod start ausgeführt und ... [FAILED] erhalten.

Schließlich fand ich heraus, dass mongod begonnen hatte. Ich denke, der yum install hat es zum Autostart hinzugefügt.

So prüfen Sie, ob Ihre mongod läuft: service mongod status.

Hoffe das kann jemandem helfen, der dasselbe Problem hat.

2
osrpt

Nach häufigen Versuchen konnte ich endlich das Problem beheben ...

Step 1: ps aux | grep mongo
Step 2: Sudo rm /var/lib/mongodb/mongod.lock
Step 3: Sudo mongod --repair
Step 4: mongo
2
Narendran

Obwohl die Antworten eingehen, möchte ich über Netzwerkfehler in MongoDB diskutieren.

Network errors MongoDB

Das Festlegen des sicheren Schreibens ist nicht die vollständige Beweismethode, um sicherzustellen, dass wir sicher sind. Nehmen wir an, dass w=1 & j=true gesetzt ist. Was wäre, wenn die Schreibbestätigung nicht vom Server empfangen wurde? Nun, die Wahrscheinlichkeit ist, dass es nicht passiert ist, aber es hätte passieren können. Der Grund dafür ist möglicherweise Netzwerkfehler - es gibt Gründe, warum wir keine positive Antwort erhalten. So können wir die Anfrage aus der Anwendung über einen Treiber der gewünschten Sprache senden. mongod kann den Vorgang erfolgreich abschließen und dann könnte es zu einem Zurücksetzen von TCP kommen, und das Netzwerk kann tatsächlich so zurückgesetzt werden, dass wir niemals eine Antwort erhalten. Wir könnten also einen Fehler erhalten und bei dem Fehler könnten wir davon ausgehen, dass wir einen Fehler erhalten haben. Es ist nicht passiert, aber es kann passieren.

Für einen Einsatz kann man dagegen schützen. Es ist möglich, denn wenn wir den Treiber den _id erstellen lassen und eine Einfügung vornehmen - dann könnten wir diese Einfügung mehrmals durchführen, und es würde Schaden entstehen. Denn wenn wir das tun 1st Zeit und wir erhalten einen Fehler und wir sind nicht sicher, ob die Einfügung abgeschlossen ist oder nicht, da es sich um einen Netzwerkfehler handelt. Dann könnten wir es einfach noch einmal tun. Und vorausgesetzt, wir führen es erneut aus, und zwar mit dem genauen _id. Der schlimmste Fall ist, dass wir beim Einfügen einen doppelten Schlüsselfehler erhalten.

Bei einem Update tritt das Problem jedoch auf. Insbesondere das Update, das kein Element ist, enthält zum Beispiel einen $ink-Befehl. Wir sagen also der Datenbank, dass sie ein bestimmtes Feld erhöhen soll. Nun, in diesem Fall, wenn wir einen Netzwerkfehler erhalten und nicht wissen, ob die Aktualisierung erfolgt ist oder nicht. Nun, vielleicht wissen wir genug über die Werte, die wir mit ihnen überprüfen können, dass die Aktualisierung stattgefunden hat, was in Ordnung ist. Wenn wir jedoch den Startwert in der Datenbank für dieses Feld nicht kennen, können wir nicht wissen, ob er im Falle eines Netzwerkfehlers aufgetreten ist oder nicht. Diese Art von Problemen sind bei einem feinen Netzwerk extrem selten.

Und wenn wir es unbedingt um jeden Preis vermeiden müssen, müssen wir alle unsere Aktualisierungen in Einfügungen aktivieren, indem wir den gesamten Wert des Dokuments aus der Datenbank lesen und es möglicherweise löschen und erneut einfügen oder einfach einfügen ein neues.

Die Gründe, warum eine Anwendung einen Fehler zurückerhält, auch wenn das Schreiben erfolgreich war:

  • Die Netzwerkverbindung TCP zwischen der Anwendung und dem Server wurde zurückgesetzt, nachdem der Server einen Schreibzugriff erhalten hatte, bevor jedoch eine Antwort gesendet werden konnte.
  • Der MongoDB-Server endet zwischen dem Empfang des Schreibvorgangs und der Antwort darauf.
  • Das Netzwerk fällt zwischen dem Zeitpunkt des Schreibvorgangs und dem Zeitpunkt, zu dem der Client eine Antwort auf den Schreibvorgang erhält, aus.
1
student

Nach dem Entfernen von mongod.lock, das sich im Datenverzeichnis in meinem Windows-Betriebssystem befand, wurde dieselbe Fehlermeldung angezeigt. Ich musste mongod mit --dbpath ausführen, damit der mongo-Befehl fehlerfrei ausgeführt wird.

1
kta

Das funktioniert für michUm die mongodb-Verwendung einzustellen:

use admin
db.shutdownServer()

Und zum Neustart: 

Sudo service mongod restart
1
Varsha Khandre

Das Hinzufügen der Ablage zu PATH in Umgebungsvariablen hat geholfen. 

GOTO-Installationspfad, und kopieren Sie ../bin in die PATH-Variablen in Umgebungsvariablen in Windows

0

Führen Sie einfach mongod --repair von C:\Program Files\MongoDB\Server\4.0\bin aus.

Hier ist das doc https://docs.mongodb.com/manual/tutorial/recover-data-following-unexpected-shutdown/

0
Ajay Rawat

Im Terminal

1) Sudo-Dienst mongod starten

2) Mongo

0

1.Erstellen Sie einen neuen Ordner in Laufwerk D:/data/db

2.Terminal auf D öffnen:/data/db

3. Geben Sie mongod ein und geben Sie ein.

4.Tippen Sie Mongo und geben Sie ein.

und dein mongodb hat gestrichen ............

0

geben Sie windows + r ein und geben Sie Folgendes ein 

services.msc

starten Sie MongoDB

geben Sie nun "mongo" in cmd in den entsprechenden Pfad ein, in dem die mongo.exe vorhanden ist, und es funktioniert.

0
Gireesh k