Est mongodb?
J'ai installé mongodb et le php pilotes sur mon serveur unix.
Ma question est comment puis-je savoir si mongodb est en cours d'exécution? Est-il une simple requête de ligne de commande pour vérifier l'état? Si je le démarre une fois à partir du shell, il sera de continuer à fonctionner si je quitter le shell (ce qui ne semble pas être le cas). Comment puis-je faire la mongodb connexion persistante et de démarrage automatique sur le serveur reboot?
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 --help pour obtenir de l'aide et des options de démarrage
Wed Feb 23 08:06:54 MongoDB départ : pid=7271 port=27017 dbpath=/data/db/32 bits** REMARQUE: lors de l'utilisation de MongoDB 32 bits, vous êtes limité à 2 gigaoctets de données
** voir http://blog.mongodb.org/post/137788967/32-bit-limitations* * * * AVERTISSEMENT: Vous êtes en cours d'exécution dans OpenVZ. Ceci est connu pour être cassé!!!
Wed Feb 23 08:06:54 db version v1.6.5, pdfile version 4.5
Wed Feb 23 08:06:54 version git: 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
Fév 15 12:39:36 est 2008 i686 BOOST_LIB_VERSION=1_37
Wed Feb 23 08:06:54 [initandlisten] en attente de connexion sur le port 27017
Wed Feb 23 08:06:54 [websvr] web interface d'admin à l'écoute sur le port 28017
Si j'ouvre un autre shell que je peux ensuite vous 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
connectez-vous à: test
db.foo.find()
{ "_id" : ObjectId("4d63d7d3eb95985ab19c8feb"), "une" : 1 }
Cependant, si je ferme la première coquille, 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
connectez-vous à: test
Wed Feb 23 08:25:10 Erreur: impossible de se connecter au serveur 127.0.0.1 (anon):1154
exception: échec de la connexion
Vous devez vous connecter pour publier un commentaire.
vérifier avec soit:
ou
ou
pour voir si mongod est en cours d'exécution (vous devez être root pour ce faire, de préfixe ou de tout avec
sudo
). Veuillez noter que le 'grep' commande toujours aussi apparaître comme un processus distinct.consultez le fichier journal /var/log/mongo/mongo.journal pour voir si il y a des problèmes signalés
pgrep mongo
.mongod status
je suis "commande non Valide: le statut de"J'ai trouver:
À être beaucoup plus cohérente. La valeur retournée peut être utilisé pour détecter le nombre d'instances de mongod il y a l'exécution de
Pour vérifier rapidement si mongodb est en cours d'exécution, ce mini-nc astuce vous permettra de savoir.
La commande ci-dessus suppose que vous exécutez sur le port par défaut sur localhost.
Pour l'auto-démarrage, vous voudrez peut-être regarder à ce fil.
27017 open
, ou d'autreConnection refused
.Correcte, la fermeture de la coquille va arrêter de MongoDB. Essayez d'utiliser le
--fork
ligne de commande arg pour la mongod processus qui permet de courir 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 d'obtenir ensuite pour démarrer automatiquement lorsque la machine démarre.par exemple
Découvrez l'intégralité de la documentation sur Démarrage et Arrêt de Mongo.
[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 toujours lors de la fermeture de la coquille et en ouvrir un nouveau je reçoisConnect failed
&
, et maintenant je ne peux pas trouver l'id du processus.ps -e | grep mongod
cela devrait fonctionner...
À l'état de fonctionnement de mongodb utilisation:
sudo service mongodb status
Probablement parce que je n'ai pas arrêter mon serveur de dev correctement ou une raison similaire.
Pour le corriger, supprimer le verrou et démarrer le serveur:
sudo rm /var/lib/mongodb/mongod.lock ; sudo start mongodb
Je sais que c'est pour le faire en php, mais je suis ici à la recherche d'une solution pour le nœud. À l'aide de mongoskin:
Avec d'autres pilotes, vous pouvez tenter de faire un lien et si elle échoue, vous connaissez les mongo du serveur vers le bas. Mongoskin doit réellement faire des appel (comme le ping), car il se connecte paresseusement. Pour php, vous pouvez utiliser le essayez-à-méthode de connexion. Faire un script!
PHP: