Как запустить MongoDB в качестве службы Windows?

187

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

  • 14
    Любой, кто приедет сюда в 2015 году или позже, вероятно, должен просто проверить документы: docs.mongodb.org/master/tutorial/install-mongodb-on-windows
  • 0
    Хм. Это немного больше работы, чем принятый ответ :-(.
Теги:
windows-services
nosql

27 ответов

97
Лучший ответ

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

mongod --install

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

  • 7
    мне наконец удалось установить, выполнив это: mongod.exe --service
  • 2
    Похоже, что вам действительно нужно ввести полный путь в командной строке: c: \> c: \ mongodb \ bin \ mongod.exe --service. Тем не менее, обязательно запустите командное окно от имени администратора (особенно на сервере Windows), иначе UAC будет препятствовать вам.
Показать ещё 6 комментариев
334

Попробовав несколько часов, я наконец сделал это.

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

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

D:\mongodb\bin>mongod --remove

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

D:\mongodb\bin>mongod --dbpath=D:\mongodb --logpath=D:\mongodb\log.txt --install

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

services.msc

И найдите сервис MongoDB и нажмите Пуск.


ПРИМЕЧАНИЕ. Обязательно запустите командную строку от имени администратора.

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

2016-11-11T15:24:54.618-0800 I CONTROL  [main] Trying to install Windows service 'MongoDB'
2016-11-11T15:24:54.618-0800 I CONTROL  [main] Error connecting to the Service Control Manager: Access is denied. (5)

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

System error 5 has occurred.
Access is denied.

или это:

Start-Service : Service 'MongoDB (MongoDB)' cannot be started due to the following error: Cannot open MongoDB service
on computer '.'.
At line:1 char:1
+ Start-Service MongoDB
+ ~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : OpenError: (System.ServiceProcess.ServiceController:ServiceController) [Start-Service],
   ServiceCommandException
    + FullyQualifiedErrorId : CouldNotStartService,Microsoft.PowerShell.Commands.StartServiceComman
  • 7
    Вы также можете запустить его с net start MongoDB вместо использования services.msc . ( mongod рекомендовал это мне.)
  • 1
    Это сработало для меня. Путь к файлу журнала должен быть создан вручную, если он еще не существует (в примере я использовал путь, отличный от каталога mongo).
Показать ещё 5 комментариев
60

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

также требуется --dbpath и --logpath

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

  • 4
    +1 за удаление файла mongod.lock. Это все еще кажется проблемой с 1.8.1, работающим на 64-битной версии.
  • 0
    Интересно, когда это будет исправлено.
Показать ещё 2 комментария
38

В отличие от других ответов, это будет..

НАЧАТЬ АВТОМАТИЧЕСКОЕ ОБСЛУЖИВАНИЕ СИСТЕМЫ REBOOT/RESTART

Установка MongoDB

Окна

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

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

(3) Создайте c:\data\db

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

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

systemLog:
    destination: file
    path: c:\data\log\mongod.log
storage:
    dbPath: c:\data\db

(6) Чтобы создать сервис, который будет автоматически запускаться при перезагрузке. RUN AS ADMIN..

sc.exe create MongoDB binPath= "\"C:\Program Files\MongoDB\Server\3.4\bin\mongod.exe\" --service --config=\"C:\data\mongod.cfg\"" DisplayName= "MongoDB" start= "auto"

(7) Запустите сервис.. RUN AS ADMIN..

net start MongoDB

ВАЖНО: даже если это говорит: "Служба MongoDB была успешно запущена", она может выйти из строя

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

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

(Не запускайте MongoDB через Панель управления > Службы, используйте..NET start MongoDB)

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

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

net stop MongoDB

sc.exe delete MongoDB
  • 0
    спасибо, это сработало для меня, мне просто пришлось изменить версию 3.4 на 3.6 в этой команде sc.exe create MongoDB binPath= "\"C:\Program Files\MongoDB\Server\3.4\bin\mongod.exe\" --service --config=\"C:\data\mongod.cfg\"" DisplayName= "MongoDB" start= "auto"
22

Ниже приведены действия, относящиеся к Windows.

Запустите ниже в административном cmd

mongod --remove

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

mongod --dbpath "C:\data\db" --logpath "C:\Program Files\MongoDB\Server\3.4\bin\mongod.log" --install --serviceName "MongoDB"

Убедитесь, что существует папка C:\data\db

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

services.msc

Найти MongoDB → Щелкните правой кнопкой мыши → Пуск

  • 1
    Отлично! Небольшое примечание, папки должны существовать (по крайней мере, одна для журналов).
  • 0
    Небольшой вопрос по поводу sidenote: разве файл тоже не должен существовать? Я смутно помню отсутствие самого (пустого) файла, вызывающего у меня проблемы.
Показать ещё 2 комментария
18

Вы можете использовать приведенную ниже команду для запуска mongodb в качестве службы Windows

"C:\mongodb\bin\mongod" --bind_ip  yourIPadress  --logpath  "C:\data\dbConf\mongodb.log"  --logappend  --dbpath  "C:\data\db"  --port yourPortNumber --serviceName "YourServiceName" --serviceDisplayName "YourServiceName" --install 

Если вы используете mongodb с параметрами по умолчанию, вы можете использовать следующие значения:

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

Здесь больше информации об этой команде

http://www.mongodb.org/display/DOCS/Windows+Service

14

Я попробовал все ответы, а затем сделал это так, https://docs.mongodb.org/manual/tutorial/install-mongodb-on-windows/#configure-a-windows-service-for-mongodb-community-edition описывает это.

Используйте файл конфигурации...

"C:\mongodb\bin\mongod.exe" --config "C:\mongodb\mongod.cfg" --install

  • 0
    После нескольких дней попыток ... это наконец сработало.
14

Этот PowerShell Script Загрузки и установки MongoDB в качестве службы Windows:

Set-ExecutionPolicy RemoteSigned

$mongoDbPath = "C:\MongoDB" 
$mongoDbConfigPath = "$mongoDbPath\mongod.cfg"
$url = "http://downloads.mongodb.org/win32/mongodb-win32-x86_64-2008plus-2.4.9.zip" 
$zipFile = "$mongoDbPath\mongo.zip" 
$unzippedFolderContent ="$mongoDbPath\mongodb-win32-x86_64-2008plus-2.4.9"

if ((Test-Path -path $mongoDbPath) -eq $True) 
{ 
  write-host "Seems you already installed MongoDB"
    exit 
}

md $mongoDbPath 
md "$mongoDbPath\log" 
md "$mongoDbPath\data" 
md "$mongoDbPath\data\db"

[System.IO.File]::AppendAllText("$mongoDbConfigPath", "dbpath=C:\MongoDB\data\db`r`n")
[System.IO.File]::AppendAllText("$mongoDbConfigPath", "logpath=C:\MongoDB\log\mongo.log`r`n")
[System.IO.File]::AppendAllText("$mongoDbConfigPath", "smallfiles=true`r`n")
[System.IO.File]::AppendAllText("$mongoDbConfigPath", "noprealloc=true`r`n")

$webClient = New-Object System.Net.WebClient 
$webClient.DownloadFile($url,$zipFile)

$shellApp = New-Object -com shell.application 
$destination = $shellApp.namespace($mongoDbPath) 
$destination.Copyhere($shellApp.namespace($zipFile).items())

Copy-Item "$unzippedFolderContent\*" $mongoDbPath -recurse

Remove-Item $unzippedFolderContent -recurse -force 
Remove-Item $zipFile -recurse -force

& $mongoDBPath\bin\mongod.exe --config $mongoDbConfigPath --install

& net start mongodb
10

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

C:\Program Files\MongoDB\Server\3.2\bin>mongod --install --dbpath=c:/data/db --logpath=c:/data/logs/log.txt

Мне также пришлось запустить его из admin cmd

  • 1
    спасибо, что напомнили, что нужна консоль администратора
6

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

2015-12-03T18:18:28.896+0100 I CONTROL  --install has to be used with a log file for server output

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

mongod --install --logpath C:\mongodb\logs\mongo.log

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

net start MongoDB
5

Работа на БД Монго: 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) Для запуска Монго БД в качестве службы

чистый старт MongoDB

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

5

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

mongod --install --rest --master
  • 0
    Подумайте об обновлении ответа с ответом Рубина (ваш ответ не полный)
4

Работа с MongoDB 3.4 [Windows]

  • Создать каталог C:/mongodb/data​​li >
  • Создайте файл в C:/mongodb/mongodb.config, используя эту конфигурацию:

    storage:
        engine: wiredTiger
        dbPath: "C:/mongodb/data"
        directoryPerDB: true
        journal:
            enabled: true
    systemLog:
        destination: file
        path: "C:/mongodb/data/mongod.log"
        logAppend: true
        timeStampFormat: iso8601-utc
    net:
        bindIp: 127.0.0.1
        port: 27017
        wireObjectCheck : false
    
  • Чтобы установить MongoDb в качестве службы, запустите эту команду в PowerShell с полномочиями администратора

    mongod --config = "C:\mongodb\mongodb.config" --install --service

  • Откройте Services.msc и найдите MongoDb, затем запустите его

4

Самый простой способ:

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

    C:\Program Files\MongoDB\Server\3.4\bin> mongod.exe --install mongod --dbpath="c:\data\db" --logpath="c:\data\db\log.txt" 
    
  • Запустите службу mongodb:

    net run MongoDB
    
  • 0
    Большое спасибо, у меня есть работа.
  • 0
    «C: \ Program» не распознается как внутренняя или внешняя команда, работающая программа или пакетный файл.
4

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

sc.exe create MongoDB binPath= "d:\MongoDB\bin\mongod.exe --service --config=d:\MongoDB\bin\mongod.config" displayname= "MongoDB 2.6 Standard" start= "auto"

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

Failed:

sc.exe create MongoDB binPath= "\"C:\Program Files\MongoDB 2.6 Standard\bin\mongod.exe\" --service --config=\"C:\Program Files\MongoDB 2.6 Standard\mongod.cfg\"" DisplayName= "MongoDB 2.6 Standard" start= "auto"
  • 1
    Запустите cmd от имени администратора и выполните следующую команду: sc.exe create MongoDB binPath = "d: \ MongoDB \ bin \ mongod.exe --service --config = d: \ MongoDB \ bin \ mongod.config" displayname = "MongoDB 2.6 Стандартный "старт =" авто "
4
1) echo logpath=F:\mongodb\log\mongo.log > F:\mongodb\mongod.cfg

2) dbpath=F:\mongodb\data\db [add this to the next line in mongod.cfg]

C:\>F:\mongodb\bin\mongod.exe –config F:\mongodb\mongod.cfg –install

Ссылка

3

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

3

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

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

2

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

пример:

mongod --dbpath=c:\data\db --config=c:\data\db\config.cfg --logpath=c:\data\db\log.txt --install 

note: У меня есть путь mongod в моей переменной пути.

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

net start mongodb
net stop  mongodb 
2

Запустите "cmd.exe" в качестве администратора, а затем запустите "sc.exe", чтобы добавить новую службу Windows.

например:

sc.exe create MongoDB binPath= "c:\program files\mongodb\server\3.2\bin\mongod.exe"
2

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

dbpath = D:\Mongo data
logpath = C:\mongodb\logs\mongo.log 
logappend = true

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

logpath=C:\mongodb\logs\mongo.log 

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

c:\mongodb\bin\>mongodb.exe C:\mongodb\bin\mongod.conf --install

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

1

Ниже перечислены шаги по установке MongoDB в качестве службы Windows:

  • Создайте каталог журнала, например. C:\MongoDB\log

  • Создайте каталог db, например. C:\MongoDB\db

  • Подготовьте файл конфигурации со следующими строками

    dbpath=C:\MongoDB\db

    logpath=C:\MongoDB\log

    Поместите файл конфигурации с именем mongod.cfg в папку "C:\MongoDB \"

  • Следующая команда установит Windows Service на ваш sc.exe create MongoDB binPath= "\"C:\MongoDB\Server\3.4\bin\mongod.exe\" --service --config=\"C:\MongoDB\mongod.cfg\" DisplayName= "MongoDB 3.4" start= "auto"

  • После запуска этой команды вы получите [SC] CreateService SUCCESS

  • Запустите следующую команду в командной строке

    net start MongoDB

1

Этот ответ предназначен для тех, кто уже установил mongo DB с помощью установщика MSI.

Скажем, ваше установленное по умолчанию местоположение: "C:\Program Files\MongoDB\Server\3.2\bin"

Шаги для запуска манго в качестве службы окна

  • Откройте командную строку как администратор
  • Введите cd C:\Program Files\MongoDB\Server\3.2\bin (проверьте правильность пути, так как у вас может быть установлена ​​другая версия, а не 3.2).
  • Нажмите enter
  • Тип net start MongoDB
  • Нажмите enter
  • Нажмите Windows + R, введите services.msc и проверьте, работает ли Mongo как служба.
  • 0
    Укажите правильный путь, но получите ошибку: System error 2 has occurred. The system cannot find the file specified. пробовал mongod, mongodb, а также.
1

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

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

0
  1. проверить службы Windows

    если у вас есть сервис для Монго, удалите его командой run bellow
    mongod --remove

  2. создайте файл mongo.cfg с приведенным ниже содержимым

    системный журнал:
    назначение: файл
    путь: c:\data\log\mongod.log
    место хранения:
    dbPath: c:\data\db

    путь: где вы хотите хранить данные журнала
    dbPath: каталог вашей базы данных

  3. затем выполните команду ниже

    sc.exe create MongoDB binPath= "\"C:\Program Files\MongoDB\Server\3.2\bin\mongod.exe\" --service --config=\"C:\Program Files\MongoDB\Server\3.2\mongod.cfg\"" DisplayName= "MongoDB" start= "auto"

    binPath: каталог установки mongodb
    config: адрес файла .cfg
    DisplayName: название вашей службы

  4. начать обслуживание

    net start MongoDB

теперь все сделано. наслаждайся этим

0
mongod --config "C:\Program Files\MongoDB\Server\3.6\mongod_primary.cfg" --install --serviceName "MongoDB_Primary" --serviceDisplayName "MongoDB Primary"
-1

Пожалуйста, попробуйте шаги в Mongo DB: 3.6 и Windows 10

  1. mongod --remove
  2. mongod --dbpath=C: /data/db --port 27017 --logpath C: /data/log/log.txt --service
  3. mongod --dbpath=C: /data/db --port 27017 --logpath C: /data/log/log.txt --install
  4. net start MongoDB

Ещё вопросы

Сообщество Overcoder
Наверх
Меню