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
最好
小智 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)
如果服务器作为终端中的前台进程运行,则可以通过按下来完成
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:
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)
如果你在windows上安装mongodb作为服务。您可以在提升的命令提示符中使用以下命令停止服务
net stop mongodb
Run Code Online (Sandbox Code Playgroud)