如何停止Windows上的mongodb服务器?

我正在使用nginx / PHP / MongoDB堆栈,并尝试通过创build两个batch file来在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 

使用taskkill停止mongod不是一种select,因为这可能会导致数据损坏。 有什么build议么?

从mongo shell 文档 :


使用dbname

此命令在脚本模式下不起作用。 相反,您将需要显式定义连接中的数据库(上例中的/ dbname)。

或者,您也可以在脚本中创建一个连接:

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

我想出了下面的代码:在stop_mongod.js文件中保存下面的代码片段:

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

如有必要调整连接字符串。 然后从命令行或批处理脚本中:

 mongo stop_mongod.js 

我不知道这是一个正确的方法,发送杀死可能会导致您的mongo服务器损坏,并且在发生崩溃后您需要修复您的数据库。

也许你已经解决了这个问题,但这是我做的:

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

我自动连接到管理员的集合,接下来,我只需要运行灭绝。

这里是关于如何正确地停止Mongodb的官方链接: http ://api.mongodb.org/wiki/current/Starting%20and%20Stopping%20Mongo.html

最好

如果服务器在终端中作为前台进程运行,则可以通过按下来完成

 Ctrl-C 

干净地关闭正在运行的服务器的另一种方法是使用shutdown命令,

 > use admin > db.shutdownserver(); 

我想,使用TASKKILL / IM mongod.exe是好的,以终止优雅的mongodb服务器。