Ich kann keine Verbindung zu MongoDB herstellen. In Ubuntu funktioniert es, aber ich arbeite jetzt in CentOS . Dies ist die Fehlermeldung:
MongoDB-Shell-Version: 2.4.2
Verbindung zu: Test
Sa Apr 20 07: 22: 09.390 JavaScript-Ausführung fehlgeschlagen: Fehler: Es konnte keine Verbindung zum Server 127.0.0.1:27017 unter src/mongo/Shell/mongo.js: L112 hergestellt werden
Ausnahme: Verbindung fehlgeschlagen
Ich habe versucht, die mongod.lock
-Datei zu entfernen, aber es funktioniert nicht.
Versuchen Sie, /var/lib/mongodb/mongod.lock zu entfernen und den mongdo-Dienst neu zu starten
Sudo rm /var/lib/mongodb/mongod.lock
Sudo service mongodb restart
Wenn Sie Ubuntu ausführen, liegt ein Problem mit dem Besitz des Ordners vor.
Führen Sie diese Befehle aus:
Beenden Sie den MongoDB-Dienst
Sudo service mongodb stop
Entfernen Sie die MongoDB-Sperrdatei
Sudo rm /var/lib/mongodb/mongod.lock
Ändern Sie den Besitz von root in den MongoDB-Pfad
Sudo chown -R mongodb:mongodb /var/lib/mongodb/
Starten Sie den MongoDB-Dienst
Sudo service mongodb start
Testen Sie die Mongo-Anwendung
mongo
Dann können Sie erfolgreich ausführen (hoffe ich).
Tato metoda funguje pouze v případě, že chcete opravit datové soubory bez zachování původních souborů. Chcete-li zjistit, kde se nachází dbpath, použijte
vim /etc/mongodb.conf
Zkontrolujte volbu dbpath=
.
(Mám dbpath=/var/lib/mongodb
.)
Výchozí hodnota: /data/db/
Typická umístění zahrnují /srv/mongodb
, /var/lib/mongodb
nebo /opt/mongodb
.
Nahraďte /var/lib/mongodb vaší dbpath
Sudo rm /var/lib/mongodb/mongod.lock
Sudo mongod --dbpath /var/lib/mongodb/ --repair
Sudo mongod --dbpath /var/lib/mongodb/ --journal
(Ujistěte se, že necháváte terminál spuštěn, ve kterém jste spustili výše uvedené řádkyCtrl+Cnebo jej ukončete.) Zadejte příkaz pro spuštění mongo
nyní v jiném okně.
Doufám, že to bude fungovat pro vás! Pro ty, kteří chtějí opravit vašé datové soubory při zachování původních souborů, also mongo
recovery .
Ich hatte das gleiche Problem in der Vergangenheit. In meinem Fall hatte ich nicht genügend freien Speicherplatz für Journaldateien. Durch die Freigabe von Speicherplatz wurde das Problem gelöst.
Ich hatte das gleiche Problem. Der Lauf des Mongods in der Ablage (wo Sie Ihren Mongodb installiert haben) hat für mich funktioniert. Ich hatte auch nicht genügend Platz.
Ich weiß nicht, warum die Antwort von @lkrzysiak abgelehnt wurde: es hat für mich funktioniert! Zu wenig freier Speicherplatz kann die Ursache dieses Fehlers sein, den ich auch erhalten habe. Siehe die Protokolle, die ich erhielt:
Mon Aug 12 17:02:59.159 [initandlisten] recover : no journal files present, no recovery needed
Mon Aug 12 17:02:59.159 [initandlisten]
Mon Aug 12 17:02:59.159 [initandlisten] ERROR: Insufficient free space for journal files
Mon Aug 12 17:02:59.159 [initandlisten] Please make at least 3379MB available in /var/lib/mongodb/journal or use --smallfiles
Mon Aug 12 17:02:59.159 [initandlisten]
Mon Aug 12 17:02:59.159 [initandlisten] exception in initAndListen: 15926 Insufficient free space for journals, terminating
Mon Aug 12 17:02:59.159 dbexit:
Mon Aug 12 17:02:59.159 [initandlisten] shutdown: going to close listening sockets...
Nach etwas Reinigung, um etwas Platz zu schaffen, funktionierte es wie ein Zauber!
Es könnte sich um eine Kombination aus $ PATH und Permission handeln.
Versuchen Sie die folgenden Schritte:
Aktualisieren Sie Ihre $ PATH-Variable, um auf Ihre MongoDB-Bin-Datei zu verweisen. In meinem Fall installiere MongoDB in diesem Ordner:
/usr/local/Cellar/mongodb/2.4.6/
Um Ihre $ PATH-Variable zu aktualisieren, gehen Sie wie folgt vor:
$ Sudo vi /etc/paths
Drücken Sie dann "i", um Text in Vi einzufügen und den MongoDB-Pfad an das Ende der "path" -Datei anzuhängen und das Terminal neu zu starten.
/usr/local/Cellar/mongodb/2.4.6/bin
Verwenden Sie "Esc: w q", um den Vi-Editor zu speichern und zu beenden.
Verwenden Sie echo, um Ihre Pfadvariable anzuzeigen:
$ echo $PATH
/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/Cellar/mongodb/2.4.6/bin
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
Nun 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. Besitzerwechsel und das erledigt die Arbeit.
$ Sudo mkdir /data/db
$ Sudo mkdir /data/log
$ whoami
username
$ chown -R username /data
Jetzt erstellen wir eine Standardkonfigurationsdatei für MongoDB, die zum ersten Mal bereitgestellt wird, wenn wir den Befehl 'mongod' ausführen. Nun 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. Erstellen Sie nun die Konfigurationsdatei. 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, daher weiß ich genau so viel wie ich in den MongoDB-Dokumenten gelesen habe. Ich habe 'mongodb.conf' erstellt.
$ Sudo vi /etc/mongodb.conf
Folgendes hinzufügen:
fork = true
port = 27017
quiet = true
dbpath = /data/db
logpath = /data/log/mongod.log
logappend = true
journal = true
Beachten Sie, dass der Standardport für den MongoDB-Server 27017 ist. Verwenden Sie Ihren eigenen Pfad für Datenbankpfad und Protokollpfad, die Sie in Schritt 5 erstellt haben. Vergessen Sie nicht, die Conf-Datei zu schließen und zu speichern.
Jetzt können wir unseren MongoDB-Service starten. Öffnen Sie zwei Instanzen von Terminal.In Terminal 1 geben Sie 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 jetzt 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:
Tue Sep 3 16:55:43.527 [initandlisten]
Tue Sep 3 16:55:43.527 [initandlisten] ** WARNING: soft rlimits too low. Number of 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 das Ihnen auch hilft.
Für detaillierte Post können Sie hier gehen - http://arcanebytes.com/2013/09/03/mongodb-installation-on-mac-os-x/#comment-1036112094 .
Ich hoffe, es hilft!
Prost, Chinmay
Diese Fehlermeldung wird auch angezeigt, wenn Sie den Standardport für MongoDB in /etc/mongo.conf geändert haben
Für die Verbindung über die Shell verwenden Sie in diesem Fall: -
$mongo 127.0.0.1:your_new_port_number
OR
$mongo -u <user> -p <pass> --Host <Host> --port your_new_port_number