2011-11-01 80 views
12

Estoy usando la pila nginx/PHP/MongoDB e intento configurar mi entorno de desarrollo en Windows creando dos archivos por lotes.¿Cómo detener el servidor mongodb en Windows?

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 

Usando taskkill para detener mongod no es una opción, ya que puede conducir a la corrupción de datos. ¿Alguna sugerencia?

Respuesta

9

Desde la consola mongo documentation:


uso nombredb

Este comando no funciona en el modo de guión. En su lugar, deberá definir explícitamente la base de datos en la conexión (/ nombrebd en el ejemplo anterior).

Alternativamente, también se puede crear una conexión dentro de la secuencia de comandos:

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

se me ha ocurrido con el siguiente código: Guardar el siguiente fragmento en stop_mongod.js archivo:

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

Ajuste la cadena de conexión si es necesario. Luego, desde la línea de comandos o dentro de la secuencia de comandos por lotes:

mongo stop_mongod.js 
0

Supongo que, utilizando TASKKILL/IM mongod.exe está bien para terminar el servidor mongodb correctamente.

15

No estoy seguro de que es una forma correcta de hacerlo, el envío de una muerte probablemente podría causar daños a su servidor mongo, y que necesita para reparar su base de datos después en caso de caída.

Tal vez ya resuelto esta pregunta, pero aquí es lo que hago:

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

estoy conectado automáticamente en la colección del administrador y al lado, sólo tiene que ejecutar la extinción.

Este es el enlace oficial sobre cómo dejar de MongoDB correctamente: http://api.mongodb.org/wiki/current/Starting%20and%20Stopping%20Mongo.html

Mejor

+4

'mongo administrador --eval "db.shutdownServer()" también debe hacerlo. – StefanMK

+0

Esto funcionó bien para mí al hacer un mantenimiento ad-hoc en algunas instancias de Mongo-on-Windows. Era más confiable que usar el cmd de Windows "net stop". – NateJ

5

Si el servidor se está ejecutando como el proceso en primer plano en un terminal, este se puede hacer pulsando

Ctrl-C 

Otra forma de cerrar limpiamente un servidor en ejecución es usar el comando de apagado,

> use admin 
> db.shutdownServer(); 
0

Desde la línea de comandos de Windows. Estoy usando MongoDB 3.4 Server en Windows 7 Pro SP1 de 64 bits.

Los siguientes enlaces explican los pasos:

configure-a-windows-service-for-mongodb-community-edition

manually-create-a-windows-service-for-mongodb-community-edition

La línea de comandos de la consola es terminado MongoDB en el arranque:

Microsoft Windows [Version 6.1.7601] 
Copyright (c) 2009 Microsoft Corporation. All rights reserved. 

C:\Windows\System32>"C:\Program Files\MongoDB\Server\3.4\bin\mongod.exe" --remove 
2017-12-06T08:15:47.883-0600 I CONTROL [main] Trying to remove Windows service 'MongoDB' 
2017-12-06T08:15:47.884-0600 I CONTROL [main] Service 'MongoDB' removed 

El servicio MongoDB crear la línea de comandos (que se muestra a continuación) se encuentra en el registro de Windows aquí:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\MongoDB 

Para comprobarlo, haga lo siguiente:

C:\Windows\System32>sc.exe create MongoDB binPath= "\"C:\Program Files\MongoDB\Server\3.4\bin\mongod.exe\" --service --c 
onfig=\"C:\Program Files\MongoDB\Server\3.4\mongod.cfg\"" DisplayName= "MongoDB" start= "auto" 
[SC] CreateService SUCCESS 

C:\Windows\System32>net start MongoDB 
The MongoDB service is starting. 
The MongoDB service was started successfully. 

C:\Windows\System32>net stop MongoDB 
The MongoDB service is stopping. 
The MongoDB service was stopped successfully. 

C:\Windows\System32>"C:\Program Files\MongoDB\Server\3.4\bin\mongod.exe" --remove 
2017-12-06T08:16:36.504-0600 I CONTROL [main] Trying to remove Windows service 'MongoDB' 
2017-12-06T08:16:36.505-0600 I CONTROL [main] Service 'MongoDB' removed 

C:\Windows\System32> 
Cuestiones relacionadas