J'ai installé mongodb et les pilotes php sur mon serveur unix.
Ma question est de savoir comment puis-je savoir si mongodb fonctionne? Existe-t-il une simple requête en ligne de commande pour vérifier l'état? Si je le lance une fois depuis le shell, il continuera à fonctionner si je quitte le shell (cela ne semble pas être le cas). Comment puis-je rendre la connexion mongodb persistante et démarrer automatiquement au redémarrage du serveur?
Je peux courir:
-bash-3.2 $ su
Mot de passe:
[root @ xxx] # cd / var / lib
[root @ xxx] # ./mongodb-linux-i686-1.6.5/bin/mongod
./mongodb-linux-i686-1.6. 5 / bin / mongod - aide pour l'aide et les options de démarrage
Mer 23 février 08:06:54 Démarrage de MongoDB: pid = 7271 port = 27017 dbpath = / data / db / 32-bit** REMARQUE: lorsque vous utilisez MongoDB 32 bits, vous êtes limité à environ 2 gigaoctets de données
** voir http://blog.mongodb.org/post/137788967/32-bit-limitations** AVERTISSEMENT: vous utilisez OpenVZ. Ceci est connu pour être cassé !!!
Mer 23 février 08:06:54 db version v1.6.5, version pdfile 4.5
Mer 23 février 08:06:54 version git: 0eb017e9b2828155a67c5612183337b89e12e291
mer février 23 08:06:54 sys info: Linux domU-12-31-39-01 -70-B4 2.6.21.7-2.fc8xen # 1 SMP Ven
15 février 12:39:36 EST 2008 i686 BOOST_LIB_VERSION = 1_37
Mer 23 février 08:06:54 [initandlisten] en attente de connexions sur le port 27017
Mer 23 février 08: 06:54 [websvr] interface d'administration Web écoutant sur le port 28017
Si j'ouvre un shell séparé, je peux alors me connecter à mongodb:
-bash-3.2 $ cd / var / lib
-bash-3.2 $ ./mongodb-linux-i686-1.6.5/bin/mongo
Version du shell MongoDB: 1.6.5
connexion à: test
db.foo.find ()
{" _id ": ObjectId (" 4d63d7d3eb95985ab19c8feb ")," a ": 1}
Cependant, si je ferme le shell initial, je ne peux pas me connecter:
-bash-3.2 $ cd / var / lib
-bash-3.2 $ ./mongodb-linux-i686-1.6.5/bin/mongo
Version du shell MongoDB: 1.6.5
connexion à: test
mercredi 23 février 08:25:10 Erreur : impossible de se connecter au serveur 127.0.0.1 (anon):
exception 1154 : échec de la connexion
pgrep mongo
.Je trouve:
Pour être beaucoup plus cohérent. La valeur renvoyée peut être utilisée pour détecter le nombre d'instances de mongod en cours d'exécution
la source
Pour vérifier rapidement si mongodb fonctionne, cette astuce nc rapide vous le fera savoir.
La commande ci-dessus suppose que vous l'exécutez sur le port par défaut sur localhost.
Pour le démarrer automatiquement, vous voudrez peut-être consulter ce fil .
la source
27017 open
, ou bienConnection refused
.cela devrait fonctionner correctement ...
la source
Pour vérifier l'état de fonctionnement actuel de mongodb, utilisez:
sudo service mongodb status
la source
Correct, la fermeture du shell arrêtera MongoDB. Essayez d'utiliser la
--fork
ligne de commande arg pour le processus mongod qui le fait fonctionner comme un démon à la place. Je ne suis pas un gourou Unix, mais je suis sûr qu'il doit y avoir un moyen de le faire démarrer automatiquement lorsque la machine démarre.par exemple
Consultez la documentation complète sur le démarrage et l'arrêt de Mongo .
la source
[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
mais quand je ferme le shell et en ouvre un nouveau, je reçoisConnect failed
&
, et maintenant je ne trouve pas le processid.ps -e | grep mongod
Vous pouvez utiliser la commande ci-dessous, pour vérifier l'état de MongoDB, par exemple:
sudo service MongoDB status
qui affiche l'état du service MongoDB comme sur la capture d'écran:la source
Probablement parce que je n'ai pas arrêté mon serveur de développement correctement ou pour une raison similaire. Pour résoudre ce problème, supprimez le verrou et démarrez le serveur avec:
sudo rm /var/lib/mongodb/mongod.lock ; sudo start mongodb
la source
Je sais que c'est pour php, mais je suis arrivé ici à la recherche d'une solution pour node. Utilisation de mongoskin:
Avec d'autres pilotes, vous pouvez essayer d'établir une connexion et en cas d'échec, vous savez que le serveur mongo est en panne. Mongoskin doit réellement passer un appel (comme ping) car il se connecte paresseusement. Pour php, vous pouvez utiliser la méthode try-to-connect. Faites un script!
PHP:
la source