Jak skonfigurować MongoDB, aby mógł działać jako usługa systemu Windows?
Jak skonfigurować MongoDB, aby mógł działać jako usługa systemu Windows?
Odpowiedzi:
Myślę, że jeśli uruchomisz go z --install
przełącznikiem wiersza polecenia, zainstaluje go jako usługę systemu Windows.
mongod --install
Warto jednak najpierw przeczytać ten wątek . Wydaje się, że występują pewne problemy ze ścieżkami względnymi / bezwzględnymi podczas zapisywania odpowiedniego klucza rejestru.
net start MongoDB
Po kilku godzinach prób w końcu to zrobiłem.
Upewnij się, że dodałeś <MONGODB_PATH>\bin
katalog do zmiennej systemowejPATH
Najpierw wykonałem to polecenie:
D:\mongodb\bin>mongod --remove
Następnie wykonałem to polecenie po otwarciu wiersza polecenia jako administrator:
D:\mongodb\bin>mongod --dbpath=D:\mongodb --logpath=D:\mongodb\log.txt --install
Następnie w wierszu polecenia wykonaj:
services.msc
Poszukaj usługi MongoDB i kliknij przycisk Start.
Jeśli tego nie zrobisz, plik dziennika ( D:\mongodb\log.txt
w powyższym przykładzie) będzie zawierał takie wiersze:
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)
a jeśli spróbujesz uruchomić usługę z konsoli innej niż administrator (tj. net start MongoDB
lub Start-Service MongoDB
w PowerShell), otrzymasz odpowiedź w następujący sposób:
System error 5 has occurred.
Access is denied.
albo to:
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
zamiast używać services.msc
. ( mongod
zalecił mi to.)
nie tylko --install
,
także potrzebuję --dbpath
i--logpath
a po ponownym uruchomieniu systemu operacyjnego musisz ręcznie usunąć „mongod.lock ”
mongod.lock
Windows 8 x64
W przeciwieństwie do innych odpowiedzi będzie to ..
URUCHOM SERWIS AUTOMATYCZNIE NA PONOWNYM URUCHOMIENIU SYSTEMU
(1) Zainstaluj MongoDB
(2) Dodaj bin do ścieżki
(3) Utwórz c: \ data \ db
(4) Utwórz c: \ data \ log
(5) Utwórz c: \ data \ mongod.cfg z zawartością ..
systemLog:
destination: file
path: c:\data\log\mongod.log
storage:
dbPath: c:\data\db
(6) Aby utworzyć usługę, która uruchomi się automatycznie po ponownym uruchomieniu . URUCHOM JAKO ADMINISTRATOR ..
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) Uruchom usługę. URUCHOM JAKO ADMINISTRATOR ..
net start MongoDB
WAŻNE: Nawet jeśli powie to „Usługa MongoDB została pomyślnie uruchomiona”, może się nie powieść
Aby dwukrotnie sprawdzić otwórz Panel sterowania> Usługi, upewnij się, że stan usługi MongoDB to „Uruchomiony”
Jeśli nie, sprawdź przyczynę niepowodzenia w pliku dziennika w C: \ data \ log \ mongod.log
(Nie uruchamiaj MongoDB za pomocą Panelu sterowania> Usługi, użyj .. net start MongoDB)
(8) Na koniec zrestartuj komputer przy uruchomionym MongoDB, a on będzie nadal działał przy ponownym uruchomieniu
Jeśli kiedykolwiek chcesz to zabić ...
net stop MongoDB
sc.exe delete MongoDB
3.4
do 3.6
wersji tego poleceniasc.exe create MongoDB binPath= "\"C:\Program Files\MongoDB\Server\3.4\bin\mongod.exe\" --service --config=\"C:\data\mongod.cfg\"" DisplayName= "MongoDB" start= "auto"
Poniższe kroki dotyczą systemu Windows.
Uruchom poniżej w trybie administracyjnym cmd
mongod --remove
Spowoduje to usunięcie istniejącej usługi MongoDB (jeśli istnieje).
mongod --dbpath "C:\data\db" --logpath "C:\Program Files\MongoDB\Server\3.4\bin\mongod.log" --install --serviceName "MongoDB"
Upewnij się, że ten C:\data\db
folder istnieje
Otwórz usługi dzięki:
services.msc
Znajdź MongoDB -> Kliknij prawym przyciskiem myszy -> Start
Możesz użyć poniższego polecenia do uruchomienia mongodb jako usługi 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
Jeśli używasz mongodb z parametrami domyślnymi, możesz użyć tych wartości:
Więcej informacji na temat tego polecenia tutaj
Próbowałem wszystkich odpowiedzi, a następnie zrobiłem to tak, jak to opisuje https://docs.mongodb.org/manual/tutorial/install-mongodb-on-windows/#configure-a-windows-service-for-mongodb-community-edition .
Użyj pliku konfiguracyjnego ...
"C:\mongodb\bin\mongod.exe" --config "C:\mongodb\mongod.cfg" --install
Ten skrypt PowerShell pobiera i instaluje MongoDB jako usługę 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
To była jedyna rzecz, która działała dla mnie. Ponieważ wszystko musiało być ścieżką absolutną:
C:\Program Files\MongoDB\Server\3.2\bin>mongod --install --dbpath=c:/data/db --logpath=c:/data/logs/log.txt
Musiałem też to uruchomić admin cmd
Zalecany sposób mongod --install
powoduje błąd:
2015-12-03T18:18:28.896+0100 I CONTROL --install has to be used with a log file for server output
Po zainstalowaniu mongodb C:\mongodb
musisz po prostu dodać ścieżkę dziennika:
mongod --install --logpath C:\mongodb\logs\mongo.log
Ścieżka do pliku dziennika musi istnieć i musi być bezwzględną ścieżką systemu Windows. Następnie uruchom usługę MongoDB, wpisując:
net start MongoDB
Rozważ użycie
mongod --install --rest --master
Praca na Mongo DB: 3.6
(1) Zainstaluj MongoDB
(2) Dodaj bin do zmiennej ścieżki środowiskowej
(3) Utwórz c:\data\db
(4) Utwórz c:\data\mongod.log
(5) Uruchom poniżej polecenia w bin
folderze
. \ mongod.exe --install --logpath c: \ data \ mongod.log --logappend --bind_ip 12 7.0.0.1 --dbpath c: \ data \ db
(6) Aby uruchomić mongo db jako usługę
start netto MongoDB
(7) Na koniec uruchom mongo
w wierszu polecenia, aby sprawdzić, czy powłoka mongo jest otwarta, czy nie.
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
Oto, co zadziałało dla mnie:
sc.exe create MongoDB binPath= "d:\MongoDB\bin\mongod.exe --service --config=d:\MongoDB\bin\mongod.config" displayname= "MongoDB 2.6 Standard" start= "auto"
ucieczka przed binPath nie powiodła się, jak opisano w dokumentacji Mongo
Nie powiodło się:
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"
Najprostszym sposobem jest
C:\data\db
C:\data\db\log.txt
Otwórz wiersz polecenia jako „Uruchom jako administrator” i upewnij się, że ścieżka katalogu bin mogodb jest poprawna i zapisz
C:\Program Files\MongoDB\Server\3.4\bin> mongod.exe --install mongod --dbpath="c:\data\db" --logpath="c:\data\db\log.txt"
Uruchom usługę mongodb:
net run MongoDB
Praca na MongoDB 3.4 [Windows]
Utwórz plik w C: /mongodb/mongodb.config przy użyciu tej konfiguracji:
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
Aby zainstalować MongoDb jako usługę, uruchom to polecenie w PowerShell z uprawnieniami administratora
mongod --config = "C: \ mongodb \ mongodb.config" --install --service
Otwórz Services.msc i poszukaj MongoDb, a następnie uruchom go
Jestem w wersji 2.4.9 i używam pliku konfiguracyjnego. Usługa nie uruchomi się, dopóki nie otoczę znaku równości w pliku konfiguracyjnym spacjami:
dbpath = D:\Mongo data
logpath = C:\mongodb\logs\mongo.log
logappend = true
Pierwotnie miałem:
logpath=C:\mongodb\logs\mongo.log
Odkryłem również, że podczas instalowania usługi musisz użyć bezwzględnej ścieżki do pliku konfiguracyjnego, np .:
c:\mongodb\bin\>mongodb.exe C:\mongodb\bin\mongod.conf --install
Nie ulegaj pokusie umieszczania odwróconych przecinków wokół ścieżki db ze spacjami. Wygląda na to, że usługa uruchomi się po uruchomieniu Net Start MongoDB, ale zakończy się. Sprawdź pliki dziennika, aby potwierdzić, że usługa naprawdę się uruchomiła.
Odkryłem, że powinieneś przekazać: dbpath, config i logfile do mongod z flagą install
przykład:
mongod --dbpath=c:\data\db --config=c:\data\db\config.cfg --logpath=c:\data\db\log.txt --install
uwaga: Mam zmienną mongod w mojej zmiennej path.
Możesz kontrolować usługę za pomocą:
net start mongodb
net stop mongodb
Oto kroki, aby zainstalować MongoDB jako usługę systemu Windows:
Utwórz katalog dziennika, np C:\MongoDB\log
Utwórz katalog db, np C:\MongoDB\db
Przygotuj plik konfiguracyjny z następującymi wierszami
dbpath=C:\MongoDB\db
logpath=C:\MongoDB\log
Umieść plik konfiguracyjny o nazwie mongod.cfg w folderze „C: \ MongoDB \”
Następujące polecenie zainstaluje na twoim komputerze usługę 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"
Po uruchomieniu tego polecenia otrzymasz [SC] CreateService SUCCESS
Uruchom następujące polecenie w wierszu polecenia
net start MongoDB
Jeśli instalujesz MongoDB 2.6.1 lub nowszą wersję przy użyciu pliku MSI do pobrania z wiersza polecenia administratora , należy automatycznie utworzyć definicję usługi.
Dokumentacja MongoDB zawiera również samouczek, który pomoże Ci ręcznie utworzyć definicję usługi Windows, jeśli to konieczne.
Ta odpowiedź jest dla tych, którzy już zainstalowali mongo DB za pomocą instalatora MSI.
Załóżmy, że domyślną zainstalowaną lokalizacją jest „C: \ Program Files \ MongoDB \ Server \ 3.2 \ bin”
Kroki, aby uruchomić Mongo jako usługę okienną
cd C:\Program Files\MongoDB\Server\3.2\bin
(sprawdź ścieżkę poprawnie, ponieważ może być zainstalowana inna wersja, a nie 3.2).net start MongoDB
services.msc
i sprawdź, czy Mongo działa jako usługa.System error 2 has occurred. The system cannot find the file specified.
wypróbowałem także mongod, mongodb.
mongod --config "C:\Program Files\MongoDB\Server\3.6\mongod_primary.cfg" --install --serviceName "MongoDB_Primary" --serviceDisplayName "MongoDB Primary"
sprawdź usługi systemu Windows
jeśli masz usługę mongo, usuń ją, uruchamiając poniższe polecenie
mongod --remove
utwórz plik mongo.cfg z poniższą zawartością
systemLog:
miejsce docelowe:
ścieżka pliku : c: \ data \ log \ mongod.log
pamięć:
dbPath: c: \ data \ db
ścieżka: gdzie chcesz przechowywać dane dziennika
dbPath: katalog bazy danych
następnie uruchom poniższe polecenie
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:
konfiguracja katalogu instalacyjnego mongodb : adres pliku .cfg
DisplayName: nazwa usługi
uruchomić usługę
net start MongoDB
teraz wszystkie rzeczy są skończone. ciesz się tym
W moim przypadku tworzę plik mongod.cfg obok pliku mongd.exe z następującą zawartością.
# 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:
Następnie uruchamiam oba polecenia, aby utworzyć usługę.
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>
Poniższe informacje są niepoprawne, należy pamiętać, że wymagane znaki zapytania są wymagane.
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>
Plz wypróbuj kroki w Mongo DB: 3.6 i 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