Как я могу настроить MongoDB, чтобы он мог работать как служба Windows?
Как я могу запустить MongoDB в качестве службы Windows?
Ответ 1
Я думаю, что если вы запустите его с помощью командной строки --install
, он установит его как службу Windows.
mongod --install
Возможно, стоит сначала прочитать этот поток. Кажется, что есть некоторые проблемы с относительными/абсолютными путями, когда записывается соответствующий раздел реестра.
Ответ 2
Попробовав несколько часов, я наконец сделал это.
Убедитесь, что вы добавили <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
Ответ 3
не только --install
,
также требуется --dbpath
и --logpath
и после перезагрузки ОС вам нужно вручную удалить "mongod.lock"
Ответ 4
В отличие от других ответов, это будет..
НАЧАТЬ АВТОМАТИЧЕСКОЕ ОБСЛУЖИВАНИЕ СИСТЕМЫ 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
Ответ 5
Ниже приведены действия, относящиеся к 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 → Щелкните правой кнопкой мыши → Пуск
Ответ 6
Вы можете использовать приведенную ниже команду для запуска 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)
Здесь больше информации об этой команде
Ответ 7
Этот 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
Ответ 8
Я попробовал все ответы, а затем сделал это так, 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
Ответ 9
Это единственное, что сработало для меня. Поскольку все должно было быть абсолютным путем:
C:\Program Files\MongoDB\Server\3.2\bin>mongod --install --dbpath=c:/data/db --logpath=c:/data/logs/log.txt
Мне также пришлось запустить его из admin cmd
Ответ 10
Рекомендуемый способ 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
Ответ 11
Рассмотрим использование
mongod --install --rest --master
Ответ 12
Работа на БД Монго: 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 или нет.
Ответ 13
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
Ответ 14
Это то, что сработало для меня:
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"
Ответ 15
Самый простой способ:
- Создать папку
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
Ответ 16
Работа с MongoDB 3.4 [Windows]
- Создать каталог C:/mongodb/datali >
-
Создайте файл в 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, затем запустите его
Ответ 17
Для версии 2.4.3 (текущая версия с даты публикации) создайте файл конфигурации, а затем выполните следующее:
C:\MongoDB\bin\mongod.exe --config C:\MongoDB\mongod.cfg --service
Ответ 18
В настоящее время (до версии 2.4.4), если какой-либо путь (dbpath/logpath/config) содержит пробелы, то служба не запустится и покажет ошибку: "Служба не отвечает на функцию управления".
Ответ 19
Я нахожусь в версии 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, но она прекратится. Проверьте файлы журнала, чтобы подтвердить, что служба действительно началась.
Ответ 20
Запустите "cmd.exe" в качестве администратора, а затем запустите "sc.exe", чтобы добавить новую службу Windows.
например:
sc.exe create MongoDB binPath= "c:\program files\mongodb\server\3.2\bin\mongod.exe"
Ответ 21
Я обнаружил, что вы должны передать: 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
Ответ 22
Если вы устанавливаете MongoDB 2.6.1 или новее с помощью загрузки MSI из Командная строка администратора, для вас должно автоматически создаваться определение службы.
В документации MongoDB также есть учебное пособие, которое поможет вам "Вручную создать службу Windows" , если это необходимо.
Ответ 23
Этот ответ предназначен для тех, кто уже установил 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 как служба.
Ответ 24
Ниже перечислены шаги по установке 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
Ответ 25
mongod --config "C:\Program Files\MongoDB\Server\3.6\mongod_primary.cfg" --install --serviceName "MongoDB_Primary" --serviceDisplayName "MongoDB Primary"
Ответ 26
-
проверить службы Windows
если у вас есть сервис для Монго, удалите его командой run bellow
mongod --remove
-
создайте файл mongo.cfg с приведенным ниже содержимым
системный журнал:
назначение: файл
путь: 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
теперь все сделано. наслаждайся этим
Ответ 27
В моем случае я создаю 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>
Ответ 28
Пожалуйста, попробуйте шаги в 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