Comment puis-je configurer MongoDB pour qu'il puisse fonctionner en tant que service Windows?
Comment puis-je configurer MongoDB pour qu'il puisse fonctionner en tant que service Windows?
Réponses:
Je pense que si vous l'exécutez avec le --install
commutateur de ligne de commande, il l'installe en tant que service Windows.
mongod --install
Cela vaut peut-être la peine de lire ce fil d' abord. Il semble y avoir des problèmes avec les chemins relatifs / absolus lorsque la clé de registre appropriée est écrite.
net start MongoDB
Après avoir essayé pendant plusieurs heures, je l'ai finalement fait.
Assurez-vous d'avoir ajouté le <MONGODB_PATH>\bin
répertoire à la variable systèmePATH
J'ai d'abord exécuté cette commande:
D:\mongodb\bin>mongod --remove
Ensuite, 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 commandes, exécutez:
services.msc
Et recherchez le service MongoDB et cliquez sur Démarrer.
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. net start MongoDB
- Start-Service MongoDB
à- d. ou 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
net start MongoDB
au lieu d'utiliser services.msc
. ( mongod
m'a recommandé cela.)
non seulement --install
,
ont également besoin --dbpath
et--logpath
et après le redémarrage du système d'exploitation, vous devez supprimer "mongod.lock " manuellement
mongod.lock
bug est corrigé sur monWindows 8 x64
Contrairement à d'autres réponses, cela va ..
DÉMARRER LE SERVICE AUTOMATIQUEMENT SUR REDÉMARRAGE / REDÉMARRAGE DU SYSTÈME
(1) Installez MongoDB
(2) Ajouter un bac 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émarrez le service .. RUN AS ADMIN ..
net start MongoDB
IMPORTANT: même si cela indique «Le service MongoDB a été démarré avec succès», il peut échouer
Pour vérifier deux fois le Panneau de configuration> Services, assurez-vous que l'état du service MongoDB est «En cours d'exécution»
Sinon, vérifiez votre fichier journal dans C: \ data \ log \ mongod.log pour la raison de l'échec et corrigez-le
(Ne démarrez pas MongoDB via Panneau de configuration> Services, utilisez .. net start MongoDB)
(8) Enfin, redémarrez votre machine avec MongoDB en cours d'exécution et il fonctionnera toujours au redémarrage
Si jamais vous voulez le tuer ..
net stop MongoDB
sc.exe delete MongoDB
3.4
de 3.6
version dans cette commandesc.exe create MongoDB binPath= "\"C:\Program Files\MongoDB\Server\3.4\bin\mongod.exe\" --service --config=\"C:\data\mongod.cfg\"" DisplayName= "MongoDB" start= "auto"
Les étapes ci-dessous s'appliquent à Windows.
Exécutez ci-dessous dans un dossier administratif 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 C:\data\db
dossier existe
Services ouverts avec:
services.msc
Trouver MongoDB -> Clic droit -> Démarrer
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:
Il y a plus d'informations sur cette commande ici
J'ai essayé toutes les réponses, puis je l'ai fait comme 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
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
C'était la seule chose qui fonctionnait 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 depuis admin cmd
La méthode 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 doit être un chemin d'accès Windows absolu. Ensuite, vous démarrez le service MongoDB en tapant:
net start MongoDB
Pensez à utiliser
mongod --install --rest --master
Travailler sur Mongo DB: 3.6
(1) Installez MongoDB
(2) Ajouter bin à la variable de chemin d'accès à l'environnement
(3) Créer c:\data\db
(4) Créer c:\data\mongod.log
(5) Exécuter sous la commande sur le 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, exécutez mongo
en ligne de commande pour vérifier que 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 au binPath échouait pour moi comme décrit dans la documentation 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"
Le moyen le plus simple est,
C:\data\db
C:\data\db\log.txt
Ouvrez l'invite de commande en tant que «Exécuter en tant qu'administrateur» et assurez-vous que le chemin du répertoire bin mogodb est correct et écrivez
C:\Program Files\MongoDB\Server\3.4\bin> mongod.exe --install mongod --dbpath="c:\data\db" --logpath="c:\data\db\log.txt"
Démarrer le service mongodb:
net run MongoDB
Travailler sur MongoDB 3.4 [Windows]
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 le pouvoir d'administrateur
mongod --config = "C: \ mongodb \ mongodb.config" --install --service
Ouvrez Services.msc et recherchez MongoDb, puis démarrez-le
Je suis sur la version 2.4.9 et j'utilise un fichier de configuration. Le service ne démarre que lorsque j'entoure le signe égal dans le fichier de configuration d'espaces:
dbpath = D:\Mongo data
logpath = C:\mongodb\logs\mongo.log
logappend = true
À 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 virgules inversées autour d'un dbpath avec des espaces. Le service semblera démarrer lorsque vous exécuterez net start MongoDB mais il se terminera. Vérifiez les fichiers journaux pour confirmer que le service a vraiment démarré.
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
remarque: j'ai mongod path dans ma variable path.
Vous pouvez contrôler le service avec:
net start mongodb
net stop mongodb
Voici les étapes pour installer MongoDB en tant que service Windows:
Créez un répertoire de journaux, par exemple C:\MongoDB\log
Créez un répertoire db, par exemple C:\MongoDB\db
Préparez 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 \"
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"
Une fois que vous exécutez cette commande, vous obtiendrez le [SC] CreateService SUCCESS
Exécutez la commande suivante sur l'invite de commandes
net start MongoDB
Si vous installez MongoDB 2.6.1 ou une version plus récente à l'aide du téléchargement MSI à partir d'une invite de commandes administrateur , une définition de service doit être automatiquement créée pour vous.
La documentation MongoDB contient également un didacticiel pour vous aider à créer manuellement une définition de service Windows si nécessaire.
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 soit "C: \ Program Files \ MongoDB \ Server \ 3.2 \ bin"
Étapes pour exécuter Mongo en tant que service de fenêtre
cd C:\Program Files\MongoDB\Server\3.2\bin
(vérifiez le chemin d'accès correctement, car vous pouvez avoir une version différente installée, et non 3.2).net start MongoDB
services.msc
et vérifiez si Mongo fonctionne en tant que service.System error 2 has occurred. The system cannot find the file specified.
essayé mongod, mongodb également.
mongod --config "C:\Program Files\MongoDB\Server\3.6\mongod_primary.cfg" --install --serviceName "MongoDB_Primary" --serviceDisplayName "MongoDB Primary"
vérifier les services windows
si vous avez un service pour mongo, supprimez-le en exécutant la commande ci-dessous
mongod --remove
créer un fichier mongo.cfg avec un contenu ci-dessous
systemLog:
destination:
chemin du fichier : c: \ data \ log \ mongod.log
stockage:
dbPath: c: \ data \ db
chemin: où vous souhaitez stocker les données du journal
dbPath: votre répertoire de base de données
puis exécutez 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:
configuration du répertoire d'installation de mongodb: adresse du fichier .cfg
DisplayName: votre nom de service
démarrer le service
net start MongoDB
maintenant tout est fait. profite de ça
Dans mon cas, je crée le mongod.cfg à côté du 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, j'exécute la commande two 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 d'échappement sont requis.
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>
Veuillez essayer 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