Question

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

Était-ce utile?

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

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

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

Référence

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,

  1. Créer un dossier C:\data\db
  2. Créer un fichier C:\data\db\log.txt
  3. 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" 
    
  4. 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:

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

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

  3. 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 \"

  4. 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 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

  1. Ouvrez l'invite de commande en tant qu'administrateur
  2. 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).
  3. Appuyez sur Entrée
  4. Type net start MongoDB
  5. Appuyez sur Entrée
  6. 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"
  1. 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

  2. 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

  3. 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

  4. 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

  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
scroll top