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

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

27 ответов


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

mongod --install

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


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

убедитесь, что вы добавили <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 - ... тхт в приведенном выше примере) будет содержать такие строки:

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

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

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

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


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

ЗАПУСТИТЕ СЛУЖБУ АВТОМАТИЧЕСКИ ПРИ ПЕРЕЗАГРУЗКЕ / ПЕРЕЗАГРУЗКЕ СИСТЕМЫ

MongoDB Установить

окна

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

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

(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) для создания сервиса, который будет автоматический запуск при перезагрузка .. ЗАПУСК ОТ ИМЕНИ АДМИНИСТРАТОРА ..

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

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

net start MongoDB

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

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

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

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

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

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

net stop MongoDB

sc.exe delete MongoDB

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

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

mongod --remove

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

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

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

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

services.msc

найти MongoDB -> правый клик -> запустить


вы можете использовать приведенную ниже команду для запуска 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 + обслуживание


этот сценарий PowerShell загружает и устанавливает 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

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

использовать файл config...

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


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

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

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


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

mongod --install --rest --master

рекомендуется 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

работа над 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 в качестве службы

net start MongoDB

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


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

ссылка


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

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

ошибка:

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

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

    net run MongoDB
    

работа над MongoDB 3.4 [Windows]

  • создать dir C:/mongodb/data
  • создать файл в 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 с admin power

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

  • Открыть Услуги.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. Служба не запустится, пока я не окружу знак равенства в конфигурационном файле пробелами:

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 но это кончится. Проверьте файлы журнала для подтверждения того, что услуга действительно началась.


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

например:

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

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

пример :

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

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

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

net start mongodb
net stop  mongodb 

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

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


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

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

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

  1. Откройте командную строку как администратор
  2. тип cd C:\Program Files\MongoDB\Server.2\bin (проверьте путь правильно, так как у вас может быть установлена другая версия, а не 3.2).
  3. нажмите enter
  4. тип net start MongoDB
  5. нажмите enter
  6. Нажмите Windows + R, введите services.msc и проверьте, работает ли Mongo как служба.

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

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

  2. создайте каталог БД, например C:\MongoDB\db

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

    dbpath=C:\MongoDB\db

    logpath=C:\MongoDB\log

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

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

  5. как только вы запустите эту команду, вы получите [SC] CreateService SUCCESS

  6. выполнить следующую команду в командной строке

    net start MongoDB


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

Шаг 1: Откройте командную строку администратора. Нажмите клавишу Win, введите cmd.exe и нажмите Ctrl + Shift + Enter, чтобы запустить командную строку от имени администратора.

выполните оставшиеся шаги из командной строки администратора.

Шаг 2: создать каталоги. Создать каталоги для вашей базы данных и файлов журналов:

mkdir c:\data\db
mkdir c:\data\log

Шаг 3: создайте файл конфигурации. Создайте файл конфигурации. Папка необходимо установить systemLog.путь. Включите дополнительные параметры конфигурации по мере необходимости.

например, создайте файл на C:\Program файлы\MongoDB\сервер\3.6\mongod.cfg, который определяет оба systemLog.путь и хранение.dbPath:

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

Шаг 4: установите службу MongoDB. Важно: выполните все следующие команды в командной строке с "правами администратора".

установите службу MongoDB, запустив mongod.exe с --install параметр и параметр-config, чтобы указать ранее созданный файл конфигурации.

"C:\Program Files\MongoDB\Server.4\bin\mongod.exe" --config "C:\Program Files\MongoDB\Server.4\mongod.cfg" --install

чтобы использовать альтернативный dbpath, укажите путь в файле конфигурации (например C:\mongodb\mongod - ... cfg)или в командной строке с параметром --dbpath.

при необходимости можно установить службы для нескольких экземпляров mongod.exe или mongos.исполняемый. Установите каждую службу с уникальными --serviceName и --serviceDisplayName. Использовать несколько экземпляров только при наличии достаточной системы ресурсы существуют, и ваш дизайн системы требует этого.

Шаг 5: запустите службу MongoDB.

net start MongoDB

Шаг 6: остановите или удалите службу MongoDB по мере необходимости. Чтобы остановить службу MongoDB, используйте следующую команду:

net stop MongoDB

Plz попробуйте шаги в 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