Ich erhalte die folgende Fehlermeldung:
alex@alex-K43U:/$ 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
alex@alex-K43U:/$
Folgendes passiert, wenn ich versuche, mongodb zu starten:
* Starting database mongodb [fail]
Ich habe es schon versucht mongo --repair
Ich habe chown und chmod zu var, lib und data / db und log mongodb gemacht.
Ich bin mir nicht sicher, was ich sonst tun soll. 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 habe das Schloss entfernt, dann 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:
alex@alex-K43U:~$ 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.
sudo service mongod restart
arbeitete für michAntworten:
Das Protokoll zeigt an, dass mongodb beendet wird, weil eine alte Sperrdatei vorhanden ist.
Wenn Sie kein Journaling haben und nicht ausgeführt haben, entfernen Sie die Sperrdatei, führen Sie die Reparatur aus und starten Sie mongodb erneut.
Wenn Sie mit aktiviertem Journal arbeiten oder ausgeführt wurden, lesen Sie die entsprechenden Mongo DB-Dokumente . Beachten Sie, dass dort steht: "Wenn Sie mit Journaling arbeiten, sollten Sie keine Reparatur durchführen, um einen konsistenten Zustand wiederherzustellen." Wenn Sie also ein Journal erstellt haben, hat die Reparatur möglicherweise die Situation verschlimmert.
quelle
quelle
/data/db/mongod.lock
anstelle von/var/lib/mongodb/mongod.lock
Bist du gelaufen,
mongod
bevor du gelaufen bistmongo
?Ich habe die Installationsanweisungen für mongodb von http://docs.mongodb.org/manual/tutorial/install-mongodb-on-os-x/ befolgt und hatte den gleichen Fehler wie Sie nur, als ich ausgeführt habe,
mongo
bevor ich den mongo-Prozess tatsächlich ausgeführt habemongod
. Ich dachte, die Installation von Mongodb würde es auch starten, aber Sie müssen es manuell starten,mongod
bevor Sie etwas anderes tun, das Mongodb benötigt.quelle
mongo.exe
sollte derjenige sein, der die DB startet.Dies liegt daran, dass der Mongod-Prozess nicht funktioniert. Sie müssen die folgenden Befehle ausführen, um den Mongod-Prozess zu starten:
Hoffe das hilft dir.
quelle
sudo service mongod stop
undsudo service mongodb stop
vor dem ersten Befehl hinzufügen, da einige Leute sie möglicherweise noch ausführen .Versuchen
Dies löste mein Problem.
quelle
sudo service mongod start
undsudo service mongodb start
Überprüfen Sie den freien Speicherplatz Ihres Dateisystems und erhöhen Sie ihn, wenn er geringer ist. Dies könnte auch dazu führen, dass der Mongo nicht startet. Überprüfen Sie die Datei /var/log/mongodb/mongodb.log.
quelle
Versuchen Sie es
mongod
vorhermongo
.sudo /usr/sbin/mongod
auf meiner opensuseDies löste mein Problem,
quelle
Also müssen Sie zuerst die Datei mongod.lock mit dem folgenden Befehl entfernen
und starten Sie dann den Mongo-Dienst neu, indem Sie den folgenden Befehl eingeben
quelle
Sie können mit überprüfen
netstat -anp | grep 27017
, ob der Port von einem anderen Prozess verwendet wird.quelle
Führen Sie in Windows cmd als Admin aus:
Verzeichnis erstellen:
mkdir c: \ mongo \ data \ db
Installationsdienst:
mongod.exe --install --logpath c: \ mongo \ logs --logappend --bind_ip 127.0.0.1 --dbpath c: \ mongo \ data \ db --directoryperdb
Starten Sie MongoDB:
Nettostart MongoDB
4.Starten Sie Mongo Shell:
Diese Lösung funktioniert gut für mich
quelle
Das hat bei mir funktioniert:
quelle
Führen Sie die folgenden Schritte aus, um ähnliche Fehler zu vermeiden:
1. Laden Sie MondoDB https://www.mongodb.com/ herunter.
2.Öffnen Sie ein Terminal und eine CD in Ihrem Download- Ordner oder in einem beliebigen Ordner, in dem Sie Ihren Mondodb-Download gespeichert haben.
3. Bewegen Sie mongodb auf Ihren usr / lokalen Pfad
4.cd in Ihren lokalen Ordner
5. Erstellen Sie ein neues Verzeichnis
6.cd in das neue Verzeichnis, das gerade oben erstellt wurde
7. Geben Sie Mongo-Berechtigungen
8. Dann öffnen Sie Ihr .bash_profile
Gehen Sie dazu folgendermaßen vor:
In Ihrem ein neues Terminal
1 .
cd
2.pwd
3 .ls -l
Überprüfen Sie, ob das .bash_profile in Ihrer Dateiliste auf Ihrem Terminal angezeigt wird
Wenn nicht, erstellen Sie das -bash_profile
.Bash_profile erstellen:
In Ihrem Terminal
Berühren Sie .bash_profile
// überspringe diesen Schritt, wenn du bereits ein .bash_profile hast
Schritt 8:
Weiter in Ihrem Terminal:
Fügen Sie in Ihrer geöffneten Bash-Datei Folgendes hinzu:
Und dann speichern (Datei speichern oder Befehl S / CMD + S)
Schritt 9: Zurück in Ihrem Terminal :
Nun öffnen zwei Terminals .One für Ihren mondo Daemon die andere für Ihre Mongo .
Terminal 1: In Ihrem Terminal Typ: Mongod
Ausgabe:
Terminal 2:
Ausgabe:
Stellen Sie außerdem sicher, dass Sie beim Starten Ihres Mongods in Ihrem Terminal nicht den folgenden Tippfehler machen: Dies ist falsch
gibt den folgenden Fehler aus : Verbindung zu 127.0.0.1:27017 fehlgeschlagen, in (Socket nach Abfrage auf Fehler prüfen), Grund: Verbindung abgelehnt
Das ist richtig:
(Zwischen den Wörtern mongo und d .. mondod sollte kein Leerzeichen stehen
Denken Sie zum Schluss immer daran, dass Sie mondod ausführen müssen, bevor Sie mongo auf Ihren Terminals ausführen .
quelle
Ich folgte dem Dokument unter http://docs.mongodb.org/manual/tutorial/install-mongodb-on-red-hat/ .
Nach dem Konfigurieren und Neustarten habe ich ausgeführt
sudo service mongod start
und bekommen... [FAILED]
.Endlich stellte ich fest, dass
mongod
das begonnen hatte. Ich denke dasyum install
hat es zum Autostart hinzugefügt.So überprüfen Sie, ob Ihr ausgeführt
mongod
wird :service mongod status
.Hoffe das kann jemandem helfen hat das gleiche Problem.
quelle
Nach häufigem Versuch konnte ich endlich das Problem beheben ...
quelle
Dieser Fehler kann durch die Bindungs-IP-Einstellung der MongoDB verursacht werden. Sie können die Konfigurationsdatei von MongoDB mit überprüfen
In meinem Fall wird die Bindungs-IP wie folgt auf die Intranet-Adresse des Servers festgelegt:
Also habe ich mongo einen IP-Parameter gegeben, um nach Typ eine Verbindung zur Shell herzustellen:
Vergessen Sie nicht, den Mongodb-Dienst neu zu starten, wenn Sie die Konfiguration geändert haben.
quelle
Ich habe Mongo Version 3.2.1 und musste die Sperrdatei aus löschen
/data/db/
und danach liefmongod
und es erfolgreich gestartet.quelle
Führen Sie im Terminal diese Befehle aus
1)
2)
quelle
Nach dem Entfernen von mongod.lock, das sich in meinem Windows-Betriebssystem im Datenverzeichnis befand, wurde immer noch dieselbe Fehlermeldung angezeigt. Ich musste mongod mit --dbpath ausführen, damit der mongo-Befehl fehlerfrei ausgeführt wurde.
quelle
Obwohl die Antworten eingegangen sind, möchte ich über Netzwerkfehler in diskutieren
MongoDB
.Das Festlegen der Bedenken hinsichtlich des sicheren Schreibens ist nicht die vollständige Beweismethode, um sicherzustellen, dass wir sicher sind. Nehmen wir an, dass
w=1
&j=true
gesetzt sind. Was passiert, wenn die Schreibbestätigung nicht vom Server empfangen wurde? Nun, die Wahrscheinlichkeit ist, dass es nicht passiert ist, aber es könnte passiert sein. Der Grund, warum dies möglicherweise passiert ist, ist, dass Netzwerkfehler vorliegen. Es gibt Gründe, warum wir möglicherweise keine positive Antwort erhalten. So können wir die Anfrage aus der Anwendung über einen Treiber der Sprache Ihrer Wahl senden.mongod
kann es erfolgreich abschließen und dann könnte es zu einem TCP-Reset kommen, und das Netzwerk kann tatsächlich so zurückgesetzt werden, dass wir keine Antwort erhalten. Wir könnten also einen Fehler bekommen und bei dem Fehler könnten wir annehmen, dass wir einen Fehler bekommen haben. Es ist nicht passiert, aber es kann passieren.Für einen Einsatz ist es möglich, sich dagegen zu schützen. Es ist möglich, denn wenn wir den Treiber das erstellen lassen
_id
und eine Einfügung vornehmen, können wir diese Einfügung mehrmals ausführen, und es wäre schädlich. Denn wenn wir diese 1 tun st Zeit und wir bekommen einen Fehler und wir sind nicht sicher , ob dieser Einsatz abgeschlossen , weil es ein Netzwerkfehler ist, dann könnten wir es einfach wieder tun. Und vorausgesetzt, wir führen es erneut durch, Tyr, um es genau auszuführen_id
. Im schlimmsten Fall wird beim Einfügen ein doppelter Schlüsselfehler angezeigt.Bei einem Update tritt jedoch das Problem auf. Insbesondere das Update, das nicht item-potent ist, das zum Beispiel a
$ink
Befehl . Wir weisen die Datenbank also an, ein bestimmtes Feld zu erhöhen. In diesem Fall, wenn wir einen Netzwerkfehler erhalten und nicht wissen, ob das Update stattgefunden hat oder nicht. Vielleicht wissen wir genug über die Werte, mit denen wir überprüfen können, ob das Update 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 ist bei einem guten Netzwerk äußerst selten.Und wenn wir es wirklich um jeden Preis vermeiden müssen, müssen wir alle unsere Aktualisierungen in Einfügungen umwandeln, indem wir den vollständigen Wert des Dokuments aus der Datenbank lesen und es dann möglicherweise löschen und erneut einfügen oder einfach einfügen ein neuer.
Die Gründe, warum eine Anwendung möglicherweise einen Fehler zurückerhält, selbst wenn der Schreibvorgang erfolgreich war:
MongoDB
Server wird zwischen dem Empfang des Schreibvorgangs und der Antwort darauf beendet.quelle
Dies funktioniert für mich Um den Mongodb-Gebrauch zu stoppen:
Und zum Neustart:
quelle
Das Hinzufügen des Bin zu PATH in Umgebungsvariablen hat geholfen.
GOTO Installationspfad und kopieren Sie die ../bin in die PATH-Variablen in Umgebungsvariablen in Windows
quelle
Geben Sie windows + r ein und geben Sie Folgendes ein
Geben Sie nun "mongo" in cmd in den entsprechenden Pfad ein, in dem die Datei mongo.exe vorhanden ist. Die Arbeit beginnt.
quelle
1.Erstellen Sie einen neuen Ordner in Laufwerk D: / data / db
2.Öffnen Sie das Terminal an D: / data / db
3. Geben Sie mongod ein und geben Sie ein.
4. Geben Sie mongo ein und geben Sie ein.
und dein mongodb hat geschuftet ............
quelle
Lauf einfach weg
mongod --repair
vonC:\Program Files\MongoDB\Server\4.0\bin
Hier ist das Dokument https://docs.mongodb.com/manual/tutorial/recover-data-following-unexpected-shutdown/
quelle
quelle
Ich habe einen ähnlichen Fehler erhalten, aber die Grundursache war anders. Nach der Installation des Mongodb mit Homebrew. https://docs.mongodb.com/manual/installation/ Ich muss den "mongod" -Dienst starten, bevor ich den "mongo" -Befehl auf dem Terminal erteile.
quelle
Wenn Sie OS X-Systeme verwenden, gibt es keine
service
Befehle. Sie können also nicht ausführensudo service mongod start
.Überprüfen Sie diese Antwort https://unix.stackexchange.com/a/155746 für weitere Hilfe!
quelle
Err: Es konnte keine Verbindung zum Server 127.0.0.1:27017 hergestellt werden
Dies ist eine Lösung für WINDOWS-Benutzer, die hier Code eingeben. 1. Verzeichnis erstellen:
mongod.exe --install --logpath
Starten Sie MongoDB:
net start MongoDB
4.Starten Sie Mongo Shell:
Gehe zu bis bin und betrete
mongo
Hinweis: Öffnen Sie das Terminal im Administratormodus
quelle
Ubuntu 18.04LTS: Das Problem tritt auf, wenn ich meine vorherige Version vollständig deinstalliert und 4.2.6 installiert habe
Nachdem ich stundenlang gegoogelt hatte, löste ich ein anderes Problem
MongoDB startet nicht - *** Abbruch nach fassert ()
Ich war hoffnungslos über das Problem konnte keine Verbindung zum Server herstellen , da alles in Ordnung zu sein scheint.
Schließlich entschied ich mich, das Betriebssystem neu zu starten und zu raten, was ... BINGO
quelle
Probier's einfach:
quelle