wake-up-neo.net

Wie kann man MongoDB als Windows-Dienst ausführen?

Wie kann man MongoDB so einrichten, dass es als Windows-Dienst ausgeführt werden kann?

188
heisthedon

Ich denke, wenn Sie es mit dem Befehlszeilenschalter --install ausführen, wird es als Windows-Dienst installiert.

mongod --install

Es könnte sich jedoch lohnen, zuerst diesen Thread zu lesen. Es scheint einige Probleme mit relativen/absoluten Pfaden zu geben, wenn der entsprechende Registrierungsschlüssel geschrieben wird.

103
Stephen Curran

Nachdem ich mehrere Stunden versucht hatte, tat ich es endlich.

Stellen Sie sicher, dass Sie das Verzeichnis <MONGODB_PATH>\bin zur Systemvariablen PATH hinzugefügt haben.

Zuerst habe ich diesen Befehl ausgeführt:

D:\mongodb\bin>mongod --remove

Dann habe ich diesen Befehl ausgeführt, nachdem ich die Eingabeaufforderung als Administrator geöffnet hatte:

D:\mongodb\bin>mongod --dbpath=D:\mongodb --logpath=D:\mongodb\log.txt --install

Danach genau dort im Befehl Prompt ausführen:

services.msc

Suchen Sie nach dem MongoDB-Dienst und klicken Sie auf Start.


HINWEIS: Stellen Sie sicher, dass Sie die Eingabeaufforderung als Administrator ausführen.

Wenn Sie dies nicht tun, enthält Ihre Protokolldatei ('D:\mongodb\log.txt' im obigen Beispiel) folgende Zeilen:

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)

wenn Sie versuchen, den Dienst über eine Nicht-Administrationskonsole zu starten (d. h. net start MongoDB oder Start-Service MongoDB in PowerShell), erhalten Sie eine Antwort wie folgt:

System error 5 has occurred.
Access is denied.

oder dieses:

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
322
hyeomans

nicht nur --install

brauchen auch --dbpath und --logpath

und nach dem Neustart des Betriebssystems müssen Sie "mongod.lock " manuell löschen

63
ruby

Im Gegensatz zu anderen Antworten wird dies ..

STARTEN SIE DEN SERVICE AUTOMATISCH BEIM SYSTEM-REBOOT/NEUSTART

MongoDB installieren

Windows

(1) Installieren Sie MongoDB

(2) Hinzufügen eines Ablageplatzes zum Pfad

(3) Erstellen Sie c:\data\db

(4) Erstellen Sie c:\data\log

(5) Erstellen Sie c:\data\mongod.cfg mit Inhalten.

systemLog:
    destination: file
    path: c:\data\log\mongod.log
storage:
    dbPath: c:\data\db

(6) Dienst erstellen, der beim Neustart automatisch startet .. RUN AS ADMIN ..

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) Starten Sie den Dienst .. ALS ADMIN LAUFEN ..

net start MongoDB

WICHTIG: Selbst wenn dies besagt, dass der MongoDB-Dienst erfolgreich gestartet wurde, kann dies fehlschlagen

Um zu überprüfen, ob die Systemsteuerung> Dienste geöffnet ist, stellen Sie sicher, dass der Status des MongoDB-Dienstes "Running" ist.

Ist dies nicht der Fall, überprüfen Sie Ihre Protokolldatei unter C:\data\log\mongod.log auf den Grund für den Fehler und beheben Sie sie

(Starten Sie MongoDB nicht über Systemsteuerung> Dienste, verwenden Sie .. net Start MongoDB)

(8) Starten Sie schließlich Ihren Computer neu, wenn MongoDB ausgeführt wird. Der Neustart erfolgt weiterhin

Wenn Sie es jemals töten wollen ..

net stop MongoDB

sc.exe delete MongoDB
37
danday74

Die folgenden Schritte gelten für Windows.

Führen Sie unten in einer administrative cmd aus

mongod --remove

Dadurch wird der vorhandene MongoDB-Dienst (falls vorhanden) entfernt.

mongod --dbpath "C:\data\db" --logpath "C:\Program Files\MongoDB\Server\3.4\bin\mongod.log" --install --serviceName "MongoDB"

Stellen Sie sicher, dass der Ordner C:\data\db vorhanden ist

Offene Dienste mit:

services.msc

Find MongoDB -> Rechtsklick -> Start

23
student

Sie können den folgenden Befehl verwenden, um mongodb als Windows-Dienst auszuführen 

"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 

Wenn Sie Mongodb mit Standardparametern verwenden, können Sie diese Werte verwenden: 

  • ihre IP-Adresse: 127.0.0.1 oder localhost 
  • yourPortNumber: 27017 (Standardport) oder nicht --port
  • serviceDisplayName: nur wenn Sie mehr als einen Dienst ausführen (seit mongodb 1.8)

Weitere Informationen zu diesem Befehl finden Sie hier 

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

18
chafank

Ich habe alle Antworten ausprobiert und es dann so gemacht https://docs.mongodb.org/manual/tutorial/install-mongodb-on-windows/#configure-a-windows-service-for-mongodb-community-edition beschreibt es. 

Verwenden Sie eine Konfigurationsdatei ...

"C:\mongodb\bin\mongod.exe" --config "C:\mongodb\mongod.cfg" --install

14
helt

Dieses PowerShell-Skript lädt MongoDB als Windows-Dienst herunter und installiert es:

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
14
Serdar

Dies war das einzige, was für mich funktionierte. Da alles ein absoluter Pfad sein musste:

C:\Program Files\MongoDB\Server\3.2\bin>mongod --install --dbpath=c:/data/db --logpath=c:/data/logs/log.txt

Ich musste es auch von admin cmd ausführen

10
Jamie Hutber

Der empfohlene Weg mongod --install führt zu einem Fehler:

2015-12-03T18:18:28.896+0100 I CONTROL  --install has to be used with a log file for server output

Nachdem Sie mongodb in C:\mongodb installiert haben, müssen Sie einfach den Logpfad hinzufügen:

mongod --install --logpath C:\mongodb\logs\mongo.log

Der Pfad zur Protokolldatei muss vorhanden sein und muss ein absoluter Windows-Pfad sein. Dann starten Sie den MongoDB-Dienst, indem Sie Folgendes eingeben:

net start MongoDB
6
Peter Gerhat

Arbeiten an Mongo DB: 3.6

(1) Installieren Sie MongoDB

(2) Hinzufügen einer Ablage zur Umgebungspfadvariablen

(3) c:\data\db erstellen

(4) c:\data\mongod.log erstellen

(5) Führen Sie unter Befehl den Ordner bin aus

.\mongod.exe --install --logpath c:\data\mongod.log --logappend --bind_ip 12 7.0.0.1 --dbpath c:\data\db

(6) um mongo db als service zu starten 

net Start MongoDB

(7) Führen Sie schließlich mongo in der Befehlszeile aus, um zu überprüfen, ob die Mongo Shell geöffnet ist oder nicht.

5
Zahid Rahman

Erwägen Sie die Verwendung

mongod --install --rest --master
5
jrojo

Das hat bei mir funktioniert:

sc.exe create MongoDB binPath= "d:\MongoDB\bin\mongod.exe --service --config=d:\MongoDB\bin\mongod.config" displayname= "MongoDB 2.6 Standard" start= "auto"

die Flucht vor dem binPath schlug für mich fehl, wie in der Mongo-Dokumentation beschrieben

Gescheitert:

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

Der einfachste Weg ist,

  1. Ordner C:\data\db erstellen
  2. Datei C:\data\db\log.txt erstellen
  3. Öffnen Sie die Eingabeaufforderung als "Als Administrator ausführen", und stellen Sie sicher, dass der Verzeichnispfad von mogodb bin korrekt ist, und schreiben Sie

    C:\Program Files\MongoDB\Server\3.4\bin> mongod.exe --install mongod --dbpath="c:\data\db" --logpath="c:\data\db\log.txt" 
    
  4. Mongodb-Dienst starten:

    net run MongoDB
    
4
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

Referenz

4

Arbeiten an MongoDB 3.4 [Windows]

  • Erstellen Sie das Verzeichnis C:/mongodb/data 
  • Erstellen Sie eine Datei in C: /mongodb/mongodb.config mit dieser Konfiguration: 

    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
    
  • Um MongoDb als Dienst zu installieren, führen Sie diesen Befehl in Powershell mit Administratorrechten aus

    mongod --config = "C:\mongodb\mongodb.config" --install --service

  • Öffnen Sie Services.msc, suchen Sie nach MongoDb und starten Sie es 

4
Marco Fantasia

Wenn derzeit (bis Version 2.4.4) ein Pfad (dbpath/logpath/config) Leerzeichen enthält, wird der Dienst nicht gestartet und der Fehler wird angezeigt: "Der Dienst reagiert nicht auf die Steuerfunktion".

3
RoeeK

Erstellen Sie für Version 2.4.3 (aktuelle Version ab Buchungsdatum) eine Konfigurationsdatei, und führen Sie dann Folgendes aus:

C:\MongoDB\bin\mongod.exe --config C:\MongoDB\mongod.cfg --service

3
iisystems

Ich bin auf Version 2.4.9 und verwende eine Konfigurationsdatei. Der Dienst konnte erst gestartet werden, nachdem ich das Gleichheitszeichen in der Konfigurationsdatei mit Leerzeichen umgeben hatte:

dbpath = D:\Mongo data
logpath = C:\mongodb\logs\mongo.log 
logappend = true

Ursprünglich hatte ich:

logpath=C:\mongodb\logs\mongo.log 

Ich habe auch festgestellt, dass Sie bei der Installation des Dienstes einen absoluten Pfad für die Konfigurationsdatei verwenden müssen, z. B .:

c:\mongodb\bin\>mongodb.exe C:\mongodb\bin\mongod.conf --install

Seien Sie nicht versucht, Anführungszeichen um einen dbpath mit Leerzeichen zu setzen. Der Dienst wird gestartet, wenn Sie net start MongoDB ausführen. Der Dienst wird jedoch beendet. Überprüfen Sie die Protokolldateien auf die Bestätigung, dass der Dienst tatsächlich gestartet wurde.

2
CrispinH

Führen Sie "cmd.exe" als Administrator aus und führen Sie dann "sc.exe" aus, um einen neuen Windows-Dienst hinzuzufügen.

zum Beispiel:

sc.exe create MongoDB binPath= "c:\program files\mongodb\server\3.2\bin\mongod.exe"
2
Terry Lin

Ich habe festgestellt, dass Sie Folgendes übergeben sollten: dbpath, config und logfile an mongod mit dem install-Flag 

beispiel: 

mongod --dbpath=c:\data\db --config=c:\data\db\config.cfg --logpath=c:\data\db\log.txt --install 

hinweis: Ich habe einen Mongod-Pfad in meiner Pfadvariablen. 

Sie können den Dienst steuern mit:

net start mongodb
net stop  mongodb 
2
aeid

Wenn Sie MongoDB 2.6.1 oder höher mit MSI-Download von einer Administrator-Eingabeaufforderung installieren, sollte automatisch eine Service-Definition für Sie erstellt werden.

In der MongoDB-Dokumentation finden Sie auch ein Lernprogramm, das Sie bei Bedarf mit der Definition von Manuelles Erstellen eines Windows-Dienstes unterstützt.

1
Stennie

So installieren Sie MongoDB als Windows-Dienst: 

  1. Erstellen Sie ein Protokollverzeichnis, z. C:\MongoDB\log

  2. Erstellen Sie ein Datenbankverzeichnis, z. C:\MongoDB\db

  3. Bereiten Sie eine Konfigurationsdatei mit folgenden Zeilen vor

    dbpath=C:\MongoDB\db

    logpath=C:\MongoDB\log

    Die Konfigurationsdatei mit dem Namen mongod.cfg im Ordner "C:\MongoDB \"ablegen.

  4. Mit dem folgenden Befehl wird der Windows-Dienst auf Ihrem 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" installiert.

  5. Sobald Sie diesen Befehl ausführen, erhalten Sie den [SC] CreateService SUCCESS

  6. Führen Sie den folgenden Befehl an der Eingabeaufforderung aus

    net start MongoDB

1
C.P. Soni

Diese Antwort gilt für diejenigen, die bereits mit dem MSI-Installationsprogramm Mongo DB installiert haben. 

Angenommen, Ihr Standardinstallationspfad lautet "C:\Programme\MongoDB\Server\3.2\bin".

Schritte, um Mongo als Fensterservice auszuführen

  1. Öffnen Sie den Befehl Aufforderung als Administrator
  2. Geben Sie cd C:\Program Files\MongoDB\Server\3.2\bin ein (überprüfen Sie den Pfad ordnungsgemäß, da möglicherweise eine andere Version als 3.2 installiert ist). 
  3. Drücken Sie Enter
  4. Typ net start MongoDB
  5. Drücken Sie Enter
  6. Drücken Sie Windows + R, geben Sie services.msc ein und prüfen Sie, ob Mongo als Dienst ausgeführt wird.
1
Abhas Bhoi
  1. windows-Dienste überprüfen 

    wenn Sie Service für Mongo haben, entfernen Sie ihn durch Ausführen des folgenden Befehls 
    mongod --remove 

  2. erstellen Sie die Datei mongo.cfg mit untenstehendem Inhalt 

    systemprotokoll:
    Zieldatei
    Pfad: c:\data\log\mongod.log
    Lager:
    dbPath: c:\data\db

    pfad: Wo Sie Protokolldaten speichern möchten 
    dbPath: Ihr Datenbankverzeichnis 

  3. führen Sie dann den folgenden Befehl aus

    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-Installationsverzeichnis
    config: .cfg-Dateiadresse 
    DisplayName: Ihr Dienstname 

  4. dienst starten

    net start MongoDB 

jetzt ist alles erledigt. Geniesse es

0
A.Hamzavi
mongod --config "C:\Program Files\MongoDB\Server\3.6\mongod_primary.cfg" --install --serviceName "MongoDB_Primary" --serviceDisplayName "MongoDB Primary"
0
Gehan Fernando

In meinem Fall erstelle ich die mongod.cfg neben der mongd.exe mit folgendem Inhalt.

# 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:

Dann führe ich einen der beiden Befehle aus, um den Dienst zu erstellen.

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>

Die folgenden Angaben sind nicht korrekt. Beachten Sie, dass Anführungszeichen erforderlich sind.

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>
0
Donghua Liu