Ich habe Mongodb und die PHP-Treiber auf meinem Unix-Server installiert.
Meine Frage ist, wie kann ich feststellen, ob Mongodb läuft? Gibt es eine einfache Befehlszeilenabfrage, um den Status zu überprüfen? Wenn ich es einmal von der Shell aus starte, läuft es weiter, wenn ich die Shell verlasse (dies scheint nicht der Fall zu sein). Wie kann ich die Mongodb-Verbindung dauerhaft machen und beim Neustart des Servers automatisch starten?
Ich kann rennen:
-bash-3.2 $ su
Passwort:
[root @ xxx] # cd / var / lib
[root @ xxx] # ./mongodb-linux-i686-1.6.5/bin/mongod
./mongodb-linux-i686-1.6. 5 / bin / mongod - Hilfe für Hilfe und Startoptionen
Mi Feb 23 08:06:54 MongoDB wird gestartet: pid = 7271 port = 27017 dbpath = / data / db / 32-bit** HINWEIS: Wenn Sie MongoDB 32-Bit verwenden, sind Sie auf ca. 2 Gigabyte Daten beschränkt
** siehe http://blog.mongodb.org/post/137788967/32-bit-limitations** WARNUNG: Sie laufen in OpenVZ. Dies ist bekanntermaßen kaputt !!!
Mi 23 Feb 08:06:54 db version v1.6.5, pdfile version 4.5
Mi Feb 23 08:06:54 git version: 0eb017e9b2828155a67c5612183337b89e12e291
Mi Feb 23 08:06:54 sys info: Linux domU-12-31-39-01 -70-B4 2.6.21.7-2.fc8xen # 1 SMP Fr
15 Feb 12:39:36 EST 2008 i686 BOOST_LIB_VERSION = 1_37
Mi 23 Feb 08:06:54 [initandlisten] Warten auf Verbindungen auf Port 27017
Mi 23 Feb 08: 06:54 [websvr] Webadministrationsschnittstelle überwacht Port 28017
Wenn ich eine separate Shell öffne, kann ich mich dann mit mongodb verbinden:
-bash-3.2 $ cd / var / lib
-bash-3.2 $ ./mongodb-linux-i686-1.6.5/bin/mongo
MongoDB-Shell-Version: 1.6.5
Verbindung zu: test
db.foo.find ()
{" _id ": ObjectId (" 4d63d7d3eb95985ab19c8feb ")," a ": 1}
Wenn ich jedoch die ursprüngliche Shell schließe, kann ich keine Verbindung herstellen:
-bash-3.2 $ cd / var / lib
-bash-3.2 $ ./mongodb-linux-i686-1.6.5/bin/mongo
MongoDB-Shell-Version: 1.6.5
Verbindung zu: test
Mi Feb 23 08:25:10 Fehler : Verbindung zum Server 127.0.0.1 konnte nicht hergestellt werden (anon): 1154
Ausnahme: Verbindung fehlgeschlagen
pgrep mongo
.Ich finde:
Um viel konsequenter zu sein. Der zurückgegebene Wert kann verwendet werden, um zu ermitteln, wie viele Mongod-Instanzen ausgeführt werden
quelle
Mit diesem schnellen NC-Trick können Sie schnell überprüfen, ob Mongodb ausgeführt wird.
Der obige Befehl setzt voraus, dass Sie ihn auf dem Standardport von localhost ausführen.
Zum automatischen Starten sollten Sie sich diesen Thread ansehen .
quelle
27017 open
oderConnection refused
.das sollte gut funktionieren ...
quelle
Um den aktuellen Betriebsstatus von mongodb zu überprüfen, verwenden Sie:
sudo service mongodb status
quelle
Richtig, das Schließen der Shell stoppt MongoDB. Versuchen Sie, das
--fork
Befehlszeilenargument für den Mongod-Prozess zu verwenden, der stattdessen als Daemon ausgeführt wird. Ich bin kein Unix-Guru, aber ich bin mir sicher, dass es eine Möglichkeit geben muss, ihn automatisch zu starten, wenn die Maschine hochfährt.z.B
Lesen Sie die vollständige Dokumentation zum Starten und Stoppen von Mongo .
quelle
[root@xxx lib]# ./mongodb-linux-i686-1.6.5/bin/mongod --fork --logpath /var/log/m ongodb.log --logappend all output going to: /var/log/mongodb.log forked process: 7518
aber immer noch, wenn ich die Shell schließe und eine neueConnect failed
&
und jetzt kann ich die Prozess-ID nicht finden.ps -e | grep mongod
Mit dem folgenden Befehl können Sie den MongoDB-Status überprüfen, z. B.:
sudo service MongoDB status
Der Status des MongoDB-Dienstes wird wie im Screenshot angezeigt:quelle
Wahrscheinlich, weil ich meinen Entwicklungsserver nicht richtig heruntergefahren habe oder aus einem ähnlichen Grund. Um das Problem zu beheben, entfernen Sie die Sperre und starten Sie den Server mit:
sudo rm /var/lib/mongodb/mongod.lock ; sudo start mongodb
quelle
Ich weiß, dass dies für PHP ist, aber ich habe hier nach einer Lösung für Knoten gesucht. Mit Mongoskin:
Mit anderen Treibern können Sie versuchen, eine Verbindung herzustellen. Wenn dies fehlschlägt, wissen Sie, dass der Mongo-Server ausgefallen ist. Mongoskin muss tatsächlich einen Anruf tätigen (wie Ping), weil es sich träge verbindet. Für PHP können Sie die Try-to-Connect-Methode verwenden. Mach ein Skript!
PHP:
quelle