Come configurare MongoDB in modo che possa essere eseguito come servizio di Windows?
Penso che se lo si esegue con l’ --install
riga di comando --install
, lo installa come servizio di Windows.
mongod --install
Potrebbe valere la pena leggere questo thread prima però. Sembra che ci siano alcuni problemi con percorsi relativi / assoluti quando viene scritta la chiave di registro pertinente.
Dopo aver provato diverse ore, finalmente l’ho fatto.
Assicurarsi di aver aggiunto la directory / bin alla variabile di sistema PATH
Per prima cosa ho eseguito questo comando:
D:\mongodb\bin>mongod --remove
Per prima cosa ho eseguito questo comando dopo aver aperto il prompt dei comandi come amministratore:
D:\mongodb\bin>mongod --dbpath=D:\mongodb --logpath=D:\mongodb\log.txt --install
Dopodiché, proprio lì nel prompt dei comandi, esegui:
services.msc
E cercare il servizio MongoDB e fare clic su Start.
Se non si utilizza il file di registro (‘D: \ mongodb \ log.txt’ nell’esempio precedente) conterrà 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 provate ad avviare il servizio da una console non di amministrazione, (ad esempio, net start MongoDB
o Start-Service MongoDB
in PowerShell), otterrete una risposta come questa:
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 di --dbpath
e --logpath
e dopo il riavvio del sistema operativo è necessario eliminare “mongod.lock ” manualmente
A differenza di altre risposte, questo …
AVVIARE IL SERVIZIO AUTOMATICAMENTE SU REBOOT / RIAVVIO SISTEMA
(1) Installa MongoDB
(2) Aggiungi bin al percorso
(3) Creare c: \ data \ db
(4) Creare c: \ data \ log
(5) Creare c: \ data \ mongod.cfg con i contenuti ..
systemLog: destination: file path: c:\data\log\mongod.log storage: dbPath: c:\data\db
(6) Per creare un servizio che si avvierà automaticamente al riavvio .. ESEGUIRE COME AMMINISTRARE ..
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 .. ESEGUIRE COME AMMINISTRARE ..
net start MongoDB
IMPORTANTE: anche se questo dice “Il servizio MongoDB è stato avviato con successo” può fallire
Per ricontrollare aprire Pannello di controllo> Servizi, assicurarsi che lo stato del servizio MongoDB sia ‘In esecuzione’
In caso contrario, controllare il file di registro in C: \ data \ log \ mongod.log per il motivo dell’errore e risolverlo
(Non avviare MongoDB tramite Pannello di controllo> Servizi, utilizzare .. net start MongoDB)
(8) Infine, riavvia il computer con MongoDB in esecuzione e sarà ancora in esecuzione al riavvio
Se mai vuoi ucciderlo ..
net stop MongoDB sc.exe delete MongoDB
I seguenti passaggi si applicano a Windows.
Esegui sotto in un cmd
amministrativo
mongod --remove
Questo rimuoverà 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 la cartella C:\data\db
esista
Apri i servizi con:
services.msc
Trova MongoDB -> Fai clic con il pulsante destro del mouse -> Avvia
È ansible utilizzare il comando seguente per eseguire 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 predefiniti, è ansible utilizzare questi valori:
Ci sono ulteriori informazioni su questo comando qui
Questo script PowerShell 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 ho fatto come descrive https://docs.mongodb.org/manual/tutorial/install-mongodb-on-windows/#configure-a-windows-service-for-mongodb-community-edition .
Usa 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 eseguirlo da admin cmd
Considerare l’utilizzo
mongod --install --rest --master
Il modo raccomandato mongod --install
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
è sufficiente aggiungere il percorso log:
mongod --install --logpath C:\mongodb\logs\mongo.log
Il percorso del file di log deve esistere e deve essere un percorso di Windows assoluto. Quindi avvii il servizio MongoDB digitando:
net start MongoDB
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
Riferimento
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"
l’escaping di binPath non funzionava come descritto nella documentazione di 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 è,
C:\data\db
C:\data\db\log.txt
Aprire il prompt dei comandi come “Esegui come amministratore” e assicurarsi che il percorso della directory bin mogodb sia 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 il servizio mongodb:
net run MongoDB
Lavorare su MongoDB 3.4 [Windows]
Crea 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 servizio, esegui questo comando in PowerShell con la potenza dell’amministratore
mongod –config = “C: \ mongodb \ mongodb.config” –install –service
Apri Services.msc e cerca MongoDb, quindi avvialo
Lavorando su Mongo DB: 3.6
(1) Installa MongoDB
(2) Aggiungi bin alla variabile del percorso d’ambiente
(3) Creare c:\data\db
(4) Creare c:\data\mongod.log
(5) Esegui 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 come servizio
net start MongoDB
(7) Finalmente esegui mongo
nella riga di comando per controllare che la shell mongo sia aperta o meno.
Per la versione 2.4.3 (versione corrente alla data di pubblicazione), creare un file di configurazione e quindi eseguire quanto segue:
C:\MongoDB\bin\mongod.exe --config C:\MongoDB\mongod.cfg --service
Attualmente (fino alla versione 2.4.4), se qualche percorso (dbpath / logpath / config) contiene spazi, il servizio non verrà avviato e mostrerà l’errore: “Il servizio non risponde alla funzione di controllo”.
Sono sulla versione 2.4.9 e uso un file di configurazione. Il servizio non si avvia finché non ho circondato il segno di uguale nel file di configurazione con gli spazi:
dbpath = D:\Mongo data logpath = C:\mongodb\logs\mongo.log logappend = true
Originariamente avevo:
logpath=C:\mongodb\logs\mongo.log
Ho anche scoperto che durante l’installazione del servizio devi utilizzare un percorso assoluto per il file di configurazione, ad esempio:
c:\mongodb\bin\>mongodb.exe C:\mongodb\bin\mongod.conf --install
Non essere tentato di mettere virgole invertite attorno a un dbpath con spazi. Il servizio sembrerà iniziare quando eseguirai MongoDB su net ma terminerà. Controllare i file di registro per verificare che il servizio sia realmente avviato.
Eseguire “cmd.exe” come amministratore e quindi eseguire “sc.exe” per aggiungere un nuovo servizio di Windows.
per esempio:
sc.exe create MongoDB binPath= "c:\program files\mongodb\server\3.2\bin\mongod.exe"
Ho scoperto che dovresti passare: dbpath, config e logfile a mongod con il flag di installazione
esempio :
mongod --dbpath=c:\data\db --config=c:\data\db\config.cfg --logpath=c:\data\db\log.txt --install
nota: ho percorso mongod nella variabile path mia.
Puoi controllare il servizio con:
net start mongodb net stop mongodb
Se si installa MongoDB 2.6.1 o versione successiva utilizzando il download MSI da un prompt dei comandi dell’amministratore , è necessario creare automaticamente una definizione di servizio.
La documentazione di MongoDB ha anche un tutorial per aiutarti a creare manualmente una definizione di servizio di Windows, se necessario.
Questa risposta è per coloro che hanno già installato mongo DB utilizzando il programma di installazione MSI.
Supponiamo che il tuo percorso predefinito sia “C: \ Programmi \ MongoDB \ Server \ 3.2 \ bin”
Passi per eseguire mongo come servizio di una finestra
cd C:\Program Files\MongoDB\Server\3.2\bin
(controlla il percorso correttamente, poiché potresti avere una versione diversa installata e non 3.2). net start MongoDB
services.msc
e controlla se Mongo è in esecuzione come servizio. Questi sono i passaggi per installare MongoDB come servizio di Windows:
Creare una directory di registro, ad es. C:\MongoDB\log
Creare una directory db, ad es. C:\MongoDB\db
Preparare un file di configurazione con le seguenti linee
dbpath=C:\MongoDB\db
logpath=C:\MongoDB\log
Inserire il file di configurazione con il nome mongod.cfg nella cartella “C: \ MongoDB \”
Il seguente comando installa il servizio Windows sul tuo 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 eseguito questo comando, si otterrà il [SC] CreateService SUCCESS
Esegui il seguente comando sul prompt dei comandi
net start MongoDB
mongod --config "C:\Program Files\MongoDB\Server\3.6\mongod_primary.cfg" --install --serviceName "MongoDB_Primary" --serviceDisplayName "MongoDB Primary"
Passaggio 1: aprire un prompt dei comandi di amministratore. Premere il tasto Win, digitare cmd.exe e premere Ctrl + Maiusc + Invio per eseguire il prompt dei comandi come amministratore.
Esegui i passaggi rimanenti dal prompt dei comandi dell’amministratore.
Passaggio 2: crea directory. Crea directory per il tuo database e file di registro:
mkdir c:\data\db mkdir c:\data\log
Passaggio 3: creare un file di configurazione. Crea un file di configurazione. Il file deve impostare systemLog.path. Includere opzioni di configurazione aggiuntive come appropriato.
Ad esempio, creare un file in C: \ Programmi \ MongoDB \ Server \ 3.6 \ mongod.cfg che specifica sia systemLog.path che storage.dbPath:
systemLog: destination: file path: c:\data\log\mongod.log storage: dbPath: c:\data\db
Passaggio 4: installare il servizio MongoDB. Importante: esegui tutti i seguenti comandi nel prompt dei comandi con “Privilegi amministrativi”.
Installare il servizio MongoDB avviando mongod.exe con l’opzione –install e l’opzione -config per specificare il file di configurazione creato in precedenza.
"C:\Program Files\MongoDB\Server\3.4\bin\mongod.exe" --config "C:\Program Files\MongoDB\Server\3.4\mongod.cfg" --install
Per utilizzare un dbpath alternativo, specificare il percorso nel file di configurazione (ad es. C: \ mongodb \ mongod.cfg) o sulla riga di comando con l’opzione –dbpath.
Se necessario, è ansible installare servizi per più istanze di mongod.exe o mongos.exe. Installa ogni servizio con un unico –serviceName e –serviceDisplayName. Utilizzare più istanze solo quando esistono sufficienti risorse di sistema e la progettazione del sistema lo richiede.
Passaggio 5: Avvia il servizio MongoDB.
net start MongoDB
Passaggio 6: interrompere o rimuovere il servizio MongoDB secondo necessità. Per interrompere il servizio MongoDB usa il seguente comando:
net stop MongoDB
Plz prova i passaggi 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