Comment utiliser MongoDB comme service Windows?
27 réponses
je pense que si vous l'exécutez avec le commutateur de ligne de commande --install
, il l'installe comme un service Windows.
mongod --install
Il pourrait être intéressant de lire ce fil mais d'abord. Il semble y avoir des problèmes avec les chemins relatifs/absolus lorsque la clé de registre pertinente est écrite.
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 l'invite de commande en tant qu'administrateur:
D:\mongodb\bin>mongod --dbpath=D:\mongodb --logpath=D:\mongodb\log.txt --install
après cela, dans l'invite de commande, exécutez:
services.msc
et recherchez le service MongoDB et cliquez sur Démarrer.
NOTE: assurez-vous d'exécuter l'invite de commande 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-administrateur, (i.e. net start MongoDB
ou Start-Service MongoDB
en PowerShell), vous obtiendrez une réponse comme celle-ci:
System error 5 has occurred.
Access is denied.
ou ceci:
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 seulement --install
,
également besoin de --dbpath
et --logpath
et après redémarrage OS, vous devez supprimer " mongod.verrouiller "manuellement
contrairement à d'autres réponses ce sera ..
DÉMARRER LE SERVICE AUTOMATIQUEMENT LORS DU REDÉMARRAGE / REDÉMARRAGE DU SYSTÈME
MongoDB Install
Windows
(1) Install MongoDB
(2) Ajouter bin au chemin
(3) Créer c:\data\db
(4) Créer c:\data\log
(5) Créer c:\data\mongod.cfg avec contenu. .
systemLog:
destination: file
path: c:\data\log\mongod.log
storage:
dbPath: c:\data\db
(6) Pour créer un service démarrage automatique au redémarrage .. EXÉCUTER EN TANT QU'ADMINISTRATEUR ..
sc.exe create MongoDB binPath= "\"C:\Program Files\MongoDB\Server.4\bin\mongod.exe\" --service --config=\"C:\data\mongod.cfg\"" DisplayName= "MongoDB" start= "auto"
(7) Démarrer le service .. EXÉCUTER EN TANT QU'ADMINISTRATEUR ..
net start MongoDB
IMPORTANT: même si cela dit 'le service MongoDB a été lancé avec succès' il peut échouer
pour double vérifier Panneau de contrôle ouvert > Services, assurer le statut de la MongoDB le service est "Courant"
si ce n'est pas le cas, consultez votre fichier journal à C:\data\log\mongod.journal de la raison de l'échec et de le corriger
(ne pas démarrer MongoDB via Panneau de contrôle > Services, utiliser.. net start MongoDB)
(8) enfin, redémarrez votre machine avec MongoDB en cours d'exécution et il sera toujours en cours d'exécution à la reprise
si vous voulez le tuer ..
net stop MongoDB
sc.exe delete MongoDB
les étapes ci-dessous s'appliquent à Windows.
Exécuter ci-dessous dans un administrative cmd
mongod --remove
ceci supprimera le service MongoDB existant (s'il existe).
mongod --dbpath "C:\data\db" --logpath "C:\Program Files\MongoDB\Server.4\bin\mongod.log" --install --serviceName "MongoDB"
assurez-vous que le dossier C:\data\db
existe
Ouvrir les services avec:
services.msc
Trouver MongoDB - > Clic droit - > Démarrer
vous pouvez utiliser la commande ci-dessous pour exécuter mongodb comme un 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 les paramètres par défaut, vous pouvez utiliser ces valeurs :
- yourIPadress: 127.0.0.1 or localhost
- yourPortNumber: 27017 (port par défaut) or dont put --port
- serviceDisplayName : uniquement si vous exécutez plus d'un service (depuis mongodb 1.8)
il y a plus d'informations sur cette commande ici
ce Script PowerShell télécharge et installe MongoDB comme 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
j'ai essayé toutes les réponses et puis je l'ai fait à la manière https://docs.mongodb.org/manual/tutorial/install-mongodb-on-windows/#configure-a-windows-service-for-mongodb-community-edition le décrit.
utilisez un fichier de configuration...
"C:\mongodb\bin\mongod.exe" --config "C:\mongodb\mongod.cfg" --install
C'était la seule chose qui marchait pour moi. Comme tout devait être un chemin absolu:
C:\Program Files\MongoDB\Server.2\bin>mongod --install --dbpath=c:/data/db --logpath=c:/data/logs/log.txt
j'ai aussi dû l'exécuter à partir de admin cmd
recommandé mongod --install
résultats dans l'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 vers le fichier journal doit exister et il doit être un chemin absolu de Windows. Puis vous commencez le service MongoDB en tapant:
net start MongoDB
Working on Mongo DB: 3.6
(1) Install MongoDB
(2) Ajouter bin à la variable de cheminement d'environnement
(3) Créer c:\data\db
(4) Créer c:\data\mongod.log
(5) Exécuter Commande ci-dessous sur bin
dossier
.\mongod.exe -- install --logpath c:\data\mongod.log -- logappend -- bind_ip 12 7.0.0.1 -- dbpath c:\data\db
(6) Pour démarrer mongo db en tant que service
NET start MongoDB
(7) enfin, lancez mongo
en ligne de commande pour vérifier si le shell mongo est ouvert ou 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
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 à la binPath était un échec pour moi comme décrit dans la documentation de Mongo
a É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"
la manière la plus simple est,
- créer un dossier
C:\data\db
- Créer fichier
C:\data\db\log.txt
-
Ouvrez l'invite de commande "Exécuter en tant qu'Administrateur" et assurez-vous que le mogodb bin chemin d'accès est correct et écrire
C:\Program Files\MongoDB\Server.4\bin> mongod.exe --install mongod --dbpath="c:\data\db" --logpath="c:\data\db\log.txt"
-
Démarrer mongodb service:
net run MongoDB
Working on MongoDB 3.4 [Windows]
- créer dir C:/mongodb/data
-
créer un fichier en 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 en powershell avec le pouvoir d'administration
mongod -- config="C:\mongodb\mongodb.config "--install --service
-
Ouvrir La Fenêtre Services.msc et chercher MongoDb, puis démarrer
pour la version 2.4.3 (version actuelle à la date de publication), Créer un fichier de configuration et ensuite exécuter ce qui suit:
C:\MongoDB\bin\mongod.exe --config C:\MongoDB\mongod.cfg --service
actuellement (jusqu'à la version 2.4.4), si un chemin (dbpath/logpath/config) contient des espaces, alors le service ne démarre pas, et affiche l'erreur: "le service ne répond pas à la fonction de contrôle".
je suis sur la version 2.4.9 et j'utilise un fichier de configuration. Le service ne commencerait pas tant que je n'aurais pas entouré le signe égal dans le fichier de configuration avec des espaces:
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 que 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 virgules inversées autour d'un dbpath avec des espaces. Le service apparaîtra commencer lorsque vous exécuterez net start MongoDB mais il se terminera. Vérifiez les fichiers journaux pour la confirmation que le service a vraiment commencé.
Exécuter "cmd.exe" en tant qu'administrateur et exécutez "sc.exe" pour ajouter un nouveau service Windows.
par exemple:
sc.exe create MongoDB binPath= "c:\program files\mongodb\server.2\bin\mongod.exe"
j'ai trouvé que vous devriez passer : dbpath, config et logfile à mongod avec le drapeau d'installation
exemple:
mongod --dbpath=c:\data\db --config=c:\data\db\config.cfg --logpath=c:\data\db\log.txt --install
note: j'ai mongod path dans ma variable path .
vous pouvez contrôler le service avec:
net start mongodb
net stop mongodb
si vous installez MongoDB 2.6.1 ou plus récent en utilisant le MSI download à partir d'un administrateur invite de commande , une définition de service devrait automatiquement être créé pour vous.
la documentation MongoDB a également un tutoriel pour vous aider à créer manuellement un service Windows définition si nécessaire.
cette réponse est pour ceux qui ont déjà installé mongo DB en utilisant MSI installer.
disons que votre emplacement installé par défaut est "C:\Program fichiers\MongoDB\Server\3.2\bin "
Étapes à suivre pour exécuter mongo comme une fenêtre de service
- Ouvrez l'invite de commande en tant qu'administrateur
- Type
cd C:\Program Files\MongoDB\Server.2\bin
(vérifier le chemin correctement, car vous pouvez avoir une version différente installée, et non 3.2). - Appuyez sur enter
- Type
net start MongoDB
- Appuyez sur enter
- appuyez sur Windows + R, tapez
services.msc
et vérifiez si Mongo fonctionne comme un service.
ce sont les étapes pour installer MongoDB comme service Windows:
-
créer un répertoire log, p.ex.
C:\MongoDB\log
-
créer un répertoire db, p.ex.
C:\MongoDB\db
-
préparer un fichier de configuration avec les lignes suivantes
dbpath=C:\MongoDB\db
logpath=C:\MongoDB\log
placez le fichier de configuration avec nom mongod.cfg dans le dossier "C:\MongoDB\"
-
la commande suivante installera le service Windows sur votre
sc.exe create MongoDB binPath= "\"C:\MongoDB\Server.4\bin\mongod.exe\" --service --config=\"C:\MongoDB\mongod.cfg\" DisplayName= "MongoDB 3.4" start= "auto"
-
une fois que vous exécuterez cette commande, vous obtiendrez le
[SC] CreateService SUCCESS
-
Exécuter la commande suivante à l'Invite de Commande
net start MongoDB
mongod --config "C:\Program Files\MongoDB\Server.6\mongod_primary.cfg" --install --serviceName "MongoDB_Primary" --serviceDisplayName "MongoDB Primary"
Étape 1: ouvrez un invite de commande administrateur. Appuyez sur la touche Win, tapez cmd.exe, et appuyez sur Ctrl + Shift + Enter pour exécuter la commande Prompt en tant qu'administrateur.
exécute les étapes restantes de l'invite de commande de L'administrateur.
Étape 2: créer des répertoires. Créez des répertoires pour votre base de données et enregistrez des fichiers:
mkdir c:\data\db
mkdir c:\data\log
Étape 3: Créer un fichier de configuration. Créer un fichier de configuration. Le fichier doit définir systemLog.chemin. Inclure des options de configuration supplémentaires, s'il y a lieu.
par exemple, créer un fichier à C:\Program fichiers\MongoDB\Server\3.6\mongod.cfg qui spécifie les deux systemLog.chemin d'accès et le stockage.dbPath:
systemLog:
destination: file
path: c:\data\log\mongod.log
storage:
dbPath: c:\data\db
Etape 4: installez le service MongoDB. Important: exécutez toutes les commandes suivantes dans L'invite de commande avec "Administrative" Privilège."
installez le service MongoDB en démarrant mongod.exe avec l'option --install et la config option pour spécifier le fichier de configuration.
"C:\Program Files\MongoDB\Server.4\bin\mongod.exe" --config "C:\Program Files\MongoDB\Server.4\mongod.cfg" --install
pour utiliser un chemin dbpath alternatif, spécifiez le chemin dans le fichier de configuration (par ex. C:\mongodb\mongod.cfg) ou sur la ligne de commande avec l'option --dbpath.
si nécessaire, vous pouvez installer des services pour plusieurs instances de mongod.exe ou mongos.EXE. Installez chaque service avec un unique --serviceName et --serviceDisplayName. Utilisez plusieurs instances seulement lorsque les ressources du système sont suffisantes et que la conception de votre système l'exige.
Étape 5: Démarrer la MongoDB service.
net start MongoDB
Étape 6: arrêter ou retirer le service MongoDB au besoin. Pour arrêter le service MongoDB, utilisez la commande suivante:
net stop MongoDB
Plz essayez les étapes de Mongo DB: 3.6 et 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