Comment puis-je exécuter MongoDB en tant que service Windows ?
-
19-09-2019 - |
Question
Comment puis-je configurer MongoDB pour qu'il puisse fonctionner en tant que service Windows ?
La solution
Je pense que si vous exécutez avec le commutateur de ligne de commande --install
, il installe en tant que service Windows.
mongod --install
Il pourrait être utile de lire ce fil premier bien que. Il semble y avoir quelques problèmes avec les chemins relatifs / absolus quand s'écrit la clé de Registre concerné.
Autres conseils
Après avoir essayé pendant plusieurs heures, je l'ai fait finalement.
Assurez-vous que vous avez ajouté le répertoire <MONGODB_PATH>\bin
à la PATH
variable système
D'abord, j'exécuté cette commande:
D:\mongodb\bin>mongod --remove
Je cette commande exécuté après l'ouverture invite de commande en tant qu'administrateur:
D:\mongodb\bin>mongod --dbpath=D:\mongodb --logpath=D:\mongodb\log.txt --install
Après que là dans l'invite de commande exécuter:
services.msc
Et regardez pour le service MongoDB et cliquez sur Démarrer.
. REMARQUE: 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-admin, (à savoir net start MongoDB
ou Start-Service MongoDB
dans PowerShell), vous obtiendrez une réponse comme ceci:
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 --dbpath
et --logpath
et après OS redémarrage, vous devez supprimer "mongod.lock " manuellement
Contrairement à d'autres réponses cette volonté ..
Démarrer le service AUTOMATIQUEMENT SYSTÈME REBOOT / RESTART
MongoDB Installer
de Windows
(1) Installation de 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 le contenu ..
systemLog:
destination: file
path: c:\data\log\mongod.log
storage:
dbPath: c:\data\db
(6) Pour créer un service qui sera démarrage automatique 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 dit: « Le service MongoDB a été lancé avec succès » il peut échouer
vérifier ouvrez le Panneau de configuration> Services, assurer l'état du service MongoDB est 'Running'
Sinon, vérifiez votre fichier journal C: \ data \ log \ mongod.log pour la raison de l'échec et le fixer
(Ne commencez pas à MongoDB via Panneau de configuration> Services, utilisation .. 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 sur le redémarrage
Si vous voulez jamais tuer ..
net stop MongoDB
sc.exe delete MongoDB
Les étapes suivantes sont applicables à Windows.
Exécuter ci-dessous dans un 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 existe C:\data\db
Services ouverts avec:
services.msc
Rechercher MongoDB -> Faites un 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 les paramètres par défaut, vous pouvez utiliser ces valeurs:
- yourIPadress: 127.0.0.1 ou localhost
- yourPortNumber: 27017 (port par défaut) ou DonT mettre --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 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
J'ai essayé toutes les réponses, puis l'a fait le chemin https://docs.mongodb.org/manual/tutorial/install-mongodb-on-windows/#configure-a-windows-service-for-mongodb-community- édition décrit.
Utilisez un fichier de configuration ...
"C:\mongodb\bin\mongod.exe" --config "C:\mongodb\mongod.cfg" --install
Ce fut 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 admin cmd
Les résultats de mongod --install
manière recommandée par 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 mongodb installé dans C:\mongodb
vous devez ajouter simplement le logpath:
mongod --install --logpath C:\mongodb\logs\mongo.log
Le chemin d'accès au fichier journal doit exister et il 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) Installation de MongoDB
(2) Ajouter à la variable bin chemin environnement
(3) Créer c:\data\db
(4) Créer c:\data\mongod.log
(5) Exécuter ci-dessous sur commande dossier bin
\ mongod.exe --install --logpath c:. \ DATA \ mongod.log --logappend --bind_ip 12 7.0.0.1 --dbpath c: \ data \ db
(6) Pour commencer mongo db comme le service
net start MongoDB
(7) Enfin exécuter mongo
dans la ligne de commande pour vérifier mongo coquille est ouverte 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
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 échouait pour moi, comme décrit dans la documentation Mongo
Échec:
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 façon la plus simple,
- Créer un dossier
C:\data\db
- Créer un fichier
C:\data\db\log.txt
-
invite de commande Ouvrir en tant que « Exécuter en tant qu'administrateur » et assurez-vous que le chemin du répertoire bin mogodb est correct et écrire
C:\Program Files\MongoDB\Server\3.4\bin> mongod.exe --install mongod --dbpath="c:\data\db" --logpath="c:\data\db\log.txt"
-
Démarrer service MongoDB:
net run MongoDB
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 le pouvoir d'administrateur
mongod --config="C:\mongodb\mongodb.config" --install --service
Ouvrez Services.msc et recherchez MongoDb, puis démarrez-le
Pour la version 2.4.3 (version actuelle de date d'affichage), créez un fichier de configuration, puis exécutez la commande suivante:
C:\MongoDB\bin\mongod.exe --config C:\MongoDB\mongod.cfg --service
À l'heure actuelle (jusqu'à la version 2.4.4), le cas échéant chemin (dbpath / logpath / config) contient des espaces, le service ne démarre pas, et montrer l'erreur: « Le service ne répond pas à la fonction de contrôle » .
Je suis sur la version 2.4.9 et en utilisant un fichier de configuration. Le service ne démarre pas jusqu'à ce que j'entouré le signe égal dans le fichier de configuration avec des espaces:
dbpath = D:\Mongo data
logpath = C:\mongodb\logs\mongo.log
logappend = true
Au départ, j'avais:
logpath=C:\mongodb\logs\mongo.log
J'ai aussi 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 entre guillemets autour d'une dbpath avec des espaces. Le service semble commencer lorsque vous exécutez net start MongoDB mais il prendra fin. Vérifiez les fichiers journaux pour la confirmation que le service a vraiment commencé.
Exécuter "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"
Je trouve que vous devriez passer: dbpath, config et à logfile mongod avec l'installation drapeau
exemple:
mongod --dbpath=c:\data\db --config=c:\data\db\config.cfg --logpath=c:\data\db\log.txt --install
Note: J'ai chemin mongod dans ma variable de chemin.
Vous pouvez contrôler le service avec:
net start mongodb
net stop mongodb
Ce sont les étapes pour installer MongoDB en tant que service Windows:
-
Créez un répertoire de journal, par exemple
C:\MongoDB\log
-
Créez un répertoire db, par exemple
C:\MongoDB\db
-
Préparation d'un fichier de configuration avec des 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 \"
-
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écuter commande suivante sur Invite de commandes
net start MongoDB
Si vous installez MongoDB 2.6.1 ou plus récent en utilisant le MSI télécharger à partir d'un Invite de commande administrateur , une définition de service doit être automatiquement créé pour vous.
La documentation MongoDB a également un tutoriel pour vous aider Création manuelle d'une définition de service Windows si nécessaire.
Cette réponse est pour ceux qui ont déjà installé mongo DB à l'aide d'installation MSI.
Disons que votre défaut installé emplacement est "C: \ Program Files \ MongoDB \ Server \ 3.2 \ bin"
Les étapes pour exécuter mongo en tant que service de la fenêtre
- Ouvrez l'invite de commande en tant qu'administrateur
- Type
cd C:\Program Files\MongoDB\Server\3.2\bin
(vérifier correctement le chemin, que vous pouvez avoir une autre version installée, et non 3.2). - Appuyez sur Entrée
- Type
net start MongoDB
- Appuyez sur Entrée
- Appuyez sur Windows + R, tapez
services.msc
et vérifier si Mongo est en cours d'exécution en tant que service.
mongod --config "C:\Program Files\MongoDB\Server\3.6\mongod_primary.cfg" --install --serviceName "MongoDB_Primary" --serviceDisplayName "MongoDB Primary"
-
fenêtres de contrôle des services
si vous avez un service pour mongo le supprimer par la commande d'exécution ci-dessous
mongod --remove
-
créer un fichier mongo.cfg avec le contenu ci-dessous
SystemLog:
destination: fichier
chemin: c: \ data \ log \ mongod.log
Stockage:
dbPath: c: \ data \ db
chemin: où vous voulez stocker connecter données
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: répertoire d'installation mongodb
config: adresse fichier .cfg
DisplayName: Votre nom service -
démarrage du service
net start MongoDB
maintenant toutes les choses sont faites. profiter de cette
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:
Alors je cours, soit les 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>
Ce qui suit ne sont pas correctes, notez les guillemets échappées sont obligatoires.
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 essayer les étapes DB Mongo: 3.6 et de 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