Как я могу настроить MongoDB, чтобы он мог работать как служба Windows?
Как я могу настроить MongoDB, чтобы он мог работать как служба Windows?
Ответы:
Я думаю, что если вы запустите его с параметром --install
командной строки, он будет установлен как служба Windows.
mongod --install
Возможно, стоит сначала прочитать эту ветку . Кажется, есть некоторые проблемы с относительными / абсолютными путями, когда пишется соответствующий раздел реестра.
net start MongoDB
Попробовав несколько часов, я наконец сделал это.
Убедитесь, что вы добавили <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
net start MongoDB
этого вместо использования services.msc
. ( mongod
рекомендовал это мне.)
не только --install
,
также нужно --dbpath
и--logpath
и после перезагрузки ОС нужно вручную удалить «mongod.lock »
mongod.lock
ошибка исправлена на моемWindows 8 x64
В отличие от других ответов это будет ..
ЗАПУСК СЕРВИСА АВТОМАТИЧЕСКИ НА ПЕРЕЗАГРУЗКЕ / ПЕРЕЗАГРУЗКЕ СИСТЕМЫ
(1) Установите MongoDB
(2) Добавить корзину к пути
(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\3.4\bin\mongod.exe\" --service --config=\"C:\data\mongod.cfg\"" DisplayName= "MongoDB" start= "auto"
(7) Запустите службу.
net start MongoDB
ВАЖНО: Даже если это говорит «Сервис MongoDB был успешно запущен», он может потерпеть неудачу
Чтобы дважды проверить, откройте Панель управления> Службы, убедитесь, что статус службы MongoDB «Работает»
Если нет, проверьте файл журнала в C: \ data \ log \ mongod.log на предмет причины сбоя и исправьте его
(Не запускайте MongoDB через Панель управления> Службы, используйте .. net start MongoDB)
(8) Наконец, перезагрузите компьютер с запущенным MongoDB, и он все еще будет работать при перезагрузке
Если ты когда-нибудь захочешь это убить ..
net stop MongoDB
sc.exe delete MongoDB
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"
Следующие шаги относятся к 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 -> Правый клик -> Пуск
Вы можете использовать команду ниже для запуска 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 с параметрами по умолчанию, вы можете использовать эти значения:
Здесь больше информации об этой команде
Я попробовал все ответы, а затем сделал это так, как 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
Этот скрипт 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
Это было единственное, что сработало для меня. Как все должно быть по абсолютному пути:
C:\Program Files\MongoDB\Server\3.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
вам нужно просто добавить лог-путь:
mongod --install --logpath C:\mongodb\logs\mongo.log
Путь к файлу журнала должен существовать, и он должен быть абсолютным путем Windows. Затем вы запускаете сервис MongoDB, набрав:
net start MongoDB
Рассмотреть возможность использования
mongod --install --rest --master
Работа на БД Монго: 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
в командной строке, чтобы проверить, открыта ли оболочка монго или нет.
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 указан правильно, и введите
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
Работа на MongoDB 3.4 [Windows]
Создайте файл в 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, затем запустите его
Я на версии 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, но будет остановлена. Проверьте файлы журнала для подтверждения того, что служба действительно запущена.
Я обнаружил, что вы должны передать: dbpath, config и logfile в mongod с флагом установки
пример :
mongod --dbpath=c:\data\db --config=c:\data\db\config.cfg --logpath=c:\data\db\log.txt --install
примечание: у меня есть путь Mongod в моей переменной пути.
Вы можете контролировать сервис с:
net start mongodb
net stop mongodb
Это шаги для установки 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\3.4\bin\mongod.exe\" --service --config=\"C:\MongoDB\mongod.cfg\" DisplayName= "MongoDB 3.4" start= "auto"
Запустив эту команду, вы получите [SC] CreateService SUCCESS
Запустите следующую команду в командной строке
net start MongoDB
Если вы устанавливаете MongoDB 2.6.1 или новее, используя загрузку MSI из командной строки администратора , для вас автоматически должно быть создано определение службы.
В документации MongoDB также есть учебник, который поможет вам вручную создать определение службы Windows, если это необходимо.
Этот ответ предназначен для тех, кто уже установил mongo DB с помощью установщика MSI.
Допустим, по умолчанию установлено ваше местоположение: «C: \ Program Files \ MongoDB \ Server \ 3.2 \ bin»
Шаги для запуска Монго в качестве службы окна
cd C:\Program Files\MongoDB\Server\3.2\bin
(проверьте путь правильно, так как у вас может быть установлена другая версия, а не 3.2).net start MongoDB
services.msc
и проверьте, работает ли Mongo как сервис.System error 2 has occurred. The system cannot find the file specified.
пробовал mongod, mongodb.
mongod --config "C:\Program Files\MongoDB\Server\3.6\mongod_primary.cfg" --install --serviceName "MongoDB_Primary" --serviceDisplayName "MongoDB Primary"
проверьте службы Windows
если у вас есть сервис для монго, удалите его командой run bellow
mongod --remove
создайте файл mongo.cfg с приведенным ниже содержимым
systemLog:
место назначения:
путь к файлу : c: \ data \ log \ mongod.log
хранилище:
dbPath: c: \ data \ db
путь: где вы хотите хранить данные журнала
dbPath: каталог вашей базы данных
затем выполните команду ниже
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: имя вашей службы
начать обслуживание
net start MongoDB
теперь все сделано. наслаждайся этим
В моем случае я создаю mongod.cfg рядом с mongd.exe со следующим содержимым.
# mongod.conf
# for documentation of all options, see:
# http://docs.mongodb.org/manual/reference/configuration-options/
# Where and how to store data.
storage:
dbPath: D:\apps\MongoDB\Server\4.0\data
journal:
enabled: true
# engine:
# mmapv1:
# wiredTiger:
# where to write logging data.
systemLog:
destination: file
logAppend: true
path: D:\apps\MongoDB\Server\4.0\log\mongod.log
# network interfaces
net:
port: 27017
bindIp: 0.0.0.0
#processManagement:
#security:
#operationProfiling:
#replication:
#sharding:
## Enterprise-Only Options:
#auditLog:
#snmp:
Затем я запускаю две команды для создания сервиса.
D:\apps\MongoDB\Server\4.0\bin>mongod --config D:\apps\MongoDB\Server\4.0\bin\mongod.cfg --install
D:\apps\MongoDB\Server\4.0\bin>net stop mongodb
The MongoDB service is stopping.
The MongoDB service was stopped successfully.
D:\apps\MongoDB\Server\4.0\bin>mongod --remove
2019-04-10T09:39:29.305+0800 I CONTROL [main] Automatically disabling TLS 1.0, to force-enable TLS 1.0 specify --sslDisabledProtocols 'none'
2019-04-10T09:39:29.309+0800 I CONTROL [main] Trying to remove Windows service 'MongoDB'
2019-04-10T09:39:29.310+0800 I CONTROL [main] Service 'MongoDB' removed
D:\apps\MongoDB\Server\4.0\bin>
D:\apps\MongoDB\Server\4.0\bin>sc.exe create MongoDB binPath= "\"D:\apps\MongoDB\Server\4.0\bin\mongod.exe\" --service --config=\"D:\apps\MongoDB\Server\4.0\bin\mongod.cfg\""
[SC] CreateService SUCCESS
D:\apps\MongoDB\Server\4.0\bin>net start mongodb
The MongoDB service is starting..
The MongoDB service was started successfully.
D:\apps\MongoDB\Server\4.0\bin>
Следующее неверно, обратите внимание, что экранированные кавычки обязательны.
D:\apps\MongoDB\Server\4.0\bin>sc.exe create MongoDB binPath= "D:\apps\MongoDB\Server\4.0\bin\mongod --config D:\apps\MongoDB\Server\4.0\bin\mongod.cfg"
[SC] CreateService SUCCESS
D:\apps\MongoDB\Server\4.0\bin>net start mongodb
The service is not responding to the control function.
More help is available by typing NET HELPMSG 2186.
D:\apps\MongoDB\Server\4.0\bin>
Пожалуйста, попробуйте шаги в 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