it-swarm.com.de

Errr 'mongo.js: L112 Fehler: Verbindung zum Server 127.0.0.1:27017 unter src/mongo/Shell/mongo.js: L112' konnte nicht hergestellt werden

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.

32
user1992275

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
34
ccma

Wenn Sie Ubuntu ausführen, liegt ein Problem mit dem Besitz des Ordners vor.

Führen Sie diese Befehle aus:

  1. Beenden Sie den MongoDB-Dienst

    Sudo service mongodb stop
    
  2. Entfernen Sie die MongoDB-Sperrdatei

    Sudo rm /var/lib/mongodb/mongod.lock
    
  3. Ändern Sie den Besitz von root in den MongoDB-Pfad

    Sudo chown -R mongodb:mongodb /var/lib/mongodb/
    
  4. Starten Sie den MongoDB-Dienst

    Sudo service mongodb start
    
  5. Testen Sie die Mongo-Anwendung

    mongo
    

Dann können Sie erfolgreich ausführen (hoffe ich).

Referenz: eine Antwort am Stack Exchange-Standort Database Administrators an Fehler: Verbindung zum Server konnte nicht hergestellt werden. 127.0.0.1:27017 src/mongo/Shell/mongo.js: 91 beim Ändern des mongodb-Datenverzeichnisses !

78
Sumit Ramteke

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 .

16
poorva

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.

3
lkrzysiak

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. 

2
modon

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!

2
edelans

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

0
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

aus MongoDB-Dokumente

0
gittinOld