it-swarm.com.de

Mongodb-Dienst wird nicht gestartet

Ich bin mir nicht sicher, warum, und der Service funktionierte erst gestern, plötzlich kann ich MongoDB nicht dazu bringen, zu starten.

[[email protected] ~]# service mongod start
Starting mongod: Thu Aug 29 23:26:07.550 
Thu Aug 29 23:26:07.550 warning: 32-bit servers don't have journaling enabled by default. Please use --journal if you want durability.
Thu Aug 29 23:26:07.550 
about to fork child process, waiting until server is ready for connections.
forked process: 5078
all output going to: /var/log/mongo/mongod.log
ERROR: child process failed, exited with error number 100
                                                           [FAILED]

Ich habe in /var/log/mongo/mongod.log gesucht und folgendes:

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


Thu Aug 29 23:29:05.874 [initandlisten] MongoDB starting : pid=5118 port=27017 dbpath=/var/lib/mongo 32-bit Host=purr.ipetfindr.com
Thu Aug 29 23:29:05.874 [initandlisten]
Thu Aug 29 23:29:05.874 [initandlisten] ** NOTE: This is a 32 bit MongoDB binary.
Thu Aug 29 23:29:05.874 [initandlisten] **   32 bit builds are limited to less than 2GB of data (or less with --journal).
Thu Aug 29 23:29:05.874 [initandlisten] **   Note that journaling defaults to off for 32 bit and is currently off.
Thu Aug 29 23:29:05.874 [initandlisten] **   See http://dochub.mongodb.org/core/32bit
Thu Aug 29 23:29:05.874 [initandlisten]
Thu Aug 29 23:29:05.874 [initandlisten] ** WARNING: You are running in OpenVZ. This is known to be broken!!!
Thu Aug 29 23:29:05.875 [initandlisten]
Thu Aug 29 23:29:05.875 [initandlisten] db version v2.4.6
Thu Aug 29 23:29:05.875 [initandlisten] git version: b9925db5eac369d77a3a5f5d98a145eaaacd9673
Thu Aug 29 23:29:05.875 [initandlisten] build info: Linux bs-linux32.10gen.cc 2.6.21.7-2.fc8xen #1 SMP Fri Feb 15 12:39:36 EST 2008 i686 BOOST_LIB_VERSION=1_49
Thu Aug 29 23:29:05.875 [initandlisten] allocator: system
Thu Aug 29 23:29:05.875 [initandlisten] options: { config: "/etc/mongod.conf", dbpath: "/var/lib/mongo", fork: "true", logappend: "true", logpath: "/var/log/mongo/mongod.log", pidf$
**************
Unclean shutdown detected.
Please visit http://dochub.mongodb.org/core/repair for recovery instructions.
*************
Thu Aug 29 23:29:05.875 [initandlisten] exception in initAndListen: 12596 old lock file, terminating
Thu Aug 29 23:29:05.875 dbexit:
Thu Aug 29 23:29:05.875 [initandlisten] shutdown: going to close listening sockets...
Thu Aug 29 23:29:05.875 [initandlisten] shutdown: going to flush diaglog...
Thu Aug 29 23:29:05.875 [initandlisten] shutdown: going to close sockets...
Thu Aug 29 23:29:05.875 [initandlisten] shutdown: waiting for fs preallocator...
Thu Aug 29 23:29:05.875 [initandlisten] shutdown: closing all files...
Thu Aug 29 23:29:05.875 [initandlisten] closeAllFiles() finished
Thu Aug 29 23:29:05.875 dbexit: really exiting now

Wie kann ich das Problem beheben, indem der Server neu gestartet wird, und der Dienst scheint nicht zu funktionieren.

FEHLER nach der Reparatur

Nicht sicher, was zu tun ist, sagt etwas über Fehler. Die Datei/var/lib/mongo / local.ns terminating konnte nicht geöffnet werden

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


Fri Aug 30 04:49:43.041 [initandlisten] MongoDB starting : pid=3300 port=27017 dbpath=/var/lib/mongo 32-bit Host=purr.ipetfindr.com
Fri Aug 30 04:49:43.041 [initandlisten]
Fri Aug 30 04:49:43.041 [initandlisten] ** NOTE: This is a 32 bit MongoDB binary.
Fri Aug 30 04:49:43.041 [initandlisten] **   32 bit builds are limited to less than 2GB of data (or less with --journal).
Fri Aug 30 04:49:43.041 [initandlisten] **   Note that journaling defaults to off for 32 bit and is currently off.
Fri Aug 30 04:49:43.041 [initandlisten] **   See http://dochub.mongodb.org/core/32bit
Fri Aug 30 04:49:43.041 [initandlisten]
Fri Aug 30 04:49:43.041 [initandlisten] ** WARNING: You are running in OpenVZ. This is known to be broken!!!
Fri Aug 30 04:49:43.041 [initandlisten]
Fri Aug 30 04:49:43.041 [initandlisten] db version v2.4.6
Fri Aug 30 04:49:43.041 [initandlisten] git version: b9925db5eac369d77a3a5f5d98a145eaaacd9673
Fri Aug 30 04:49:43.041 [initandlisten] build info: Linux bs-linux32.10gen.cc 2.6.21.7-2.fc8xen #1 SMP Fri Feb 15 12:39:36 EST 2008 i686 BOOST_LIB_VERSION=1_49
Fri Aug 30 04:49:43.041 [initandlisten] allocator: system
Fri Aug 30 04:49:43.041 [initandlisten] options: { config: "/etc/mongod.conf", dbpath: "/var/lib/mongo", fork: "true", logappend: "true", logpath: "/var/log/mongo/mongod.log", pidf$
Fri Aug 30 04:49:43.058 [initandlisten] couldn't open /var/lib/mongo/local.ns errno:13 Permission denied
Fri Aug 30 04:49:43.058 [initandlisten] error couldn't open file /var/lib/mongo/local.ns terminating
Fri Aug 30 04:49:43.059 dbexit:
Fri Aug 30 04:49:43.059 [initandlisten] shutdown: going to close listening sockets...
Fri Aug 30 04:49:43.059 [initandlisten] shutdown: going to flush diaglog...
Fri Aug 30 04:49:43.059 [initandlisten] shutdown: going to close sockets...
Fri Aug 30 04:49:43.059 [initandlisten] shutdown: waiting for fs preallocator...
Fri Aug 30 04:49:43.059 [initandlisten] shutdown: closing all files...
Fri Aug 30 04:49:43.059 [initandlisten] closeAllFiles() finished
Fri Aug 30 04:49:43.059 [initandlisten] shutdown: removing fs lock...
Fri Aug 30 04:49:43.059 dbexit: really exiting now
31
RussellHarrower

Nach dem Ausführen der Reparatur konnte ich den Mongod-Prozessor jedoch als root starten, was bedeutete, dass service mongod start nicht funktionieren würde. Um dieses Problem zu beheben, musste ich sicherstellen, dass alle Dateien im Datenbankordner im Besitz von mongod waren und gruppiert waren. Ich habe das folgendermaßen gemacht:

  1. Überprüfen Sie die Dateiberechtigungen in Ihrem Datenbankordner
    1. beachten Sie, dass Sie sich in Ihrem dbpath-Ordner befinden müssen. Mein Name war /var/lib/mongo Ich ging zu cd /var/lib 
    2. Ich lief ls -l mongo
  2. Dies zeigte mir, dass Datenbanken im Besitz von root waren, was falsch ist. Ich habe folgendes ausgeführt, um das Problem zu beheben: chown -R mongod:mongod mongo. Dies hat den Besitzer und die Gruppe aller Dateien im Ordner in Mongod geändert. (Wenn Sie das mongodb-Paket verwenden, chown -R mongodb:mongodb mongodb)

Ich hoffe das hilft in Zukunft jemand anderem.

48
RussellHarrower

Ich habe dieses Problem gelöst, indem ich zuerst C:\mongodb\bin\mongod.exe --repair ausgeführt habe. Als ich dann MongoDB erneut mit C:\mongodb\bin\mongod.exe ausgeführt habe, wurde es erfolgreich gestartet.

14
openNecati

Ich habe das Problem gelöst, indem die Datei d:\test\mongodb\data\mongod.lock gelöscht wurde. Wenn Sie die Mongo-Datenbank wieder herstellen, wird diese Datei automatisch im selben Ordner erstellt. Für mich geht das.

8
Dineshaws

möglicherweise liegt dies an der Datei mongod.lock. Wenn der Fehler auch nach dem Löschen weiterhin besteht, überprüfen Sie die Pfade in der Datei mongo.conf. Es kann ein einfaches Problem sein, z. B. wenn der konfigurierte Protokollpfad oder dbPath nicht vorhanden ist (überprüfen Sie die Pfade in mongo/conf/mongod.conf und prüfen Sie, ob sie vorhanden sind. Manchmal kann mongo nicht in seinen eigenen Verzeichnisstrukturen erstellen, die Sie möglicherweise erstellen müssen diese Verzeichnisse manuell vor dem Start von mongod). 

3
user4700203

Für mich stellte sich der Grund für das Nicht-Starten als verwaiste Sperrdatei unter /var/lib/mongo/mongo.lock heraus. Wenn ich diese Datei löschte, würde mongo dann OK starten. Mein System hatte vorher ein paar chaotische Abstürze. [Fedora 14] 

3
user3704779

Es ist alles in Ihrer Fehlermeldung - es scheint, als ob ein unreines Herunterfahren erkannt wurde. Weitere Informationen finden Sie unter http://docs.mongodb.org/manual/tutorial/recover-data-following-unexpected-shutdown/ .

In meiner Erfahrung ist es normalerweise hilfreich, mongod.exe mit der --repair-Option ro repair DB auszuführen.

2
Roman Pekar

Ich habe versucht, die Sperrdatei zu löschen, aber der wahre Grund dafür war, dass ich ~/data/db als Datenverzeichnis verwendete. Mongo benötigt einen absoluten Pfad zur Datenbank. Nachdem ich es in/home // data/db geändert hatte, war ich im Geschäft.

1
Jordan Lapp

Ich habe die Berechtigungen verifiziert, aber alles war gut (mongod: mongod). Da ich an einem großen Projekt arbeite und aus einem ähnlichen Problem in unserer Entwicklungsumgebung stamme, in dem wir ein Skript hatten, das den gesamten verfügbaren Speicherplatz verbrauchte, konnte ich das sehen Fehlermeldung, dass der mongod mindestens 3,7 GB freien Festplattenspeicher benötigt, um ausgeführt zu werden.

Ich habe meinen eigenen Festplattenspeicher nur überprüft, um zu sehen, dass weniger als 2 GB übrig waren. Nachdem ich einige Daten verschoben/gelöscht habe, kann ich Mongod wieder erfolgreich starten.

Hoffe das hilft ;-)

1
4levels

Als ich mongod.exe vom Windows Terminal aus ausführte, bekam ich eine Nachricht Unrecognized option: mp. Es gab ein leeres mp: am Ende von mongod.cfg. Das zu entfernen löste das Problem für mich.

0
Peter Hedberg

Löschen Sie die .lock-Datei aus dem Pfad C:\mongodb\data \, und starten Sie den mongodb-Dienst neu.

Ich kann noch nicht kommentieren, aber +1 für das manuelle Entfernen der Sperrdatei haha. 

Mein C9-Arbeitsbereich stürzte bei mir ab und löste ein unerwartetes Herunterfahren aus. Die API empfiehlt: https://docs.mongodb.com/manual/tutorial/recover-data-following-unexpected-shutdown/

.. aber das Entfernen von Daten/mongo.lock hat für mich funktioniert :). 

Nur für den Fall, dass Sie eine Verbindungsverweigerung erhalten (was mir passiert ist), könnte das Ausführen des Reparaturbefehls vor dem Entfernen der Sperrdatei das Problem lösen (es hat mein Problem). 

Sudo -u Mongodb Mongod --repair --dbpath/var/lib/mongodb /

0
Jesse