Як я можу налаштувати 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 через Панель управління> Сервіси, використовуйте .. чистий запуск 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
вам потрібно просто додати logpath:
mongod --install --logpath C:\mongodb\logs\mongo.log
Шлях до лог-файлу повинен існувати, і він повинен бути абсолютним шляхом Windows. Потім ви запускаєте службу MongoDB, ввівши:
net start MongoDB
Робота над DB DB: 3.6
(1) Встановіть MongoDB
(2) Додати бін до змінної шляху середовища
(3) Створіть c:\data\db
(4) Створіть c:\data\mongod.log
(5) Виконайте команду нижче bin
папки « Команда»
. \ mongod.exe --встановити --logpath c: \ data \ mongod.log --logappend --bind_ip 12 7.0.0.1 --dbpath c: \ data \ db
(6) Запустити mongo db як сервіс
чистий старт 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 як службу, запустіть цю команду в powerhell з адмініструванням
mongod --config = "C: \ mongodb \ mongodb.config" --встановити --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
Не спокушайтесь ставити перевернуті коми навколо пробілу з пробілами. Служба, як видається, запуститься, коли ви виконаєте чистий запуск MongoDB, але він припиниться. Перевірте файли журналу на підтвердження того, що сервіс дійсно запустився.
Я виявив, що вам слід передати: dbpath, config та logfile до mongod із прапором установки
приклад:
mongod --dbpath=c:\data\db --config=c:\data\db\config.cfg --logpath=c:\data\db\log.txt --install
Примітка. У моїй змінній шляху є шлях до монгода.
Ви можете керувати послугою за допомогою:
net start mongodb
net stop mongodb
Це кроки для встановлення MongoDB як служби Windows:
Створіть каталог журналів, наприклад C:\MongoDB\log
Створіть db-каталог, наприклад 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 вручну, якщо це необхідно.
Ця відповідь призначена для тих, хто вже встановив DB 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
якщо у вас є служба для mongo, видаліть її за допомогою команди run нижче
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 : .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: 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