web-dev-qa-db-fra.com

Comment exécuter MongoDB en tant que service Windows?

Comment configurer MongoDB pour qu'il puisse fonctionner en tant que service Windows?

188
heisthedon

Je pense que si vous l'exécutez avec le commutateur de ligne de commande --install, il l'installe en tant que service Windows.

mongod --install

Cela vaut peut-être la peine de lire ce fil d’abord, cependant. Il semble y avoir quelques problèmes avec les chemins relatifs/absolus lorsque la clé de registre correspondante est écrite.

103
Stephen Curran

Après avoir essayé pendant plusieurs heures, je l'ai finalement fait.

Assurez-vous que vous avez ajouté le répertoire <MONGODB_PATH>\bin à la variable système PATH.

J'ai d'abord exécuté cette commande:

D:\mongodb\bin>mongod --remove

Puis j'ai exécuté cette commande après avoir ouvert la commande Invite en tant qu'administrateur:

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

Après cela, là dans la commande Invite execute:

services.msc

Et recherchez le service MongoDB et cliquez sur Démarrer.


REMARQUE: Assurez-vous d'exécuter la commande Invite en tant qu'administrateur.

Si vous ne le faites pas, votre fichier journal ('D:\mongodb\log.txt' dans l'exemple ci-dessus) contiendra des lignes comme celles-ci:

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)

et si vous essayez de démarrer le service à partir d'une console non-admin (c'est-à-dire net start MongoDB ou Start-Service MongoDB dans PowerShell), vous obtiendrez une réponse comme celle-ci:

System error 5 has occurred.
Access is denied.

ou ca:

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

pas seulement --install

aussi besoin de --dbpath et --logpath

et après le redémarrage du système d'exploitation, vous devez supprimer "mongod.lock " manuellement

63
ruby

Contrairement aux autres réponses, ce sera ..

DÉMARRER LE SERVICE AUTOMATIQUEMENT SUR RÉINITIALISATION/REDÉMARRAGE DU SYSTÈME

Installation de MongoDB

Les fenêtres

(1) Installer MongoDB

(2) Ajouter bin au chemin

(3) Créez c:\data\db

(4) Créez c:\data\log

(5) Créez c:\data\mongod.cfg avec le contenu ..

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

(6) Pour créer un service qui démarrera automatiquement au redémarrage .. 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) Démarrer le service .. RUN AS ADMIN ..

net start MongoDB

IMPORTANT: même si ceci indique 'Le service MongoDB a été démarré avec succès', il peut échouer

Pour vérifier l’ouverture du Panneau de configuration> Services, assurez-vous que le statut du service MongoDB est «En cours d’exécution».

Si ce n'est pas le cas, consultez votre fichier journal dans C:\data\log\mongod.log pour connaître le motif de l'échec et corrigez-le

(Ne démarrez pas MongoDB via le Panneau de configuration> Services, utilisez .. net start MongoDB)

(8) Enfin, redémarrez votre ordinateur avec MongoDB en cours d'exécution et il fonctionnera toujours au redémarrage.

Si jamais tu veux le tuer ..

net stop MongoDB

sc.exe delete MongoDB
37
danday74

Les étapes ci-dessous s'appliquent à Windows.

Exécuter ci-dessous dans une administrative cmd

mongod --remove

Cela supprimera le service MongoDB existant (le cas échéant).

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

Assurez-vous que le dossier C:\data\db existe

Services ouverts avec:

services.msc

Rechercher MongoDB -> Clic droit -> Démarrer

23
student

Vous pouvez utiliser la commande ci-dessous pour exécuter mongodb en tant que service 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 

Si vous utilisez mongodb avec des paramètres par défaut, vous pouvez utiliser ces valeurs: 

  • votre adresse IP: 127.0.0.1 ou localhost 
  • yourPortNumber: 27017 (port par défaut) ou ne mettez pas --port
  • serviceDisplayName: uniquement si vous exécutez plusieurs services (depuis mongodb 1.8)

Il y a plus d'informations sur cette commande ici 

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

18
chafank

J'ai essayé toutes les réponses et ensuite je l'ai fait comme ça https://docs.mongodb.org/manual/tutorial/install-mongodb-on-windows/#configure-a-windows-service-for-mongodb-community-edition le décrit. 

Utiliser un fichier de configuration ...

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

14
helt

Ce script PowerShell télécharge et installe MongoDB en tant que service 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
14
Serdar

C'était la seule chose qui a fonctionné pour moi. Comme tout devait être un chemin absolu:

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

Je devais aussi l'exécuter à partir de admin cmd

10
Jamie Hutber

La manière recommandée mongod --install entraîne une erreur:

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

Après avoir installé mongodb dans C:\mongodb, vous devez simplement ajouter le logpath:

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

Le chemin d'accès au fichier journal doit exister et il doit s'agir d'un chemin Windows absolu. Ensuite, vous démarrez le service MongoDB en tapant:

net start MongoDB
6
Peter Gerhat

Travailler sur Mongo DB: 3.6

(1) Installer MongoDB

(2) Ajouter un bin à la variable de chemin d’environnement

(3) Créer c:\data\db

(4) Créer c:\data\mongod.log

(5) Exécuter en dessous de la commande sur le dossier bin

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

(6) Démarrer mongo db en tant que service 

net start MongoDB

(7) Enfin, lancez mongo en ligne de commande pour vérifier que Mongo Shell est ouvert ou non.

5
Zahid Rahman

Pensez à utiliser

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

C'est ce qui a fonctionné pour moi:

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

échapper à binPath échouait pour moi comme décrit dans la documentation de Mongo

Échoué:

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

Le moyen le plus simple est,

  1. Créer un dossier C:\data\db
  2. Créer un fichier C:\data\db\log.txt
  3. Ouvrez l'invite de commande sous "Exécuter en tant qu'administrateur" et assurez-vous que le chemin du répertoire bin de mogodb est correct

    C:\Program Files\MongoDB\Server\3.4\bin> mongod.exe --install mongod --dbpath="c:\data\db" --logpath="c:\data\db\log.txt" 
    
  4. Démarrer le service mongodb:

    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

Référence

4
Hassan Amir Khan

Travailler sur MongoDB 3.4 [Windows]

  • Créer le répertoire C:/mongodb/data 
  • Créez un fichier dans C: /mongodb/mongodb.config en utilisant cette configuration: 

    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
    
  • Pour installer MongoDb en tant que service, exécutez cette commande dans powershell avec admin power

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

  • Ouvrez Services.msc et recherchez MongoDb, puis démarrez-le. 

4
Marco Fantasia

Actuellement (jusqu'à la version 2.4.4), si un chemin d'accès (chemin_base/logpath/config) contient des espaces, le service ne démarre pas et affiche l'erreur: "Le service ne répond pas à la fonction de contrôle".

3
RoeeK

Pour la version 2.4.3 (version actuelle à la date de publication), créez un fichier de configuration, puis exécutez les opérations suivantes:

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

3
iisystems

Je suis sur la version 2.4.9 et utilise un fichier de configuration. Le service ne démarre pas tant que le signe égal n’a pas été entouré d’espaces dans le fichier de configuration:

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

A l'origine j'avais:

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

J'ai également découvert que, lors de l'installation du service, vous devez utiliser un chemin absolu pour le fichier de configuration, par exemple:

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

Ne soyez pas tenté de mettre des guillemets autour d’un-dbpath avec des espaces. Le service semblera commencer lorsque vous exécuterez net start MongoDB mais il se terminera. Consultez les fichiers journaux pour vous assurer que le service a réellement démarré.

2
CrispinH

Exécutez "cmd.exe" en tant qu'administrateur, puis exécutez "sc.exe" pour ajouter un nouveau service Windows.

par exemple:

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

J'ai trouvé que vous devriez passer: dbpath, config et logfile à Mongod avec l'indicateur d'installation 

exemple : 

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

note: j'ai un chemin de mongod dans ma variable de chemin. 

Vous pouvez contrôler le service avec:

net start mongodb
net stop  mongodb 
2
aeid

Si vous installez MongoDB 2.6.1 ou une version plus récente à l'aide de téléchargement MSI à partir d'une invite de commande de l'administrateur , une définition de service doit automatiquement être créée.

La documentation de MongoDB propose également un didacticiel pour vous aider à définir une { créer manuellement un service Windows } au besoin.

1
Stennie

Voici les étapes à suivre pour installer MongoDB en tant que service Windows: 

  1. Créez un répertoire de journal, par exemple. C:\MongoDB\log

  2. Créez un répertoire de base de données, par exemple C:\MongoDB\db

  3. Préparer un fichier de configuration avec les lignes suivantes

    dbpath=C:\MongoDB\db

    logpath=C:\MongoDB\log

    Placez le fichier de configuration avec le nom mongod.cfg dans le dossier "C:\MongoDB \"

  4. La commande suivante installera le service Windows sur votre 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. Une fois que vous exécutez cette commande, vous obtiendrez le [SC] CreateService SUCCESS

  6. Exécuter la commande suivante sur l'invite de commande

    net start MongoDB

1
C.P. Soni

Cette réponse s'adresse à ceux qui ont déjà installé mongo DB à l'aide du programme d'installation MSI. 

Supposons que votre emplacement d'installation par défaut est "C:\Program Files\MongoDB\Server\3.2\bin".

Procédure pour exécuter mongo en tant que service de fenêtre

  1. Ouvrir l'invite de commande en tant qu'administrateur
  2. Tapez cd C:\Program Files\MongoDB\Server\3.2\bin (vérifiez le chemin correctement, car une version différente peut être installée, et non 3.2). 
  3. Appuyez sur Entrée
  4. Tapez net start MongoDB
  5. Appuyez sur Entrée
  6. Appuyez sur Windows + R, tapez services.msc et vérifiez si Mongo est exécuté en tant que service.
1
Abhas Bhoi
  1. vérifier les services Windows 

    si vous avez un service pour Mongo, supprimez-le en exécutant la commande ci-dessous 
    mongod --remove 

  2. créer un fichier mongo.cfg avec le contenu ci-dessous 

    journal du système:
    destination: fichier
    chemin: c:\data\log\mongod.log
    espace de rangement:
    dbPath: c:\data\db

    chemin: où vous voulez stocker les données du journal 
    dbPath: votre répertoire de base de données 

  3. puis lancez la commande ci-dessous

    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: répertoire d'installation de mongodb
    config: adresse du fichier .cfg 
    DisplayName: votre nom de service 

  4. commencer le service

    net start MongoDB 

maintenant tout est fait. apprécie ça

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

Dans mon cas, je crée le fichier mongod.cfg à côté du fichier mongd.exe avec le contenu suivant.

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

Ensuite, je lance l'une des deux commandes pour créer le service.

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>

Les éléments suivants ne sont pas corrects. Notez que les guillemets sont nécessaires.

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