Как остановить сервер mongodb в Windows?
Я использую стек nginx/PHP/MongoDB и пытаюсь настроить среду разработки в Windows, создав два пакетных файла.
начать.летучая мышь!--3-->
cd C:wwwnginx
start nginx
cd C:wwwphp
start php-cgi.exe -b 127.0.0.1:9000
cd C:wwwmongodb
start mongod
остановить.летучая мышь!--3-->
cd C:wwwnginx
nginx -s quit
cd C:wwwphp
taskkill /F /IM php-cgi.exe
cd C:wwwmongodb
mongo --eval "use admin; db.shutdownServer(); quit" # this doesn't work
mongo --eval stop_mongod.js # this doesn't work either
использование taskkill для остановки mongod не является вариантом, так как это может привести к повреждению данных. Есть предложения?
5 ответов
из раковины монго документация:
использовать 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();
из командной строки Windows. Я использую сервер MongoDB 3.4 на 64-разрядной Windows 7 Pro SP1.
следующие ссылки объясняют шаги:
настроить-a-windows-service-for-mongodb-community-edition
вручную-создать-a-windows-service-for-mongodb-community-edition
следующая командная строка консоли завершает MongoDB при запуске:
Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. All rights reserved.
C:\Windows\System32>"C:\Program Files\MongoDB\Server.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 создает командную строку (показано ниже) находится в реестре Windows здесь:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\MongoDB
чтобы проверить, сделайте следующее:
C:\Windows\System32>sc.exe create MongoDB binPath= "\"C:\Program Files\MongoDB\Server.4\bin\mongod.exe\" --service --c
onfig=\"C:\Program Files\MongoDB\Server.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.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>