168 votes

Est-ce que mongodb fonctionne ?

J'ai installé Mongodb et les pilotes PHP sur mon serveur Unix.

Ma question est la suivante : comment puis-je savoir si Mongodb est en cours d'exécution ? Existe-t-il une requête simple en ligne de commande pour vérifier le statut ? Si je le lance une fois à partir du shell, continuera-t-il à fonctionner si je quitte le shell (cela ne semble pas être le cas) ? Comment puis-je rendre la connexion Mongodb persistante et la lancer automatiquement au redémarrage du serveur ?

Je peux courir :

-bash-3.2$ su  
Password:  
[root@xxx]# cd /var/lib  
[root@xxx]# ./mongodb-linux-i686-1.6.5/bin/mongod  
./mongodb-linux-i686-1.6.5/bin/mongod --help for help and startup options  
Wed Feb 23 08:06:54 MongoDB starting : pid=7271 port=27017 dbpath=/data/db/ 32-bit  

** NOTE: when using MongoDB 32 bit, you are limited to about 2 gigabytes of data  
**       see http://blog.mongodb.org/post/137788967/32-bit-limitations  

** WARNING: You are running in OpenVZ. This is known to be broken!!!  

Wed Feb 23 08:06:54 db version v1.6.5, pdfile version 4.5  
Wed Feb 23 08:06:54 git version: 0eb017e9b2828155a67c5612183337b89e12e291  
Wed Feb 23 08:06:54 sys info: Linux domU-12-31-39-01-70-B4 2.6.21.7-2.fc8xen #1 SMP Fri  
Feb 15 12:39:36 EST 2008 i686 BOOST_LIB_VERSION=1_37  
Wed Feb 23 08:06:54 [initandlisten] waiting for connections on port 27017  
Wed Feb 23 08:06:54 [websvr] web admin interface listening on 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  
MongoDB shell version: 1.6.5  
connecting to: 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  
MongoDB shell version: 1.6.5  
connecting to: test  
Wed Feb 23 08:25:10 Error: couldn't connect to server 127.0.0.1 (anon):1154  
exception: connect failed

13voto

magma Points 115

Pour vérifier l'état de fonctionnement actuel de mongodb, utilisez : sudo service mongodb status

8voto

AdaTheDev Points 53358

Correct, la fermeture du shell arrêtera MongoDB. Essayez d'utiliser l'option --fork pour le processus mongod qui le fait fonctionner comme un démon à la place. Je ne suis pas un gourou d'Unix, mais je suis sûr qu'il doit y avoir un moyen de le faire démarrer automatiquement au démarrage de la machine.

par exemple

mongod --fork --logpath /var/log/mongodb.log --logappend

Consultez la documentation complète sur Démarrage et arrêt de Mongo .

5voto

Suneth Points 41

Vous pouvez utiliser la commande ci-dessous, pour vérifier l'état de MongoDB, par exemple : sudo service MongoDB status qui affiche le statut du service MongoDB comme dans la capture d'écran :

MongoDB status

2voto

2voto

Probablement parce que je n'ai pas fermé mon serveur de développement correctement ou pour une raison similaire. Pour le réparer, enlevez le verrou et démarrez le serveur avec : sudo rm /var/lib/mongodb/mongod.lock ; sudo start mongodb

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X