2011-11-01 87 views
12

我正在使用nginx/PHP/MongoDB堆棧,並試圖通過創建兩個批處理文件來在Windows上設置我的開發環境。如何在Windows上停止mongodb服務器?

的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 

使用的taskkill停止mongod的是不是一種選擇,因爲這可能導致數據損壞。 有什麼建議嗎?

回答

9

從蒙戈外殼documentation


使用DBNAME

此命令不會在腳本模式下工作。相反,您需要在連接中顯式定義數據庫(上例中的/ dbname)。

或者,你也可以創建腳本中的連接:

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

我想出用下面的代碼: 保存在stop_mongod.js下面的代碼片段文件:

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

如有必要,調整連接字符串。然後,在命令行或批處理腳本中:

mongo stop_mongod.js 
0

我想,使用TASKKILL/IM mongod.exe可以很好地終止mongodb服務器。

15

我不知道這是做一個適當的方式,發送一個kill很可能會損壞您的蒙戈服務器,你需要修復數據庫在發生崩潰的情況下。

也許你已經解決了這個問題,但這裏是我做的:

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

我自動對管理員的收集連接和未來,我只需要運行滅絕。

下面是關於如何正確停止MongoDB的官方鏈接:http://api.mongodb.org/wiki/current/Starting%20and%20Stopping%20Mongo.html

最佳

+4

'蒙戈管理--eval 「db.shutdownServer()」' 也應該這樣做。 – StefanMK

+0

這對我在一些Mongo-on-Windows實例上進行臨時維護非常有效。它比使用Windows「net stop」cmd更可靠。 – NateJ

5

如果服務器運行在終端的前臺進程,這 可以按

Ctrl-C 
完成

乾淨地關閉正在運行的服務器的另一種方法是使用shutdown命令,

> use admin 
> db.shutdownServer(); 
0

從Windows命令行。我在64位Windows 7 Pro SP1上使用MongoDB 3.4 Server。

以下鏈接解釋步驟:

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 

MongoDB的服務中創建的命令行:

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

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

以下控制檯命令行啓動時終止的MongoDB (如下所示)位於Windows註冊表中:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\MongoDB 

要檢查,做到以下幾點:

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>