Domanda

Come posso configurare MongoDB modo che possa funzionare come servizio di Windows?

È stato utile?

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

http://www.mongodb.org/display/DOCS/Windows+Service

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

di 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"

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 è,

  1. Crea cartella C:\data\db
  2. Crea file di C:\data\db\log.txt
  3. 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" 
    
  4. 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:

  1. Creare una directory di registro, ad esempio, C:\MongoDB\log

  2. Creare una directory db, per esempio C:\MongoDB\db

  3. 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 \"

  4. 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"

  5. Una volta che si esegue questo comando, si otterrà il [SC] CreateService SUCCESS

  6. 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

  1. Apri prompt dei comandi come amministratore
  2. 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).
  3. Premere Invio
  4. Tipo net start MongoDB
  5. Premere Invio
  6. 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"
  1. Windows Controllare servizi

    se si dispone di un servizio per Mongo rimuoverlo dal comando di marcia soffietto
    mongod --remove

  2. 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

  3. 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

  4. 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

  1. mongod --remove
  2. mongod --dbpath=C:/data/db --port 27017 --logpath C:/data/log/log.txt --service
  3. mongod --dbpath=C:/data/db --port 27017 --logpath C:/data/log/log.txt --install
  4. net start MongoDB
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top