2011-11-01 17 views
12

Sto utilizzando lo stack nginx/PHP/MongoDB e sto provando a configurare il mio ambiente di sviluppo su Windows creando due file batch.Come arrestare il server mongodb su 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 

Utilizzando taskkill per fermare mongod non è un'opzione, dal momento che possono portare alla corruzione dei dati. Qualche suggerimento?

risposta

9

Dalla shell mongo documentation:


uso dbname

Questo comando non funziona in modalità script. Dovrai invece definire esplicitamente il database nella connessione (/ dbname nell'esempio sopra).

In alternativa, è anche possibile creare un collegamento all'interno dello script:

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

mi è venuta in mente il seguente codice: Salvare il seguente frammento di stop_mongod.js di file:

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

Se necessario, regolare la stringa di connessione. Poi dalla riga di comando o all'interno del tuo script batch:

mongo stop_mongod.js 
0

Suppongo che utilizzando TASKKILL/IM mongod.exe sia corretto terminare il server mongodb con garbo.

15

non sono sicuro che sia un modo corretto di fare, l'invio di un kill probabilmente potrebbe causare danni al server mongo, e avrete bisogno per riparare la vostra database dopo in caso di crash.

Forse già risolto questo problema, ma qui è quello che faccio:

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

sto automaticamente collegato sulla collezione del admin e il prossimo, non mi resta che eseguire l'estinzione.

Ecco il link ufficiale su come smettere di MongoDB correttamente: http://api.mongodb.org/wiki/current/Starting%20and%20Stopping%20Mongo.html

Miglior

+4

'mongo amministratore --eval "db.shutdownServer()"' dovrebbe anche farlo. – StefanMK

+0

Questo ha funzionato bene per me facendo manutenzione ad hoc su alcune istanze di Mongo-on-Windows. Era più affidabile dell'uso di Windows "net stop" cmd. – NateJ

5

Se il server è in esecuzione come il processo in primo piano in un terminale, questo può essere fatto premendo

Ctrl-C 

Un altro modo per chiudere in modo pulito un server in esecuzione è utilizzare il comando shutdown,

> use admin 
> db.shutdownServer(); 
0

Dalla riga di comando di Windows. Uso il server MongoDB 3.4 su Windows 7 Pro SP1 a 64 bit.

I collegamenti seguenti spiegano i passi:

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

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

La seguente riga di comando console termina MongoDB allo start-up:

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 

Il servizio MongoDB creare riga di comando (mostrato sotto) si trova nel registro di Windows qui:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\MongoDB 

Per controllare, effettuare le seguenti operazioni:

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> 
Problemi correlati