Wie haben Sie es installiert? Hast du eine Begabung benutzt? Haben Sie den Tarbal direkt heruntergeladen?
Bryan Migliorisi
1
Ich hatte diesen Fehler und es war, weil ich auf Ubuntu nicht mongodzuerst lief
Connor Leech
Antworten:
124
Entfernen Sie die Sperrdatei manuell: sudo rm /var/lib/mongodb/mongod.lock
Führen Sie das Reparaturskript aus: sudo -u mongodb mongod -f /etc/mongodb.conf --repair
Bitte beachten Sie Folgendes:
Sie müssen diesen Befehl als Mongodb-Benutzer ausführen. Wenn Sie es als root ausführen, besitzt root Dateien in / var / lib / mongodb /, die zum Ausführen des mongodb-Daemons erforderlich sind. Wenn der Daemon versucht, später als mongodb-Benutzer ausgeführt zu werden, verfügt er nicht über Startberechtigungen . In diesem Fall wird folgende Fehlermeldung angezeigt: Sperrdatei für Sperrdateipfad kann nicht erstellt / geöffnet werden: /var/lib/mongodb/mongod.lock errno: 13 Berechtigung verweigert, Beenden.
Unter Ubuntu müssen Sie die Konfigurationsdatei /etc/mongodb.conf mit dem Flag -f angeben. Andernfalls wird an der falschen Stelle nach den Datendateien gesucht und der folgende Fehler wird angezeigt: dbpath (/ data / db /) ist nicht vorhanden und wird beendet.
Fügen Sie sich einfach der Mongodb-Gruppe hinzu: useradd -G mongodb fady Ersetzen Sie fady durch Ihren Benutzernamen.
Fady Mohamed Osman
2
Ich musste sowohl die Informationen dieser Antwort als auch die Antwort von @boulder_ruby verwenden. Dies liegt daran, dass mein '/ data / db /' fehlte. Vielleicht könnte es ein gutes Update sein, damit diese Antwort vollständiger wird.
Wenn ich "sudo -u mongodb mongod -f /etc/mongodb.conf --repair" versuche, bekomme ich Folgendes:Mon Aug 22 11:28:17.919 Can't specify both --journal and --repair options.
Aleksandrus
21
Ich versuche $ mongod laufen zu lassen
Wenn Sie einen Fehler wie z
MongoDB shell version:2.0.5
connecting to: test
FriJun111:20:33Error: couldn't connect to server 127.0.0.1 shell/mongo.js:84
exception: connect failed
hisham-agil:~ hisham$ mongod
mongod --help for help and startup options
FriJun111:24:47[initandlisten]MongoDB starting : pid=53452 port=27017 dbpath=/data/db/64-bit host=hisham-agil.local
FriJun111:24:47[initandlisten] db version v2.0.5, pdfile version 4.5FriJun111:24:47[initandlisten] git version: nogitversion
FriJun111:24:47[initandlisten] build info:Darwin gamma.local 11.3.0DarwinKernelVersion11.3.0:ThuJan1218:48:32 PST 2012; root:xnu-1699.24.23~1/RELEASE_I386 i386 BOOST_LIB_VERSION=1_49FriJun111:24:47[initandlisten] options:{}FriJun111:24:47[initandlisten] exception in initAndListen:10296 dbpath (/data/db/) does not exist, terminating
FriJun111:24:47 dbexit:FriJun111:24:47[initandlisten] shutdown: going to close listening sockets...FriJun111:24:47[initandlisten] shutdown: going to flush diaglog...FriJun111:24:47[initandlisten] shutdown: going to close sockets...FriJun111:24:47[initandlisten] shutdown: waiting for fs preallocator...FriJun111:24:47[initandlisten] shutdown: lock for final commit...FriJun111:24:47[initandlisten] shutdown: final commit...FriJun111:24:47[initandlisten] shutdown: closing all files...FriJun111:24:47[initandlisten] closeAllFiles() finished
FriJun111:24:47 dbexit: really exiting now
Dann ist ein grundlegender Startfehler aufgetreten, der ziemlich häufig auftritt.
Standardmäßig versucht mongod, / data / db für seine Datenbankdateien zu verwenden, die in diesem Fall nicht vorhanden sind.
Du kannst nicht anfangen
mongo
bis du fertig bist
mongod.
Versuchen Sie, diese Verzeichnisse zu erstellen, und stellen Sie sicher, dass sie von demselben Benutzer geschrieben werden können, der den Mongod-Prozess ausführt.
Sie können den Datenbankpfad auch wie folgt einstellen: mongod --dbpath ../data
cbaigorri
20
Dies ist eigentlich kein Fehler ... Was hier passiert, ist, dass Mongo zum Ausführen des lokalen Datenbankservers auf einen Dämon angewiesen ist. Um den Mongo-Server in Ihrer Shell zu "starten " , müssen Sie den Mongo-Dienst starten zuerst.
Für Fedora Linux (die von mir verwendete Distribution ) müssen Sie folgende Befehle ausführen:
1 sudo service mongod start
2 mongo
Und da hast du es! Der Server wird ausgeführt. Wenn der Mongo-Dienst beim Systemstart gestartet werden soll, müssen Sie Folgendes ausführen:
sudo chkconfig --levels 235 mongod on
Und das ist alles! Wenn Sie das tun, müssen Sie jetzt in der Shell nur noch mongo eingeben , um den Server zu starten, aber das ist so ziemlich alles. Das Problem ist, dass Sie zuerst den SERVICE und dann den SERVER starten müssen :)
PS Die Befehle, die ich gepostet habe, funktionieren möglicherweise auch in anderen Linux-Distributionen, nicht nur in Fedora ... Falls dies nicht der Fall ist, müssen Sie je nach verwendeter Distribution möglicherweise einige Wörter anpassen;)
Löscht diese Methode die vorhandenen Datenbanken in Mongo?
Evan
6
Sie müssen die Sperrdatei löschen mongod.lockoder /var/lib/mongodb/mongod.lockauf ubuntu, dann müssen Sie laufen mongod.exeoder service mongodb startauf ubuntu zuerst, dann laufen mongo.exeoder mongoauf Ubuntu.
Das OP ist unter Ubuntu, daher bin ich mir ziemlich sicher, dass sie keine .exeDateien verwenden werden.
me_and
Ich erhalte diese Fehlermeldung und kann in meinem Dateisystem keine "mongod.lock" finden. Gilt diese Anleitung für Mac OSX?
boulder_ruby
5
Entweder läuft Ihr Mongod nicht (überprüfen Sie dies mit dem Befehl "ps") oder es lauscht auf einer externen IP-Adresse und nicht auf localhost. Überprüfen Sie also zuerst die Prozessliste, ob 'mongod' ausgeführt wird. Wenn ja, überprüfen Sie mit "netstat -nap" den zugehörigen Port.
Natürlich können Sie mongod manuell auf der Konsole starten oder sogar in die mongod-Protokolldatei schauen (falls eine konfiguriert ist ... je nachdem, wie Sie mongod installiert haben).
Zuerst müssen Sie sicherstellen, dass alle Dateien und Verzeichnisse in Ihrem Ordner / var / lib / mongodb / (oder dem Ordner, auf den dbpath verweist) dem Benutzer mongodb und der Gruppe mongodb gehören.
Wie kommt es, dass es dafür keine positiven Stimmen gibt? Dies war die einzige Lösung unter einem halben Dutzend SO-Einträgen, die ich gesucht habe und die für mich funktioniert hat. Danke mein Herr.
FRD
Der Befehl, mit der Konfigurationsdatei zu beginnen und eine Reparatur zu erzwingen, ist sudo -u mongodb mongod -f /etc/mongod.conf --repairunter Ubuntu 14.
Okoboko
5
Starten Sie zuerst Ihren Mongo-Server mit
Users-MacBook-Pro:csv1 Admin$ mongod
all output going to:/usr/local/var/log/mongodb/mongo.log
Öffnen Sie dann ein anderes Terminalfenster und öffnen Sie die Shell
Überprüfen Sie auch, ob Ihre Root-Partition über genügend Speicherplatz verfügt, um mongod zu starten.
df -h /
Beim Start von Mongod sehen Sie Folgendes:
MonAug1217:02:59.159[initandlisten] recover : no journal files present, no recovery needed
MonAug1217:02:59.159[initandlisten]MonAug1217:02:59.159[initandlisten] ERROR:Insufficient free space for journal files
MonAug1217:02:59.159[initandlisten]Please make at least 3379MB available in /var/lib/mongodb/journal or use --smallfiles
MonAug1217:02:59.159[initandlisten]MonAug1217:02:59.159[initandlisten] exception in initAndListen:15926Insufficient free space for journals, terminating
MonAug1217:02:59.159 dbexit:MonAug1217:02:59.159[initandlisten] shutdown: going to close listening sockets...
Versuchen Sie nun, die Mongo-Version zu überprüfen. Wenn Sie folgen, sind Sie auf dem richtigen Weg!
$ mongo --version
MongoDB shell version:2.4.6
Jetzt müssen wir das Datenbankverzeichnis erstellen. Ich habe den in MongoDB-Dokumenten vorgeschlagenen Standardspeicherort '/ data / db' verwendet. Ich habe auch ein Protokollverzeichnis erstellt, um Berechtigungsprobleme zu vermeiden, während Mongo versucht, Protokolle zu erstellen. Ändern Sie den Besitzer und das wird den Job machen.
Jetzt erstellen wir eine Standardkonfigurationsdatei für MongoDB, die zum ersten Mal bereitgestellt wird, wenn wir den Befehl 'mongod' ausführen. Jetzt möchte ich auch darauf hinweisen, dass 'mongod' einen Dienst startet, der auf eingehende Datenverbindungen wartet. Dies ist ähnlich, wenn '$ service mysqld start' ausgeführt wird. Lassen Sie uns fortfahren und die Konfigurationsdatei erstellen. Bitte beachten Sie, dass ich eine sehr einfache Konfigurationsdatei erstellt habe. Sie können jedoch viele andere Variablen hinzufügen, um MongoDB zu konfigurieren. Dies ist das erste Mal, dass ich mit MongoDB spiele, also weiß ich genau so viel, wie ich in MongoDB-Dokumenten gelesen habe! Ich habe 'mongodb.conf' erstellt.
Beachten Sie, dass der Standardport für den MongoDB-Server 27017 ist. Verwenden Sie Ihren eigenen Pfad für den Datenbank- und Protokollpfad, den Sie in Schritt 5 erstellt haben. Vergessen Sie nicht, die conf-Datei zu schließen und zu speichern.
Jetzt können wir unseren MongoDB-Dienst starten. Öffnen Sie zwei Instanzen von Terminal. Geben Sie in Terminal 1 Folgendes ein:
$ sudo mongod -f /etc/mongodb.conf
about to fork child process, waiting until server is ready for connections.
forked process:3516
all output going to:/data/log/mongod.log
child process started successfully, parent exiting
Wenn Sie die obige Meldung erhalten, wissen Sie, dass Sie Ihren Mongod-Dienst erfolgreich gestartet haben.
Um eine Verbindung herzustellen, geben Sie in Terminal 2 Folgendes ein:
$mongo test
MongoDB shell version:2.4.6
connecting to: test
Server has startup warnings:TueSep316:55:43.527[initandlisten]TueSep316:55:43.527[initandlisten]** WARNING: soft rlimits too low.Numberof files is 256, should be at least 1000>
Ignorieren Sie die Warnungen, aber Sie sind erfolgreich mit der 'Test'-Datenbank verbunden! Cool!
Das ist alles. Ich habe diese Lösung angewendet, als ich zum ersten Mal versuchte, eine Kopie von MongoDB auf meinem Mac zu installieren. Sehen Sie, ob dies auch Ihnen hilft.
Während dieser Link die Frage beantworten kann, ist es besser, die wesentlichen Teile der Antwort hier aufzunehmen und den Link als Referenz bereitzustellen. Nur-Link-Antworten können ungültig werden, wenn sich die verknüpfte Seite ändert.
Radim Köhler
@ RadimKöhler, danke für Heads Up. Ich habe die Antwort korrigiert. Hoffe das wird jemandem helfen. Prost.
Chinmay
1
Ich habe dieses Problem unter Ubuntu 12.04 durch die folgenden Schritte gelöst:
1) sudo rm / var / log / mongodb
2) sudo rm / var / lib / mongodb
3) Ich habe mongo entfernt und dann erneut installiert.
4) sudo service mongodb restart
mongod
zuerst liefAntworten:
sudo rm /var/lib/mongodb/mongod.lock
sudo -u mongodb mongod -f /etc/mongodb.conf --repair
Bitte beachten Sie Folgendes:
quelle
Hier ist alles, manchmal dauert es eine Weile, bis Mongo nach diesen Operationen gestartet ist.
quelle
Mon Aug 22 11:28:17.919 Can't specify both --journal and --repair options.
Ich versuche $ mongod laufen zu lassen
Wenn Sie einen Fehler wie z
Dann ist ein grundlegender Startfehler aufgetreten, der ziemlich häufig auftritt.
Standardmäßig versucht mongod, / data / db für seine Datenbankdateien zu verwenden, die in diesem Fall nicht vorhanden sind.
Du kannst nicht anfangen
bis du fertig bist
Versuchen Sie, diese Verzeichnisse zu erstellen, und stellen Sie sicher, dass sie von demselben Benutzer geschrieben werden können, der den Mongod-Prozess ausführt.
** Siehe ähnliche Frage - Fehlermeldung "Fehler: Verbindung zum Server 127.0.0.1 konnte nicht hergestellt werden - shell / mongo.js" und beim Versuch, mongodb auf einem Mac OSX Lion auszuführen
quelle
Dies ist eigentlich kein Fehler ... Was hier passiert, ist, dass Mongo zum Ausführen des lokalen Datenbankservers auf einen Dämon angewiesen ist. Um den Mongo-Server in Ihrer Shell zu "starten " , müssen Sie den Mongo-Dienst starten zuerst.
Für Fedora Linux (die von mir verwendete Distribution ) müssen Sie folgende Befehle ausführen:
Und da hast du es! Der Server wird ausgeführt. Wenn der Mongo-Dienst beim Systemstart gestartet werden soll, müssen Sie Folgendes ausführen:
Und das ist alles! Wenn Sie das tun, müssen Sie jetzt in der Shell nur noch mongo eingeben , um den Server zu starten, aber das ist so ziemlich alles. Das Problem ist, dass Sie zuerst den SERVICE und dann den SERVER starten müssen :)
PS Die Befehle, die ich gepostet habe, funktionieren möglicherweise auch in anderen Linux-Distributionen, nicht nur in Fedora ... Falls dies nicht der Fall ist, müssen Sie je nach verwendeter Distribution möglicherweise einige Wörter anpassen;)
quelle
sudo service mongodb start
Ich habe das gleiche Problem, als ich versuchte, Mongo zu installieren. Ich habe Fehler als,
Error
Lösung:
Installieren Sie mongod zuerst mit:
Geben Sie dann ein
Dann
Dann
Danke
quelle
Sie müssen die Sperrdatei löschen
mongod.lock
oder/var/lib/mongodb/mongod.lock
auf ubuntu, dann müssen Sie laufenmongod.exe
oderservice mongodb start
auf ubuntu zuerst, dann laufenmongo.exe
odermongo
auf Ubuntu.quelle
.exe
Dateien verwenden werden.Entweder läuft Ihr Mongod nicht (überprüfen Sie dies mit dem Befehl "ps") oder es lauscht auf einer externen IP-Adresse und nicht auf localhost. Überprüfen Sie also zuerst die Prozessliste, ob 'mongod' ausgeführt wird. Wenn ja, überprüfen Sie mit "netstat -nap" den zugehörigen Port.
Natürlich können Sie mongod manuell auf der Konsole starten oder sogar in die mongod-Protokolldatei schauen (falls eine konfiguriert ist ... je nachdem, wie Sie mongod installiert haben).
quelle
Zuerst müssen Sie sicherstellen, dass alle Dateien und Verzeichnisse in Ihrem Ordner / var / lib / mongodb / (oder dem Ordner, auf den dbpath verweist) dem Benutzer mongodb und der Gruppe mongodb gehören.
(Ersetzen Sie Dateiname und Verzeichnis durch ihre jeweiligen Namen)
Dann können Sie die Sperre aufheben, die Datenbank reparieren und den Dämon neu starten, wie andere bereits erwähnte Personen:
quelle
sudo -u mongodb mongod -f /etc/mongod.conf --repair
unter Ubuntu 14.Starten Sie zuerst Ihren Mongo-Server mit
Öffnen Sie dann ein anderes Terminalfenster und öffnen Sie die Shell
quelle
Überprüfen Sie auch, ob Ihre Root-Partition über genügend Speicherplatz verfügt, um mongod zu starten.
Beim Start von Mongod sehen Sie Folgendes:
quelle
Versuchen Sie unter Ubuntu Folgendes:
quelle
Dies kann eine Kombination aus $ PATH und Berechtigungsproblem sein.
Versuchen Sie die folgenden Schritte:
Aktualisieren Sie Ihre $ PATH-Variable so, dass sie auf Ihre MongoDB-Bin-Datei verweist. In meinem Fall installiere Brew MongoDB in diesem Ordner:
Gehen Sie wie folgt vor, um Ihre Variable $ PATH zu aktualisieren:
Drücken Sie dann 'i', um Text in Vi einzufügen, und hängen Sie den MongoDB-Pfad an das Ende der 'path'-Datei an und starten Sie das Terminal neu.
Verwenden Sie 'Esc: w q', um den Vi-Editor zu speichern und zu verlassen.
Verwenden Sie echo, um Ihre Pfadvariable anzuzeigen:
Versuchen Sie nun, die Mongo-Version zu überprüfen. Wenn Sie folgen, sind Sie auf dem richtigen Weg!
Jetzt müssen wir das Datenbankverzeichnis erstellen. Ich habe den in MongoDB-Dokumenten vorgeschlagenen Standardspeicherort '/ data / db' verwendet. Ich habe auch ein Protokollverzeichnis erstellt, um Berechtigungsprobleme zu vermeiden, während Mongo versucht, Protokolle zu erstellen. Ändern Sie den Besitzer und das wird den Job machen.
Jetzt erstellen wir eine Standardkonfigurationsdatei für MongoDB, die zum ersten Mal bereitgestellt wird, wenn wir den Befehl 'mongod' ausführen. Jetzt möchte ich auch darauf hinweisen, dass 'mongod' einen Dienst startet, der auf eingehende Datenverbindungen wartet. Dies ist ähnlich, wenn '$ service mysqld start' ausgeführt wird. Lassen Sie uns fortfahren und die Konfigurationsdatei erstellen. Bitte beachten Sie, dass ich eine sehr einfache Konfigurationsdatei erstellt habe. Sie können jedoch viele andere Variablen hinzufügen, um MongoDB zu konfigurieren. Dies ist das erste Mal, dass ich mit MongoDB spiele, also weiß ich genau so viel, wie ich in MongoDB-Dokumenten gelesen habe! Ich habe 'mongodb.conf' erstellt.
Fügen Sie Folgendes hinzu:
Beachten Sie, dass der Standardport für den MongoDB-Server 27017 ist. Verwenden Sie Ihren eigenen Pfad für den Datenbank- und Protokollpfad, den Sie in Schritt 5 erstellt haben. Vergessen Sie nicht, die conf-Datei zu schließen und zu speichern.
Jetzt können wir unseren MongoDB-Dienst starten. Öffnen Sie zwei Instanzen von Terminal. Geben Sie in Terminal 1 Folgendes ein:
Wenn Sie die obige Meldung erhalten, wissen Sie, dass Sie Ihren Mongod-Dienst erfolgreich gestartet haben.
Um eine Verbindung herzustellen, geben Sie in Terminal 2 Folgendes ein:
Ignorieren Sie die Warnungen, aber Sie sind erfolgreich mit der 'Test'-Datenbank verbunden! Cool!
Das ist alles. Ich habe diese Lösung angewendet, als ich zum ersten Mal versuchte, eine Kopie von MongoDB auf meinem Mac zu installieren. Sehen Sie, ob dies auch Ihnen hilft.
Ausführliche Informationen finden Sie hier - http://arcanebytes.com/2013/09/03/mongodb-installation-on-mac-os-x/#comment-1036112094 .
Ich hoffe, es hilft!
Prost, Chinmay
quelle
Ich habe dieses Problem unter Ubuntu 12.04 durch die folgenden Schritte gelöst:
1) sudo rm / var / log / mongodb
2) sudo rm / var / lib / mongodb
3) Ich habe mongo entfernt und dann erneut installiert.
4) sudo service mongodb restart
und alles ist gut
quelle