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

Vit*_*aly 12 windows service command-line mongodb

我正在使用nginx/PHP/MongoDB堆栈并尝试通过创建两个批处理文件在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
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

使用taskkill来停止mongod不是一种选择,因为这可能会导致数据损坏.有什么建议?

Jul*_*enD 21

我不确定这是一个正确的方法,发送一个kill可能会对你的mongo服务器造成损害,你需要在发生崩溃后修复你的数据库.

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

mongo admin --eval "db.shutdownServer()"
Run Code Online (Sandbox Code Playgroud)

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

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

最好

  • 'mongo admin --eval"db.shutdownServer()"'也应该这样做. (4认同)

Rut*_*hah 17

  1. 以管理员身份打开命令提示符/Powershell。
  2. 执行“net stop MongoDB”


小智 14

以管理员身份打开命令提示符

net stop mongodb
Run Code Online (Sandbox Code Playgroud)


小智 12

从mongo shell 文档:


使用dbname

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

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

db2 = connect("server:27017/otherdbname")
Run Code Online (Sandbox Code Playgroud)

我想出了以下代码:将以下代码段保存在stop_mongod.js文件中:

 db = connect("localhost:27017/admin");
 db.shutdownServer();
 quit();
Run Code Online (Sandbox Code Playgroud)

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

mongo stop_mongod.js
Run Code Online (Sandbox Code Playgroud)


Nan*_*mar 8

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

Ctrl-C
Run Code Online (Sandbox Code Playgroud)

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

> use admin
> db.shutdownServer();
Run Code Online (Sandbox Code Playgroud)


小智 5

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

以下链接解释了这些步骤:

为 mongodb-community-edition 配置 Windows 服务

手动创建 mongodb 社区版的 Windows 服务

以下控制台命令行在启动时终止 MongoDB:

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
Run Code Online (Sandbox Code Playgroud)

MongoDB 服务创建命令行(如下所示)位于 Windows 注册表中:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\MongoDB
Run Code Online (Sandbox Code Playgroud)

要检查,请执行以下操作:

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> 
Run Code Online (Sandbox Code Playgroud)


dec*_*der 5

如果你在windows上安装mongodb作为服务。您可以在提升的命令提示符中使用以下命令停止服务

 net stop mongodb
Run Code Online (Sandbox Code Playgroud)