Frage

Wie kann ich MongoDB so kann es als Windows-Dienst ausgeführt?

War es hilfreich?

Lösung

Ich denke, wenn man es mit der --install Befehlszeilenoption ausgeführt, installiert er es als Windows-Dienst.

mongod --install

Es könnte lesenswert sein dieses Themas zuerst obwohl. Es scheint einige Probleme mit relativen / absoluten Pfaden zu sein, wenn der entsprechende Registrierungsschlüssel geschrieben wird.

Andere Tipps

Nach mehreren Stunden versucht, ich habe es schließlich tat.

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

Zuerst habe ich ausgeführt, um diesen Befehl ein:

D:\mongodb\bin>mongod --remove

Dann ausgeführt ich diesen Befehl nach dem Öffnen Eingabeaufforderung als Administrator:

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

Nach diesem Recht in der Eingabeaufforderung dort ausführen:

services.msc

Und Look für MongoDB-Dienst und klicken Sie auf Start.


. Hinweis: Stellen Sie sicher, Eingabeaufforderung als Administrator ausführen

Wenn Sie dies nicht tun, Ihre Log-Datei ( 'D: \ mongodb \ log.txt' in dem obigen Beispiel) enthält Zeilen wie diese:

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)

und wenn Sie versuchen, den Dienst von einer Nicht-Admin-Konsole zu starten, (d net start MongoDB oder Start-Service MongoDB in Powershell), erhalten Sie eine Antwort wie diese:

System error 5 has occurred.
Access is denied.

oder folgt aus:

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

nicht nur --install,

müssen auch --dbpath und --logpath

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

Im Gegensatz zu anderen Antworten dieses Willen ..

ANFANG DER SERVICE AUTOMATISCH SYSTEM REBOOT / RESTART

MongoDB Installieren

Fenster

(1) Installieren Sie MongoDB

In

(2) ist auf Pfad

(3) Erstellen Sie c: \ data \ db

(4) Erstellen Sie c: \ data \ log

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

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

(6) Dienst zu erstellen, wird Autostart beim Neustart .. 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"
Starten

(7) den Dienst .. RUN AS ADMIN ..

net start MongoDB

WICHTIG: Auch wenn dieser sagt: ‚Der MongoDB-Dienst wurde erfolgreich gestartet‘ es kann fehlschlagen

Um überprüfen öffnen die Systemsteuerung> Dienste sicher, dass der Status des MongoDB-Dienst ‚Running‘

Wenn nicht, überprüfen Sie die Protokolldatei unter C: \ data \ log \ mongod.log der Grund für das Scheitern und beheben

(Do starten MongoDB nicht über Systemsteuerung> Dienste, Einsatz .. net start MongoDB)

(8) Schließlich starten Sie Ihre Maschine mit MongoDB läuft und es wird noch läuft beim Neustart

Wenn Sie jemals wollen, es zu töten ..

net stop MongoDB

sc.exe delete MongoDB
  

Die folgenden Schritte gelten für Windows.

Ausführen unten in einem administrativen cmd

mongod --remove

Dies entfernt den vorhandenen MongoDB-Dienst (falls vorhanden).

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

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

Öffnen Dienste mit:

services.msc

Finden MongoDB -> Rechtsklick -> Start

Sie können unter den Befehl mongodb als Windows-Dienst für die Ausführung von

"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 Standardparameter verwenden, können Sie diese Werte verwenden:

  • yourIPadress: 127.0.0.1 oder localhost
  • yourPortNumber: 27017 (Standard-Port) oder tun sie nicht put --port
  • SERVICE: nur, wenn Sie laufen mehr als ein Dienst (seit mongodb 1.8)

Es gibt mehr Informationen zu diesem Befehl hier

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

Das Powershell-Skript heruntergeladen und installiert MongoDB als Windows-Dienst:

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

Ich habe versucht, alle Antworten und dann tat es den Weg https://docs.mongodb.org/manual/tutorial/install-mongodb-on-windows/#configure-a-windows-service-for-mongodb-community- Ausgabe beschreibt.

Verwenden Sie eine Konfigurationsdatei ...

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

Das war das einzige, was für mich gearbeitet. Wie alles, was ein absoluter Pfad sein mußte:

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

Ich hatte auch sie von admin cmd laufen

Die empfohlene Methode mongod --install Ergebnisse in Fehler:

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

Nach der Installation mongodb in C:\mongodb mit müssen Sie einfach die logpath hinzufügen:

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

Der Pfad zum Logfile muss vorhanden sein und es muss ein absoluter Windows-Pfad sein. Dann sind Sie den MongoDB-Dienst durch Eingabe beginnen:

net start MongoDB

Betrachten Sie mit

mongod --install --rest --master

Arbeiten an Mongo DB: 3.6

(1) Installieren Sie MongoDB

In

(2) ist auf Umgebungspfad Variable

(3) Erstellen Sie c:\data\db

(4) Erstellen Sie c:\data\mongod.log

(5) Run unter Befehl auf bin Ordner

  

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

(6) starten Mongo db als Service

  

net start MongoDB

(7) Schließlich mongo in Befehlszeile ausgeführt zu überprüfen mongo Schale geöffnet ist oder nicht.

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

Das ist was für mich gearbeitet:

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

Escaping the binPath für mich versagt, wie in der Mongo-Dokumentation

fehlgeschlagen:

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"

Der einfachste Weg ist,

  1. Ordner erstellen C:\data\db
  2. Erstellen Datei C:\data\db\log.txt
  3. Öffnen Sie die Eingabeaufforderung als „Ausführen als Administrator“ und stellen Sie sicher, dass das mogodb bin Verzeichnispfad korrekt ist und Schreib

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

    net run MongoDB
    

Arbeiten auf MongoDB 3.4 [Windows]

  • Erstelle dir 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
    
  • Installieren von MongoDb als Dienst ausführen dieses Befehls in powershell mit admin-power

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

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

Für die Version 2.4.3 (aktuelle Version ab Buchungsdatum), eine Konfigurationsdatei erstellen und dann die folgenden ausführen:

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

Zur Zeit (bis Version 2.4.4), wenn jeder Pfad (dbpath / logpath / config) Leerzeichen enthält, dann wird der Dienst nicht gestartet, und zeigen Sie den Fehler: „Der Dienst reagiert auf die Kontrollfunktion“ .

Ich bin auf Version 2.4.9 und unter Verwendung einer Konfigurationsdatei. Der Dienst würde nicht starten, bis ich das Gleichheitszeichen in der Konfigurationsdatei mit Leerzeichen umgeben:

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 bei der Installation des Service, dass Sie einen absoluten Pfad für die Konfigurationsdatei zB verwenden:

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

Do Anführungszeichen nicht versucht sein, zu setzen um ein dbpath mit Leerzeichen. Der Dienst wird erscheinen zu starten, wenn Sie ausführen net start MongoDB , aber es wird beendet. Überprüfen Sie die Protokolldateien für die Bestätigung, dass der Dienst wirklich begonnen.

Ausführen "cmd.exe" als Administrator an und führen Sie dann "sc.exe" einen neuen Windows-Dienst hinzuzufügen.

Beispiel:

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

fand ich, dass Sie passieren sollte: dbpath, config und Logfile mongod mit der Flagge installieren

Beispiel:

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

Anmerkung: Ich habe mongod Weg in meinen Pfadvariablen.

Sie können den Dienst steuern mit:

net start mongodb
net stop  mongodb 

Dies sind die Schritte MongoDB als Windows-Dienst zu installieren:

  1. Erstellen Sie ein Log-Verzeichnis, zum Beispiel C:\MongoDB\log

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

  3. Bereiten Sie eine Konfigurationsdatei mit folgenden Zeilen

    dbpath=C:\MongoDB\db

    logpath=C:\MongoDB\log

    Legen Sie die Konfigurationsdatei mit dem Namen mongod.cfg im Verzeichnis "C: \ MongoDB \"

  4. Nach dem Befehl des Windows-Dienst auf Ihrem installieren 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. Wenn Sie diesen Befehl ausführen, werden Sie die [SC] CreateService SUCCESS bekommen

  6. Ausführen folgender Befehl auf Eingabeaufforderung

    net start MongoDB

Wenn Sie installieren MongoDB 2.6.1 oder neuer mit dem MSI herunterladen von einem Administrator-Eingabeaufforderung , eine Service-Definition automatisch für Sie erstellt werden soll.

Die MongoDB Dokumentation hat auch eine Anleitung zu Hilfe, die Sie Manuelles erstellen eines Windows-Dienstes Definition, wenn nötig.

Diese Antwort ist für diejenigen, die bereits Mongo DB mit MSI-Installer installiert haben.

Nehmen wir an, Ihr Standard-Installationsort ist "C: \ Programme \ MongoDB \ Server \ 3.2 \ bin"

Schritte Mongo als Fenster-Dienst ausführen

  1. Öffnen Sie die Eingabeaufforderung als Administrator
  2. Typ cd C:\Program Files\MongoDB\Server\3.2\bin (Kontrollpfad richtig, wie Sie eine andere Version installiert haben, und nicht 3.2).
  3. Drücken Sie die Eingabetaste
  4. Typ net start MongoDB
  5. Drücken Sie die Eingabetaste
  6. Drücken von Windows + R, Typ services.msc und prüfen, ob Mongo wird als Dienst ausgeführt wird.
mongod --config "C:\Program Files\MongoDB\Server\3.6\mongod_primary.cfg" --install --serviceName "MongoDB_Primary" --serviceDisplayName "MongoDB Primary"
  1. Prüffenster Dienste

    Wenn Sie Service für Mongo es entfernen, indem Sie laufen unten Befehl
    mongod --remove

  2. mongo.cfg Datei mit Balg Inhalt erstellen

    systemlog:
    Ziel: Datei
    Pfad: c: \ data \ log \ mongod.log
    Lagerung:
    DBPATH: c: \ data \ db

    Pfad: wo Sie speichern Log-Daten aufrufen wollen
    DBPATH: Ihr Datenbankverzeichnis

  3. dann brüllt Befehl ausführen

    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-Datei Adresse
    Displayname: Ihr Service Name

  4. starten Service

    net start MongoDB

Jetzt sind alle Dinge zu erledigen. genießen, dass

In meinem Fall erstelle ich die mongod.cfg neben dem 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 laufe ich entweder den zwei Befehl, 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>

Im Folgenden sind nicht korrekt, man beachte die Anführungszeichen entgangen sind erforderlich.

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 versuchen, die Schritte in Mongo DB: 3.6 & 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
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top