Mein Ubuntu-Computer war abgestürzt, und als ich ihn neu startete, funktionierte MongoDB nicht. Ich habe die folgenden Befehle ausprobiert und die folgende Ausgabe erhalten:
$ mongo
Error: couldn't connect to server 127.0.0.1:27017 src/mongo/shell/mongo.js:91
exception: connect failed
$ service mongodb status
mongodb stop/waiting
$ service mongodb restart
stop: Unknown instance:
start: Rejected send message, 1 matched rules; type="method_call",
sender=":1.57" (uid=1000 pid=2227 comm="start mongodb ")
interface="com.ubuntu.Upstart0_6.Job" member="Start" error name="(unset)"
requested_reply="0"
destination="com.ubuntu.Upstart" (uid=0 pid=1 comm="/sbin/init")
$ tail /var/log/mongodb/mongodb.log
[initandlisten] exception in initAndListen: 12596 old lock file, terminating
dbexit:
[initandlisten] shutdown: going to close listening sockets...
[initandlisten] shutdown: going to flush diaglog...
[initandlisten] shutdown: going to close sockets...
[initandlisten] shutdown: waiting for fs preallocator...
[initandlisten] shutdown: closing all files...
[initandlisten] closeAllFiles() finished
dbexit: really exiting now
(Ausgabe neu formatiert, um dem Website-Layout zu entsprechen.)
Was ist passiert? Wie kann ich es reparieren?
quelle
mongod
mit den Benutzerberechtigungen "mongodb". Ihre führt es mit Root-Berechtigungen.alles was ich tun musste war rennen: sudo mongod --reparatur
dann:
Sudo Mongod
quelle
sudo mongod
bedeutet, dass Ihre Datenbank als Root ausgeführt wird, was aus Sicherheitsgründen nicht empfohlen wird.Aufgrund meiner Erfahrung lösche ich normalerweise die Datei "mongod.lock", die sich im Datenbankordner befindet. In meinem Fall:
* Ich navigiere zu dem Ort, an dem die Datenbank in meinem Ubuntu-Ordner "data" installiert ist. (CD-Daten); Liste der Dateien (ls) * Dann entferne ich die Datei "mongod.lock", die beim Absturz der Datenbank automatisch erstellt wurde, indem ich die Datei "rm mongod.lock" herausgebe.
Danach werde ich entweder "./mongod" ausgeben, um den Mongo Deamon zu starten, oder Mongo, um die Mongo Shell zu starten. Und alles wird gut.
quelle
Wenn Sie keine Überwachungstools wie Bluepill oder Monit usw. verwendet haben, müssen Sie sich diesem Problem stellen, da Mongo nach einem Serverabsturz aus irgendeinem Grund seinen Daemon nicht automatisch gestartet hat. Dann müssen Sie ihn manuell arbeiten lassen, wie
sudo service mongod restart
ich es mir vorgestellt habe, aber es muss Wenn Sie weitere Aufgaben erledigen möchten, stellen Sie bitte sicher, dass Sie sich in Ihrem Datenbankpfad befinden,/etc/mongod.conf
bevor Sie Ihren Mongo-Daemon starten.Für mich war es
storage: dbPath: /var/lib/mongodb
Wenn ich den
mongod
BefehlMongoDB starting : pid=10795 port=27017 dbpath=/data/db 64-bit host=xyz.com
eingebe, wird mir angezeigt, dass Ihr Datenbankpfad mit dem in /etc/mongod.conf angegebenen übereinstimmtDazu können Sie den Befehl mo eingeben
sudo mongod --dbpath /var/lib/mongodb
und dann mit demmongod
Befehl an Ihrem gewünschten Datenbankpfad starten.Zu Ihrer Information : Starten Sie Ihren Mongo-Prozess mit einem
mongod
Befehlquelle
Überprüfen Sie, ob auf Ihrem Server genügend freier Speicherplatz vorhanden ist. Wenn kein Platz mehr vorhanden ist, startet Mongodb nicht.
quelle
Dies ist wahrscheinlich nicht die beste Lösung, aber wenn Sie verzweifelt sind, können Sie dies versuchen. Es schien, dass nur das Tagebuch ein Problem für mich war, also habe ich folgende Schritte unternommen:
Nachdem ich diese Schritte ausgeführt hatte (dauerte weniger als 5 Minuten), war ich betriebsbereit und alle Daten schienen in Ordnung zu sein.
quelle
Danke Leute. Wir hatten auch ein Problem, bei dem MongoDB immer wieder neu gestartet wurde und sich über alte Sperrdateien beschwerte . Ich habe MongoDB von der Windows-Dienstliste gestoppt und dann die
mongod.lock
Datei gelöscht . Danach konnte ich den MongoDB-Dienst korrekt starten und es funktionierte einwandfrei.quelle
Das Entfernen der
.lock
Datei aus dem Mongo-Datenverzeichnisdbpath
funktioniert bei mir.z.B
sudo sudo rm {data-directory}/mongod.lock
quelle