25 votes

Comment arrêter le serveur mongodb sous Windows ?

J'utilise la pile nginx/PHP/MongoDB et j'essaie de configurer mon environnement de développement sous Windows en créant deux fichiers batch.

start.bat

cd C:\www\nginx
start nginx
cd C:\www\php
start php-cgi.exe -b 127.0.0.1:9000
cd C:\www\mongodb
start mongod

stop.bat

cd C:\www\nginx
nginx -s quit
cd C:\www\php
taskkill /F /IM php-cgi.exe
cd C:\www\mongodb
mongo --eval "use admin; db.shutdownServer(); quit"  # this doesn't work
mongo --eval stop_mongod.js  # this doesn't work either

L'utilisation de taskkill pour arrêter mongod n'est pas une option, car cela pourrait entraîner une corruption des données. Des suggestions ?

0 votes

Vous pouvez l'arrêter manuellement en utilisant "services.msc" à partir de cmd et en sélectionnant le service mongodb dans cette liste et en l'arrêtant.

36voto

JulienD Points 151

Je ne suis pas sûr que ce soit une bonne façon de faire, l'envoi d'un kill pourrait probablement endommager votre serveur mongo, et vous devrez réparer votre base de données après en cas de crash.

Peut-être avez-vous déjà résolu cette question mais voici ce que je fais :

mongo admin --eval "db.shutdownServer()"

Je suis automatiquement connecté sur la collection de l'administrateur et ensuite, je n'ai plus qu'à lancer l'extinction.

Voici le lien officiel pour savoir comment arrêter Mongodb correctement : http://api.mongodb.org/wiki/current/Starting%20and%20Stopping%20Mongo.html

Best

4 votes

'mongo admin --eval "db.shutdownServer()"' devrait également faire l'affaire.

0 votes

Cela a bien fonctionné pour moi qui faisais de la maintenance ad-hoc sur quelques instances Mongo-on-Windows. C'était plus fiable que d'utiliser la commande Windows "net stop".

0 votes

Mais maintenant, je ne peux pas le redémarrer en utilisant les conseils de ce site : medium.com/stackfame/

29voto

Rut Shah Points 77
  1. Ouvrez Command Prompt/Powershell en tant qu'administrateur.
  2. Exécutez "net stop MongoDB"

0 votes

Existe-t-il un status pour les net dans powershell ?

14voto

Todor Bukov Points 156

Depuis le shell mongo documentation :


utiliser dbname

Cette commande ne fonctionne pas en mode scripté. Au lieu de cela, vous devrez définir explicitement la base de données dans la connexion (/dbname dans l'exemple ci-dessus).

Alternativement, vous pouvez également créer une connexion dans le script :

db2 = connect("server:27017/otherdbname")

J'ai trouvé le code suivant : Enregistrez le bout de code suivant dans stop_mongod.js fichier :

 db = connect("localhost:27017/admin");
 db.shutdownServer();
 quit();

Ajustez la chaîne de connexion si nécessaire. Puis à partir de la ligne de commande ou dans votre script batch :

mongo stop_mongod.js

14voto

Shubham khunt Points 51

Ouvrez l'invite de commande en tant qu'administrateur

net stop mongodb

0 votes

J'ai trouvé cela utile !

12voto

Nanhe Kumar Points 2207

Si le serveur est exécuté en tant que processus d'avant-plan dans un terminal, cette fonction peut être effectuée en appuyant sur

Ctrl-C

Une autre façon d'arrêter proprement un serveur en cours d'exécution est d'utiliser la commande shutdown,

> use admin
> db.shutdownServer();

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