Как запустить 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)
здесь больше информации об этой команде
этот сценарий 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
приводит к ошибке:
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"
самый простой способ -,
- создать папку
C:\data\db
- создать файл
C:\data\db\log.txt
-
Откройте командную строку как "Запуск от имени администратора" и убедитесь, что путь к каталогу mogodb bin правильный и напишите
C:\Program Files\MongoDB\Server.4\bin> mongod.exe --install mongod --dbpath="c:\data\db" --logpath="c:\data\db\log.txt"
-
запустить службу 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 в качестве службы окон
- Откройте командную строку как администратор
- тип
cd C:\Program Files\MongoDB\Server.2\bin
(проверьте путь правильно, так как у вас может быть установлена другая версия, а не 3.2). - нажмите enter
- тип
net start MongoDB
- нажмите enter
- Нажмите Windows + R, введите
services.msc
и проверьте, работает ли Mongo как служба.
вот шаги по установке MongoDB в качестве службы Windows:
создайте каталог журнала, например
C:\MongoDB\log
создайте каталог БД, например
C:\MongoDB\db
-
подготовьте файл конфигурации со следующими строками
dbpath=C:\MongoDB\db
logpath=C:\MongoDB\log
поместите файл конфигурации с именем mongod.cfg в папку "C:\MongoDB\"
следующая команда установит службу 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"
как только вы запустите эту команду, вы получите
[SC] CreateService SUCCESS
-
выполнить следующую команду в командной строке
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
mongod --remove
mongod --dbpath=C:/data/db --port 27017 --logpath C:/data/log/log.txt --service
mongod --dbpath=C:/data/db --port 27017 --logpath C:/data/log/log.txt --install
net start MongoDB