it-swarm.com.de

Verbindung zum Server 127.0.0.1 Shell / mongo.js konnte nicht hergestellt werden

wenn ich mongodb in meinem Ubuntu einrichte, versuche ich: ./mongo es diesen Fehler zu zeigen:

 couldn't connect to server 127.0.0.1 Shell/mongo.js

was kann ich also tun ,

vielen Dank

87
zjm1126
  • 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 die Dateien in/var/lib/mongodb /, die zum Ausführen des mongodb-Dämons erforderlich sind. Wenn der Dämon daher versucht, später als mongodb-Benutzer ausgeführt zu werden, hat er keine Startberechtigungen . In diesem Fall wird die folgende Fehlermeldung angezeigt: Sperrdatei für den Sperrpfad kann nicht erstellt/geöffnet werden: /var/lib/mongodb/mongod.lock Fehlernr .: 13 Berechtigung verweigert, wird beendet.
  • Unter Ubuntu müssen Sie die Konfigurationsdatei /etc/mongodb.conf mit dem Flag -f angeben. Andernfalls werden die Datendateien an der falschen Stelle gesucht und der folgende Fehler wird angezeigt: dbpath (/ data/db /) existiert nicht und wird beendet.
124
Sudo rm /var/lib/mongodb/mongod.lock   
Sudo -u mongodb mongod -f /etc/mongodb.conf --repair 
Sudo service mongodb start

Hier ist alles, manchmal dauert es eine Weile, um Mongo zu starten, nachdem diese Operationen ausgeführt wurden.

32
Rubyrider

Ich versuche $ mongod zu rennen

Wenn du einen Fehler wie

MongoDB Shell version: 2.0.5
connecting to: test
Fri Jun  1 11:20:33 Error: 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
Fri Jun  1 11:24:47 [initandlisten] MongoDB starting : pid=53452 port=27017 dbpath=/data/db/ 64-bit Host=hisham-agil.local
Fri Jun  1 11:24:47 [initandlisten] db version v2.0.5, pdfile version 4.5
Fri Jun  1 11:24:47 [initandlisten] git version: nogitversion
Fri Jun  1 11:24:47 [initandlisten] build info: Darwin gamma.local 11.3.0 Darwin Kernel Version 11.3.0: Thu Jan 12 18:48:32 PST 2012; root:xnu-1699.24.23~1/RELEASE_I386 i386 BOOST_LIB_VERSION=1_49
Fri Jun  1 11:24:47 [initandlisten] options: {}
Fri Jun  1 11:24:47 [initandlisten] exception in initAndListen: 10296 dbpath (/data/db/) does not exist, terminating
Fri Jun  1 11:24:47 dbexit: 
Fri Jun  1 11:24:47 [initandlisten] shutdown: going to close listening sockets...
Fri Jun  1 11:24:47 [initandlisten] shutdown: going to flush diaglog...
Fri Jun  1 11:24:47 [initandlisten] shutdown: going to close sockets...
Fri Jun  1 11:24:47 [initandlisten] shutdown: waiting for fs preallocator...
Fri Jun  1 11:24:47 [initandlisten] shutdown: lock for final commit...
Fri Jun  1 11:24:47 [initandlisten] shutdown: final commit...
Fri Jun  1 11:24:47 [initandlisten] shutdown: closing all files...
Fri Jun  1 11:24:47 [initandlisten] closeAllFiles() finished
Fri Jun  1 11: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.

** Siehe ähnliche Frage-- Fehlermeldung "Fehler: Verbindung zum Server 127.0.0.1 Shell/mongo.js konnte nicht hergestellt werden" & beim Versuch, mongodb unter Mac OSX Lion auszuführen

21
boulder_ruby

Dies ist eigentlich kein Fehler ... Was hier passiert, ist, dass Mongo sich auf einen Daemon stützt, um den lokalen Datenbankserver zu betreiben, also um den mongo server in deiner Shell musst du zuerst den mongo service starten.

Für Fedora Linux (welches ist die Distribution, die ich benutze) müssen Sie diese Befehle ausführen:

1 Sudo service mongod start
2 mongo

Und da hast du es! Der Server wird ausgeführt. Wenn Sie möchten, dass der Mongo-Dienst beim Systemstart gestartet wird, 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 mongo eingeben, um den Server zu starten, aber das ist so ziemlich das Problem muss man erst den SERVICE starten und dann den SERVER :)

P.S. Die Befehle, die ich gepostet habe, funktionieren möglicherweise auch auf anderen Linux-Distributionen, nicht nur in Fedora ... Falls nicht, müssen Sie je nach verwendeter Distribution einige Wörter anpassen ;)

20
Jmlevick

Ich habe das gleiche Problem, als ich versucht habe, Mongo zu installieren. Ich habe Fehler als,

Fehler

"Error: couldn't connect to server 127.0.0.1 Shell/mongo.js:84"

Lösung:

Zuerst installiere Mongod mit:

Sudo apt-get install mongodb-server

Dann tippe

mongod --dbpath /mongo/db

Dann

Sudo rm /var/lib/mongodb/mongod.lock

Dann

Sudo -u mongodb mongod -f /etc/mongodb.conf  --repair

Danke dir

9

Sie müssen die Sperrdatei mongod.lock Oder /var/lib/mongodb/mongod.lock Auf Ubuntu löschen, dann müssen Sie zuerst mongod.exe Oder service mongodb start Auf Ubuntu ausführen und dann mongo.exe oder mongo auf Ubuntu.

6
user1391225

Zuerst müssen Sie sicherstellen, dass alle Dateien und Verzeichnisse in Ihrem/var/lib/mongodb/-Ordner (oder in dem Ordner, auf den dbpath zeigt) dem mongodb-Benutzer und der mongodb-Gruppe gehören.

cd /var/lib/mongodb/
Sudo chown mongodb filename.*
Sudo chgrp mongodb filename.*
Sudo chown -R mongodb directory
Sudo chgrp -R mongodb directory

(Ersetzen Sie Dateiname und Verzeichnis durch ihre jeweiligen Namen)

Dann können Sie die Sperre aufheben, die Datenbank reparieren und den Daemon neu starten, wie bereits erwähnt:

Sudo rm /var/lib/mongodb/mongod.lock   
Sudo -u mongodb mongod -f /etc/mongodb.conf --repair 
Sudo service mongodb start
5
Tom Desair

Entweder läuft Ihr Mongod nicht (überprüfen Sie mit dem Befehl "ps"), oder er lauscht auf einer externen IP-Adresse und nicht auf localhost. Überprüfen Sie daher zuerst die Prozessliste, ob 'mongod' ausgeführt wird. Wenn ja, überprüfen Sie mit "netstat -nap" den entsprechenden 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).

5
Andreas Jung

Starten Sie zuerst Ihren Mongo Server von

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

Users-MacBook-Pro:csv1 Admin$ mongo
5
Tarun Gupta

Überprüfen Sie auch, ob Ihre Root-Partition über genügend Speicherplatz verfügt, um mongod zu starten.

df -h /

Beim Start von Mongod werden Sie so etwas sehen:

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...
2
DmitrySandalov

Versuchen Sie unter Ubuntu Folgendes:

Sudo invoke-rc.d mongodb start
1
Victor

Ich habe dieses Problem unter Ubuntu 12.04 folgendermaßen gelöst:
1) Sudo rm/var/log/mongodb
2) Sudo rm/var/lib/mongodb
3) Ich habe mongo entfernt und dann wieder installiert
4) Neustart des Sudo-Dienstes

und alles ist gut

1
Almas

Dies kann eine Kombination aus $ PATH und Berechtigungsproblem sein.

Probieren Sie die folgenden Schritte aus:

Aktualisieren Sie Ihre Variable $ PATH so, dass sie auf Ihre MongoDB-Bin-Datei verweist. In meinem Fall installiere ich MongoDB in diesen Ordner:

/usr/local/Cellar/mongodb/2.4.6/

Gehen Sie folgendermaßen vor, um Ihre $ PATH-Variable zu aktualisieren:

$ Sudo vi /etc/paths

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. Starten Sie das Terminal neu.

/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

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.

$ 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. 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 beachte, 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, was ich in MongoDB-Dokumenten gelesen habe. Ich habe die Datei "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 lautet. Verwenden Sie Ihren eigenen Pfad für dbpath und logpath, 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. 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 die Meldung oben angezeigt wird, 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:
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 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

1
Chinmay