Mongodb остановить сервер windows

Обновлено: 07.07.2024

Как настроить MongoDB, чтобы он мог работать как служба Windows?

Я думаю, если вы запустите его с --install переключатель командной строки, он устанавливает его как службу Windows.

Это может быть стоит прочитать этой теме во-первых, хотя. Кажется, есть некоторые проблемы с относительными/абсолютными путями, когда соответствующий раздел реестра записывается.

после попытки в течение нескольких часов, я, наконец, сделал это.

убедитесь, что вы добавили <MONGODB_PATH>\bin каталог к системной переменной PATH

сначала я выполнил эту команду:

затем я выполнил эту команду после открытия командной строке от имени администратора:

после этого тут же в командной строке выполните:

и найдите службу MongoDB и нажмите начать.

если вы этого не сделаете, ваш файл журнала ('D:\mongodb\log.тхт в приведенном выше примере) будет содержать такие строки:

и если вы попытаетесь запустить службу из консоли администратора, (т. е. net start MongoDB или Start-Service MongoDB в PowerShell), вы получите такой ответ:

или такой:

не только --install ,

также необходимо --dbpath и --logpath

и после перезагрузки ОС вам нужно удалить "команду mongod.замок" вручную

Windows

(1) Установить MongoDB

(2) Добавить bin в path

(3) создать c:\data\db

(4) создать c:\data\log

(5) создать c:\data\mongod.cfg с содержимым ..

(6) чтобы создать сервис, который будет автоматический запуск при перезагрузка .. ЗАПУСК ОТ ИМЕНИ АДМИНИСТРАТОРА ..

(7) запустите службу .. ЗАПУСК ОТ ИМЕНИ АДМИНИСТРАТОРА ..

важно: даже если это говорит "служба MongoDB была запущена успешно" он может потерпеть неудачу

чтобы дважды проверить открыть Панель Управления > Службы, убедитесь, что служба MongoDB находится в состоянии "работает"

если нет, проверьте файл журнала на C:\data\log\mongod.запишите причину сбоя и исправьте ее

(не запускать MongoDB через Панель управления > услуги, используйте .. net start MongoDB)

(8) Наконец, перезагрузите компьютер с MongoDB работает, и он все равно будет работать на restart

если вы когда-нибудь захотите его убить ..

следующие шаги применяются к Windows.

выполнить в административные cmd

это приведет к удалению существующей службы MongoDB (если таковые имеются).

убедитесь в том, что существует

открыть службы с помощью:

найти MongoDB -> щелкните правой кнопкой мыши - > пуск

  • yourIPadress: 127.0.0.1 или localhost
  • yourPortNumber: 27017 (порт по умолчанию) или не ставьте --port
  • serviceDisplayName: только если вы запускаете более одной службы (начиная с mongodb 1.8)

этот сценарий PowerShell загружает и устанавливает MongoDB в качестве службы Windows:

Это было единственное, что работал для меня. Поскольку все должно было быть абсолютным путем:

Я также должен был запустить его из admin cmd

рассмотрите возможность использования

рекомендуется mongod --install приводит к ошибке:

после установки mongodb в C:\mongodb вам нужно просто добавить logpath:

путь к файлу журнала должен существовать, и это должен быть абсолютный путь Windows. Затем вы запускаете службу MongoDB, набрав:

работа над Mongo DB: 3.6

(1) Установить MongoDB

(2) Добавить bin в переменную пути среды

(3) создать c:\data\db

(4) создать c:\data\mongod.log

(5) выполните команду ниже на bin папку

.\mongod.exe --install --logpath c:\data\mongod.log --logappend --bind_ip 12 7.0.0.1 --dbpath c:\data\db

(6) для запуска Mongo db в качестве службы

(7) наконец запустить mongo в командной строке, чтобы проверить, открыта ли оболочка mongo.

это то, что сработало для меня:

побег из binPath не удался для меня, как описано в документации Mongo

ошибка:

  1. создать папку C:\data\db
  2. создать файл C:\data\db\log.txt
  3. Откройте командную строку как "Запуск от имени администратора" и убедитесь, что путь к каталогу mogodb bin правильный и напишите

  4. запустить службу mongodb:

  • Create dir C:/mongodb/data
  • создать файл в C:/mongodb/mongodb.конфигурация с помощью этой конфигурации:

  • чтобы установить MongoDb в качестве службы, выполните эту команду в powershell с правами администратора

    mongod --config="C:\mongodb\mongodb.конфигурация" --установки --обслуживание

  • Открыть Услуги.msc и искать MongoDb, а затем запустить его

для версии 2.4.3 (текущая версия на дату публикации) создайте файл конфигурации и выполните следующие действия:

C:\MongoDB\bin\mongod.exe --config C:\MongoDB\mongod.cfg --service

В настоящее время (до версии 2.4.4), если какой-либо путь (dbpath/logpath/config) содержит пробелы, то служба не запустится и покажет ошибку: "служба не отвечает на функцию управления".

Я на версии 2.4.9 и с помощью файла config. Служба не запустится, пока я не окружу знак равенства в файле конфигурации пробелами:

первоначально у меня было:

Я также обнаружил, что при установке сервиса, который вы должны использовать абсолютный путь для файла config например:

не поддавайтесь искушению поставить кавычки вокруг dbpath с пробелами. Служба будет отображаться для запуска, когда вы выполнить net start MongoDB но это кончится. Проверьте файлы журнала для подтверждения того, что услуга действительно началась.

Run " cmd.exe "от имени администратора, а затем запустите" sc.exe " для добавления новой службы Windows.

например:

я обнаружил, что вы должны передать: dbpath, config и logfile в mongod с флагом установки

пример :

Примечание: у меня есть путь mongod в моей переменной path .

Вы можете управлять услугой с :

Если вы устанавливаете MongoDB 2.6.1 или новее с помощью MSI download С В Командной Строке, определение сервиса должно быть автоматически создано для вас.

в документации MongoDB также есть учебник, который поможет вам вручную создать службу Windows определение при необходимости.

Мне нужно запустить/остановить MongoDB на кли. Это довольно просто начать:

Но чтобы остановить Mongo DB, мне нужно сначала запустить открытую оболочку mongo, а затем ввести две команды:

Поэтому я не знаю, как остановить mongo DB в одной строке. Любая помощь?

Запуск и остановка MongoDB рассматривается в руководстве MongoDB. Он объясняет различные варианты остановки MongoDB через оболочку, cli, драйверы и т.д. Он также детализирует риски неправильной остановки MongoDB (например, повреждение данных) и рассказывает о различных сигналах уничтожения.

Кроме того, если вы установили MongoDB, используя менеджер пакетов для Ubuntu или Debian, вы можете остановить mongodb (ранее mongod) следующим образом:

Выскочка: sudo service mongodb stop

Сисвинит: sudo/etc/init.d/mongodb stop

Найдите PID процесса mongod, используя $ top

Или в системах на базе Red Hat:

Или в Windows, если вы установили как службу с именем MongoDB :

И если не установлено как служба (начиная с Windows 7+), вы можете запустить:

Если вы буквально хотите, чтобы одна строка была эквивалентна командам в исходном вопросе, вы можете использовать псевдоним:

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

Отметить ответ на запуск и остановку MongoDB через службы является более типичным (и рекомендуемым) административным подходом.

mongod --dbpath /path/to/your/db --shutdown

Если сервер работает как процесс переднего плана в терминале, это можно сделать, нажав

В противном случае для отправки может использоваться команда типа kill
сигнал. Если mongod имеет 10014 в качестве своего PID, команда будет

Я следовал официальной документации MongoDB для остановки с сигналами. Можно использовать одну из следующих команд (PID представляет Process ID процесса mongod ):

который отправляет сигнал 15 (SIGTERM), или

который посылает сигнал 2 (SIGINT).

Предупреждение из документации MongoDB :
Никогда не используйте kill -9 (то есть SIGKILL), чтобы завершить mongod экземпляра mongod .

Если у вас запущено несколько экземпляров или вам не pkill PID, вы можете использовать pkill для отправки сигнала всем запущенным процессам mongod :

или, что гораздо безопаснее, только процессам, принадлежащим вам:

PS
Примечание: я прибег к этой опции, потому что mongod --shutdown , хотя и упоминается в текущей документации MongoDB, любопытно, что не работает на моей машине (macOS, mongodb v3.4.10, установлен с homebrew ):
Error parsing command line: unrecognised option '--shutdown'

PPS
(специфично для macOS) Прежде чем кто-нибудь задумывается: нет, я не мог остановить это командой
brew services stop mongodb
потому что я не начал это с
brew services start mongodb .
Я начал mongod с пользовательской командной строки 🙂

Используйте mongod --shutdown

Согласно официальному документу: manage-mongodb-Процессы/

Один лайнер для запуска или остановки службы mongodb с помощью командной строки;

  • Для запуска службы используйте: NET START MONGODB
  • Чтобы остановить использование службы: NET STOP MONGODB

Я использую это сам, он работает.

создайте файл с именем mongostop.bat

сохранить в нем следующий код

запустите файл mongostop.bat, и вы успешно остановили mongo

Из данных команд я думаю, что вы на Linux.

Начать MongoDB:

Проверить статус:

Остановить MongoDB:

Я просто сделал:

Обратите внимание, что я использую mongo 3.0.

в окне терминала на вашем mac, нажмите control + c

в командной строке Windows

Я использую этот запуск script в Ubuntu.

В PowerShell это: Stop-Service MongoDB

Затем, чтобы запустить его снова: Start-Service MongoDB

Чтобы проверить, запущена ли она, запустите: net start | findstr MongoDB .

Опираясь на ответ от стенние:

Мне нужно иметь возможность запускать / останавливать MongoDB в кли. Начать довольно просто:

Но чтобы остановить монго БД, мне нужно сначала запустить оболочку открытого монго, а затем ввести две команды:

Так что я не знаю, как остановить монго БД в одной строке. Любая помощь?

Запуск и остановка MongoDB описаны в руководстве MongoDB. Он объясняет различные варианты остановки MongoDB через оболочку, cli, драйверы и т. Д. Он также детализирует риски неправильной остановки MongoDB (такие как повреждение данных) и рассказывает о различных сигналах уничтожения.

Кроме того, если вы установили MongoDB с помощью менеджера пакетов для Ubuntu или Debian, вы можете остановить mongodb (в настоящее время mongod в Ubuntu) следующим образом:

Выскочка: sudo service mongod stop

Sysvinit: sudo /etc/init.d/mongod stop

Найти PID процесса Mongod, используя $ top

Или в системах на базе Red Hat :

Или в Windows, если вы установили в качестве службы с именем MongoDB :

И если не установлена ​​как служба (начиная с Windows 7+), вы можете запустить:

Чтобы узнать больше о проблемах нечистого выключения, о том, как наилучшим образом избежать такого сценария и что делать в случае нечистого выключения, см. « Восстановление данных после неожиданного выключения» .

Я считаю, что заказ на обслуживание есть sudo service mongodb [start|stop|restart|status] . sudo service stop mongodb Результаты: остановка: неопознанная служба @Jacob - Мы только что попробовали это на Ubuntu, вы правы, я отредактировал ответ. Для Mac вы также можете просто сделать killall mongod. Таким образом, вам не нужно знать PID. Или на Mac: 'ps -ax | grep mongod ', затем убейте номер процесса В новой Ubuntu 18.04 я могу остановить его, используя> sudo service mongod stop . не "mongodb"

Если вам буквально нужна строка, эквивалентная командам в исходном вопросе, вы можете использовать псевдоним:

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

Ответ Марка на запуск и остановку MongoDB через сервисы является более типичным (и рекомендуемым) административным подходом.

Отличный ответ. При настройке нескольких экземпляров на компьютере разработчика (пробуя набор репликации перед развертыванием) start C:\mongodb\bin\mongod.exe --config C:\net2\primary1-pc\mongod.cfg start C:\mongodb\bin\mongod.exe --config C:\net2\secondary1-pc\mongod.cfg . C:\mongodb\bin\mongo.exe --eval "db.getSiblingDB('admin').shutdownServer()" --port 27017 C:\mongodb\bin\mongo.exe --eval "db.getSiblingDB('admin').shutdownServer()" --port 27018 C:\mongodb\bin\mongo.exe --eval "db.getSiblingDB('admin').shutdownServer()" --port 27019 . В операционной системе Windows , где он установлен как сервис, я обнаружил , что net stop MongoDB не был надежным, так что я использовал что - то подобное: mongo admin --eval "db.shutdownServer()" . Ура! @Stennie Когда я использую «net stop MongoDB» на окнах, он показывает «Произошла системная ошибка 1067»

mongod --dbpath /path/to/your/db --shutdown

Я люблю использовать этот способ, он работает и без dbpath, имеет смысл, если у вас работает только один экземпляр. кажется, он не работает для более новых версий, от 2.4.xx до последней. Это единственный ответ, который я видел, который действительно работал. Macos 10,12, mongod v3.4.10 : Error parsing command line: unrecognised option '--shutdown' :-( Есть ли определенное поведение для этого, если он запускается на первичном из набора реплик? Кажется, что он ведет себя так, db.shutdownServer() что препятствует сбросу оставшихся данных во вторичные. Возможно, вы не всегда этого хотите.

Если сервер работает как основной процесс в терминале, это можно сделать, нажав

Другой способ аккуратно завершить работу работающего сервера - использовать команду shutdown,

В противном случае для отправки сигнала может использоваться команда типа kill. Если Mongod имеет 10014 в качестве PID, команда будет

@ JensA.Koch Да, Наньхэ никому не говорил использовать сигнал -9, поэтому сказать: «убить не очень хорошая идея» просто не правильно. Только мгновенное завершение небезопасно - нормальное уничтожение совершенно безопасно, и документация, на которую вы ссылаетесь, поддерживает это.

Я следовал официальной документации MongoDB для остановки с сигналами. Один из могут быть использованы следующие команды (ПИД представляет собой Process ID часть mongod процесса):

который посылает сигнал 15 (SIGTERM), или

который посылает сигнал 2 (SIGINT).

Предупреждение из документации MongoDB :
Никогда не используйте kill -9 (например, SIGKILL) для завершения mongod экземпляра.

Если у вас запущено несколько экземпляров или вам не нужен PID, вы можете использовать pkill для отправки сигнала всем запущенным mongod процессам:

или, что гораздо безопаснее, только процессам, принадлежащим вам:

PS
Примечание: я прибег к этой опции, потому что mongod --shutdown , хотя упомянуто в текущей документации MongoDB , любопытно, что не работает на моей машине (macOS, mongodb v3.4.10, установлен с homebrew ):
Error parsing command line: unrecognised option '--shutdown'

PPS
(специфично для macOS) Прежде, чем кто-либо задается вопросом: нет, я не мог остановить это командой,
brew services stop mongodb
потому что я не начал это с
brew services start mongodb .
Я начал mongod с пользовательской командной строки :-)

--port:

Указывает номер порта, который прослушивает сервер. Номер порта по умолчанию - 27017. Если вы запускаете несколько mongod, вы должны указать разные номера портов.

Если порт 27017 уже используется, то, если 27017 также указан при запуске второго mongod, будет сообщено об ошибке:

--fork:

Запустите MongoDB как демон, создайте сервисный процесс, эквивалентный nohup . &

--logpath:

Укажите путь для вывода журналов вместо вывода в командной строке. Если у вас есть разрешение на запись в папку, система создаст его, когда файл не существует. Он перезапишет существующие файлы и очистит все исходные записи журнала. Если вы хотите сохранить оригинальный журнал, вам также нужно использовать--logappend

--config:

Укажите файл конфигурации для загрузки различных параметров, не указанных в командной строке

--directoryperdb:

Используйте этот параметр, чтобы поместить каждую базу данных в отдельный каталог

Например, если я создаю две новые базы данных, в каталоге данных будет автоматически создана папка с тем же именем базы данных.


При запуске базы данных MongoDB запишет файл в коллекцию startup_log локальной базы данных, которая содержит версию MongoDB, систему, на которой она основана, и т. Д.


Когда вы нажимаете, это так, говоря, что ваши параметры не включены, поэтому вы должны добавить--restпараметры


После перезапуска с параметрами, вы можете увидеть, что есть подробная информация.


2): файл конфигурации

Mongodb поддерживает чтение файлов конфигурации из файлов. Укажите профиль для использования-fи--configопции

2: Остановить Mongodb

Способ 1: просмотреть процесс и использовать команду kill;Невозможно использовать kill -9

Способ 2: зайдите в клиент и используйте команду выключения

При выполнении команды выключения на первичном узле (первичном) сервер будет ждать, пока резервный узел не догонит первичный узел для поддержания синхронизации, прежде чем сервер будет выключен. Это сводит к минимуму вероятность отката, но операция выключения может привести к сбою. Если ни один резервный узел не будет успешно синхронизирован в течение нескольких секунд, операция выключения завершится неудачно, и главный узел не остановится.

3: журнал

При запуске mongod вы можете указать уровень журнала (-v, -vv, -vvv, -vvvv, -vvvvv) или изменить команду в командной строке оболочки

Чем выше уровень журнала, тем более детальным будет выходной журнал. Когда он настроен на 5, mongod будет записывать почти все операции в журнале, включая содержимое, обрабатываемое каждым запросом.

MongoDB записывает информацию запроса, которая по умолчанию занимает более 100 миллисекунд. Если 100 миллисекунд не подходит, вы можете использовать команду setProfilingLevel, чтобы изменить следующую команду.

Если вы хотите разделить журнал, например, хранилище по дням, есть два способа

Способ первый:Ежедневное выполнениеkill -USR1 номер процессаТаким образом, вы можете видеть, что каждый раз, когда выполняется номер процесса kill -USR1, файл журнала регенерируется


Способ 2: Выполнить в строке оболочки MongoDB, каждый раз, когда создается новый файл журнала

Чтобы разделенный журнал вступил в силу, его необходимо использовать при запуске--logpath, А затем вы можете написать сценарий оболочки или Python в соответствии с вашими потребностями, а затем crontab делает запланированное задание

В этом посте будет представлен полный путь от загрузки необходимого двоичного архива / пакета для конкретной версии Windows до запуска MongoDB различными способами.
Ниже приведены шаги высокого уровня:

Опять же, дистрибутив MongoDB для 64-битной Windows поставляется с двумя разновидностями:

  • один для Windows Server 2008 и Windows 7, Server 2012 (ссылка для скачивания «* 2008R2 +»)
  • другой для отдыха 64-битной ОС Windows.

Это различие для x64 сделано на основе новых функций ОС, которые помогают повысить производительность MongoDB.
Выберите производственные релизы для скачивания


Распаковать архив MongoDB

Как только у нас будет архив MongoDB, начните извлекать архив, используя любую программу zip extract. После распаковки вы получите каталоги внутри архива следующим образом:


здесь каталог bin содержит двоичные файлы в форме исполняемых файлов, таких как mongod.exe, mongo.exe, monogexport.exe и т. д.

Настройте параметры конфигурации и запустите / остановите MongoDB

Для запуска и остановки сервера mongodb нам нужен только bin \ mongod.exe , который является исполняемым файлом процесса для MongoDB. Короче говоря, это исполняемый файл, который запускает MongoDB в целом. Для запуска нам нужно предоставить параметры для исполняемого файла, которые я называю здесь как параметры конфигурации или параметры. Мы можем настроить параметры конфигурации двумя способами

  • Использование параметров командной строки или
  • Использование файла конфигурации

Использование параметров командной строки

Используя эти параметры командной строки, мы настраиваем процесс демона mongo. По сути, мы можем указать множество опций, но я приведу только те, которые требуются для этого урока. Ниже приведены некоторые из них:

–Dbpath <путь>: существующий путь к каталогу, который требуется для хранения файлов данных. это наиболее важный параметр, который нам нужно указать. Обратите внимание, что путь к каталогу, который вы предоставляете, должен существовать, иначе процесс не запустится. Если этот путь содержит пробелы, тогда поместите весь его путь в двойные кавычки. например, –dbpath «c: \ Program Files»

–Logpath <log-file-path>: существующий путь к файлу, используемый процессом демона mongo для очистки журналов вместо стандартной консоли. Если этот путь содержит пробелы, поместите весь его путь в двойные кавычки

–Порт <порт>: порт №. где процесс mongod прослушивает соединение от клиента, по умолчанию 27017, если не указан

Примечание . При использовании командной строки в некоторых ОС Windows, таких как Windows 7 или Windows Server 2008, запустите ее с правами администратора, как показано ниже.

Читайте также: