Come posso eseguire MongoDB come servizio di Windows?
-
19-09-2019 - |
Domanda
Come posso configurare MongoDB modo che possa funzionare come servizio di Windows?
Soluzione
Credo che se lo si esegue con l'opzione della riga di comando --install
, si installa come servizio di Windows.
mongod --install
Potrebbe essere la pena di leggere questa discussione primo anche se. Sembra che ci sia qualche problema con percorsi assoluti / relativi quando la chiave di registro corrispondente viene scritto.
Altri suggerimenti
Dopo aver provato per diverse ore, ho finalmente fatto.
Assicurarsi che si è aggiunto alla directory <MONGODB_PATH>\bin
al sistema PATH
variabili
Per prima cosa ho eseguito questo comando:
D:\mongodb\bin>mongod --remove
Poi ho eseguito questo comando dopo l'apertura del prompt dei comandi come amministratore:
D:\mongodb\bin>mongod --dbpath=D:\mongodb --logpath=D:\mongodb\log.txt --install
Dopo che proprio lì nel prompt dei comandi eseguire:
services.msc
E guarda per il servizio MongoDB e fare clic su Start.
Nota. Assicurati di eseguire prompt dei comandi come amministratore
Se non si esegue questa operazione, il file di log ( 'D: \ MongoDB \ log.txt' nell'esempio di cui sopra) conterrà delle righe come queste:
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)
e se si tenta di avviare il servizio da una console non-admin, (vale a dire net start MongoDB
o Start-Service MongoDB
in PowerShell), si otterrà una risposta in questo modo:
System error 5 has occurred.
Access is denied.
o questo:
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
non solo --install
,
anche bisogno --dbpath
e --logpath
e dopo il riavvio del sistema operativo è necessario eliminare "mongod.lock " manualmente
A differenza di altre risposte questa volontà ..
avviare il servizio automaticamente SISTEMA reboot / RESTART
MongoDB install
di Windows
(1) Installare MongoDB
(2) Aggiungere bin al percorso
(3) Creazione di c: \ data \ db
(4) Creazione di c: \ data \ log
(5) Creazione di c: \ data \ mongod.cfg con contenuti ..
systemLog:
destination: file
path: c:\data\log\mongod.log
storage:
dbPath: c:\data\db
(6) Per creare un servizio che sarà avvio automatico al riavvio .. Esegui come amministratore ..
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) Avviare il servizio .. Esegui come ADMIN ..
net start MongoDB
IMPORTANTE: Anche se questo dice: 'Il servizio MongoDB è stato avviato con successo' si può fare a meno
Per controllare due volte aperto Pannello di controllo> Servizi, garantire la stato del servizio MongoDB è 'Running'
In caso contrario, controllare il file di log in C: \ data \ log \ mongod.log per la ragione del fallimento e fissarlo
(Non iniziare MongoDB tramite il Pannello di controllo> Servizi, l'uso .. net start MongoDB)
(8) Infine, riavviare la macchina con MongoDB in esecuzione e sarà ancora in esecuzione al riavvio
Se mai voglia di ucciderlo ..
net stop MongoDB
sc.exe delete MongoDB
I passaggi riportati di seguito si applicano a Windows.
Esegui di seguito in un amministrativo cmd
mongod --remove
Questo eliminerà il servizio MongoDB esistente (se presente).
mongod --dbpath "C:\data\db" --logpath "C:\Program Files\MongoDB\Server\3.4\bin\mongod.log" --install --serviceName "MongoDB"
Assicurarsi che esista la cartella C:\data\db
servizi aperti con:
services.msc
Trova MongoDB -> tasto destro -> Inizio
È possibile utilizzare il seguente comando per l'esecuzione di MongoDB come servizio di 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
Se si utilizza MongoDB con i parametri di default, è possibile utilizzare i seguenti valori:
- yourIPadress: 127.0.0.1 o localhost
- yourPortNumber: 27017 (porta di default) o Non mettere --port
- serviceDisplayName: solo se si esegue più di un servizio (dal MongoDB 1.8)
C'è di più informazioni su questo comando qui
Questa PowerShell script scarica e installa MongoDB come servizio di 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
Ho provato tutte le risposte e poi ha fatto il modo https://docs.mongodb.org/manual/tutorial/install-mongodb-on-windows/#configure-a-windows-service-for-mongodb-community- edizione descrive.
Utilizzare un file di configurazione ...
"C:\mongodb\bin\mongod.exe" --config "C:\mongodb\mongod.cfg" --install
Questa è stata l'unica cosa che ha funzionato per me. Come tutto doveva essere un percorso assoluto:
C:\Program Files\MongoDB\Server\3.2\bin>mongod --install --dbpath=c:/data/db --logpath=c:/data/logs/log.txt
Ho anche dovuto correre da admin cmd
Il modo in cui i risultati mongod --install
consigliati in errore:
2015-12-03T18:18:28.896+0100 I CONTROL --install has to be used with a log file for server output
Dopo aver installato MongoDB in C:\mongodb
è necessario aggiungere semplicemente il LogPath:
mongod --install --logpath C:\mongodb\logs\mongo.log
Il percorso per il file di log deve esistere e deve essere un percorso assoluto di Windows. Poi si avvia il servizio MongoDB digitando:
net start MongoDB
Si consiglia di utilizzare
mongod --install --rest --master
Lavorare su Mongo DB: 3.6
(1) Installare MongoDB
(2) Aggiungere bin alla variabile PATH ambiente
(3) Creare c:\data\db
(4) Creare c:\data\mongod.log
(5) Eseguire sotto comando sulla cartella bin
\ mongod.exe --install --logpath c:. \ Data \ mongod.log --logappend --bind_ip 12 7.0.0.1 --dbpath c: \ data \ db
(6) Per avviare Mongo db servizio
net start MongoDB
(7) eseguire Infine mongo
in linea di comando per controllare mongo shell è aperto o non.
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
Questo è ciò che ha funzionato per me:
sc.exe create MongoDB binPath= "d:\MongoDB\bin\mongod.exe --service --config=d:\MongoDB\bin\mongod.config" displayname= "MongoDB 2.6 Standard" start= "auto"
sfuggire al binpath stava venendo a mancare per me, come descritto nella documentazione Mongo
non riuscita:
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"
Il modo più semplice è,
- Crea cartella
C:\data\db
- Crea file di
C:\data\db\log.txt
-
Aprire Prompt dei comandi come "Esegui come amministratore" e assicurarsi che il percorso della directory bin mogodb è corretto e scrivere
C:\Program Files\MongoDB\Server\3.4\bin> mongod.exe --install mongod --dbpath="c:\data\db" --logpath="c:\data\db\log.txt"
-
Avvia servizio mongodb:
net run MongoDB
Lavorare su MongoDB 3.4 [Windows]
- Crea dir C: / / mongodb dati
-
Creare un file in C: /mongodb/mongodb.config usando questa configurazione:
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
-
Per installare MongoDb come un servizio, eseguire questo comando in PowerShell con il potere di amministrazione
mongod --config = "C: \ MongoDB \ mongodb.config" --install --service
-
Apri Services.msc e potete trovare MongoDb, quindi avviarlo
Per la versione 2.4.3 (versione aggiornata al data di invio), creare un file di configurazione e quindi eseguire il seguente:
C:\MongoDB\bin\mongod.exe --config C:\MongoDB\mongod.cfg --service
Al momento (fino alla versione 2.4.4), se qualsiasi percorso (DBPATH / logpath / config) contiene spazi, quindi il servizio non si avvia, e mostrare l'errore: "Il servizio non risponde alla funzione di controllo" .
Sono in versione 2.4.9 e l'utilizzo di un file di configurazione. Il servizio non partiva fino a quando ho circondato il segno di uguale nel file di configurazione con spazi:
dbpath = D:\Mongo data
logpath = C:\mongodb\logs\mongo.log
logappend = true
Inizialmente ho avuto:
logpath=C:\mongodb\logs\mongo.log
Ho anche scoperto che quando si installa il servizio che è necessario utilizzare un percorso assoluto per il file di configurazione per esempio:
c:\mongodb\bin\>mongodb.exe C:\mongodb\bin\mongod.conf --install
Non essere tentato di mettere le virgolette attorno a un DBPATH con spazi. Il servizio apparirà per iniziare quando si esegue net start MongoDB , ma terminerà. Controllare i file di log per la conferma che il servizio è davvero iniziato.
Esegui "cmd.exe" come amministratore e quindi eseguire "sc.exe" per aggiungere un nuovo servizio di Windows.
Ad esempio:
sc.exe create MongoDB binPath= "c:\program files\mongodb\server\3.2\bin\mongod.exe"
ho scoperto che si dovrebbe passare: DBPATH, config e file di log per mongod con il flag install
Esempio:
mongod --dbpath=c:\data\db --config=c:\data\db\config.cfg --logpath=c:\data\db\log.txt --install
Nota: ho mongod percorso nella mia variabile del percorso.
È possibile controllare il servizio con:
net start mongodb
net stop mongodb
Questi sono i passi per installare MongoDB come servizio di Windows:
-
Creare una directory di registro, ad esempio,
C:\MongoDB\log
-
Creare una directory db, per esempio
C:\MongoDB\db
-
Preparare un file di configurazione con righe seguenti
dbpath=C:\MongoDB\db
logpath=C:\MongoDB\log
Inserire il file di configurazione con il nome mongod.cfg nella cartella "C: \ MongoDB \"
-
seguente comando installare il servizio di Windows sul vostro
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"
-
Una volta che si esegue questo comando, si otterrà il
[SC] CreateService SUCCESS
-
Esegui seguente comando su Prompt dei comandi
net start MongoDB
Se si installa MongoDB 2.6.1 o più recente utilizzando il MSI scaricare da un comando amministratore Prompt, una definizione di servizio dovrebbe automaticamente essere creato per voi.
La documentazione MongoDB ha anche un tutorial per aiutarvi a creare manualmente un servizio di Windows definizione, se necessario.
Questa risposta è per coloro che hanno già installato Mongo DB utilizzando installazione MSI.
Diciamo predefinito installato posizione è "C: \ Program Files \ MongoDB \ Server \ 3.2 \ bin"
I passaggi per eseguire Mongo come servizio finestra
- Apri prompt dei comandi come amministratore
- Tipo
cd C:\Program Files\MongoDB\Server\3.2\bin
(controllare percorso correttamente, come si può avere una versione diversa installato, e non 3.2). - Premere Invio
- Tipo
net start MongoDB
- Premere Invio
- Premere Windows + R, digitare
services.msc
e verificare se Mongo è in esecuzione come servizio.
mongod --config "C:\Program Files\MongoDB\Server\3.6\mongod_primary.cfg" --install --serviceName "MongoDB_Primary" --serviceDisplayName "MongoDB Primary"
-
Windows Controllare servizi
se si dispone di un servizio per Mongo rimuoverlo dal comando di marcia soffietto
mongod --remove
-
creare il file mongo.cfg con contenuti soffietto
systemlog:
destinazione: file di
percorso: C: \ data \ log \ mongod.log
stoccaggio:
dbPath: c: \ data \ db
percorso: in cui si desidera memorizzare il login dati
dbPath: la vostra directory del database -
quindi eseguire il comando soffietto
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 directory di installazione
config: file .cfg indirizzo
DisplayName: Il tuo Nome servizio -
avviare il servizio
net start MongoDB
Ora ogni cose sono fatte. godere di quella
Nel mio caso, ho creare il mongod.cfg accanto al mongd.exe con il seguente contenuto.
# 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:
Poi ho eseguito entrambi i due comando per creare il servizio.
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>
non sono corrette, sono necessari i seguenti notare le virgolette escape.
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 provare la procedura descritta in Mongo DB: 3.6 e 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