¿Cómo ejecutar MongoDB como servicio de Windows?

¿Cómo configurar MongoDB para que pueda funcionar como servicio de Windows?

Creo que si lo ejecuta con el --install línea de comando --install , lo instala como un servicio de Windows.

 mongod --install 

Aunque valdría la pena leer este hilo primero. Parece que hay algunos problemas con las rutas relativas / absolutas cuando se escribe la clave de registro correspondiente.

Después de probar varias horas, finalmente lo hice.

Asegúrese de haber agregado su directorio / bin a su variable de sistema PATH

Primero ejecuté este comando:

 D:\mongodb\bin>mongod --remove 

Primero ejecuté este comando después de abrir el símbolo del sistema como administrador:

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

Después de eso, en el símbolo del sistema ejecuta:

 services.msc 

Y busque el servicio MongoDB y haga clic en comenzar.


NOTA: asegúrese de ejecutar el símbolo del sistema como administrador.

Si no lo hace, su archivo de registro (‘D: \ mongodb \ log.txt’ en el ejemplo anterior) contendrá líneas como estas:

 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) 

y si intentas iniciar el servicio desde una consola que no es administrador, (es decir, net start MongoDB o Start-Service MongoDB en PowerShell), obtendrás una respuesta como esta:

 System error 5 has occurred. Access is denied. 

o esto:

 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 

no solo --install ,

también necesita --dbpath y --logpath

y después de reiniciar el sistema operativo, debe eliminar “mongod.lock ” manualmente

A diferencia de otras respuestas, esto será …

INICIE EL SERVICIO AUTOMÁTICAMENTE EN EL REINICIO DEL SISTEMA / REINICIO

Instalación de MongoDB

Windows

(1) Instalar MongoDB

(2) Agregue bin a la ruta

(3) Crear c: \ data \ db

(4) Crear c: \ data \ log

(5) Cree c: \ data \ mongod.cfg con los contenidos.

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

(6) Para crear un servicio que se iniciará automáticamente al reiniciar .. EJECUTAR COMO 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) Comience el servicio .. EJECUTAR COMO ADMIN ..

 net start MongoDB 

IMPORTANTE: incluso si esto dice ‘El servicio MongoDB se inició correctamente’ puede fallar

Para comprobar dos veces abrir Panel de control> Servicios, asegúrese de que el estado del servicio MongoDB es ‘En ejecución’

De lo contrario, verifique su archivo de registro en C: \ data \ log \ mongod.log por el motivo del error y corríjalo

(No inicie MongoDB a través del Panel de control> Servicios, use .. net start MongoDB)

(8) Finalmente, reinicie su máquina con MongoDB ejecutándose y aún se ejecutará al reiniciar

Si alguna vez quieres matarlo …

 net stop MongoDB sc.exe delete MongoDB 

Los siguientes pasos se aplican a Windows.

Ejecute a continuación en un cmd administrativo

 mongod --remove 

Esto eliminará el servicio MongoDB existente (si lo hay).

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

Asegúrese de que existe la carpeta C:\data\db

Servicios abiertos con:

 services.msc 

Encuentra MongoDB -> Haz clic derecho -> Comenzar

Puede usar el siguiente comando para ejecutar mongodb como un servicio de 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 usa mongodb con parámetros predeterminados, puede usar estos valores:

  • yourIPadress: 127.0.0.1 o localhost
  • yourPortNumber: 27017 (puerto predeterminado) o no poner –port
  • serviceDisplayName: solo si ejecuta más de un servicio (desde mongodb 1.8)

Hay más información sobre este comando aquí

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

Este script de PowerShell descarga e instala MongoDB como servicio de 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 

Intenté todas las respuestas y luego lo hice como https://docs.mongodb.org/manual/tutorial/install-mongodb-on-windows/#configure-a-windows-service-for-mongodb-community-edition lo describe .

Use un archivo de configuración …

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

Esto fue lo único que funcionó para mí. Como todo tenía que ser un camino absoluto:

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

También tuve que ejecutarlo desde admin cmd

Considere usar

 mongod --install --rest --master 

La forma recomendada mongod --install produce un error:

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

Después de haber instalado mongodb en C:\mongodb , simplemente debe agregar el logpath:

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

La ruta al archivo de registro debe existir y debe ser una ruta de Windows absoluta. Luego, inicie el servicio MongoDB escribiendo:

 net start MongoDB 
 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 

Referencia

Esto es lo que funcionó para mí:

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

escapar de binPath me falló, como se describe en la documentación de Mongo

Ha fallado:

 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 forma más simple es

  1. Crear carpeta C:\data\db
  2. Crea el archivo C:\data\db\log.txt
  3. Abra el símbolo del sistema como “Ejecutar como administrador” y asegúrese de que la ruta del directorio mogodb bin sea correcta y escriba

     C:\Program Files\MongoDB\Server\3.4\bin> mongod.exe --install mongod --dbpath="c:\data\db" --logpath="c:\data\db\log.txt" 
  4. Comience el servicio mongodb:

     net run MongoDB 

Trabajando en MongoDB 3.4 [Windows]

  • Crear dir C: / mongodb / data
  • Cree un archivo en C: /mongodb/mongodb.config usando esta configuración:

     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 
  • Para instalar MongoDb como un servicio, ejecute este comando en powershell con poder de administrador

    mongod –config = “C: \ mongodb \ mongodb.config” –install –service

  • Abra Services.msc y busque MongoDb, luego inícielo

Trabajando en Mongo DB: 3.6

(1) Instalar MongoDB

(2) Agregar bin a variable de ruta de entorno

(3) Crear c:\data\db

(4) Crear c:\data\mongod.log

(5) Ejecutar debajo del comando en la carpeta bin

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

(6) Para iniciar mongo db como servicio

net start MongoDB

(7) Finalmente, ejecute mongo en la línea de comando para verificar que mongo shell esté abierto o no.

Para la versión 2.4.3 (versión actual a partir de la fecha de publicación), cree un archivo de configuración y luego ejecute lo siguiente:

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

Actualmente (hasta la versión 2.4.4), si cualquier ruta (dbpath / logpath / config) contiene espacios, entonces el servicio no se iniciará y mostrará el error: “El servicio no responde a la función de control”.

Estoy en la versión 2.4.9 y uso un archivo de configuración. El servicio no se iniciará hasta que haya rodeado el signo igual en el archivo de configuración con espacios:

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

Originalmente tuve:

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

También descubrí que al instalar el servicio, debe usar una ruta absoluta para el archivo de configuración, por ejemplo:

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

No tengas la tentación de poner comas invertidas alrededor de un dbpath con espacios. El servicio parecerá iniciarse cuando ejecute net inicio MongoDB pero terminará. Verifique los archivos de registro para confirmar que el servicio realmente comenzó.

Ejecute “cmd.exe” como administrador y luego ejecute “sc.exe” para agregar un nuevo servicio de Windows.

por ejemplo:

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

Descubrí que debes pasar: dbpath, config y logfile a mongod con la bandera de instalación

ejemplo:

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

nota: Tengo mongod path en mi variable de ruta.

Puedes controlar el servicio con:

 net start mongodb net stop mongodb 

Si instala MongoDB 2.6.1 o una versión más reciente utilizando la descarga de MSI desde un símbolo del sistema del administrador , se debe crear automáticamente una definición de servicio para usted.

La documentación de MongoDB también tiene un tutorial para ayudarlo a crear manualmente una definición de servicio de Windows si es necesario.

Esta respuesta es para aquellos que ya han instalado mongo DB usando el instalador de MSI.

Digamos que su ubicación predeterminada instalada es “C: \ Archivos de progtwig \ MongoDB \ Server \ 3.2 \ bin”

Pasos para ejecutar mongo como un servicio de ventana

  1. Abra el símbolo del sistema como administrador
  2. Escriba cd C:\Program Files\MongoDB\Server\3.2\bin (compruebe la ruta correctamente, ya que puede tener una versión diferente instalada y no 3.2).
  3. Presione enter
  4. Escriba net start MongoDB
  5. Presione enter
  6. Presione Windows + R, escriba services.msc y compruebe si Mongo se está ejecutando como un servicio.

Estos son los pasos para instalar MongoDB como servicio de Windows:

  1. Cree un directorio de registro, por ejemplo, C:\MongoDB\log

  2. Cree un directorio db, p. Ej. C:\MongoDB\db

  3. Prepare un archivo de configuración con las siguientes líneas

    dbpath=C:\MongoDB\db

    logpath=C:\MongoDB\log

    Coloque el archivo de configuración con el nombre mongod.cfg en la carpeta “C: \ MongoDB \”

  4. El siguiente comando instalará el Servicio de Windows en su 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. Una vez que ejecute este comando, obtendrá el [SC] CreateService SUCCESS

  6. Ejecute el siguiente comando en Símbolo del sistema

    net start MongoDB

 mongod --config "C:\Program Files\MongoDB\Server\3.6\mongod_primary.cfg" --install --serviceName "MongoDB_Primary" --serviceDisplayName "MongoDB Primary" 

Paso 1: abra un símbolo del sistema de administrador. Presione la tecla Win, escriba cmd.exe y presione Ctrl + Shift + Enter para ejecutar el símbolo del sistema como administrador.

Ejecute los pasos restantes desde el símbolo del sistema del administrador.

Paso 2: Crea directorios. Cree directorios para su base de datos y archivos de registro:

 mkdir c:\data\db mkdir c:\data\log 

Paso 3: crea un archivo de configuración. Crea un archivo de configuración El archivo debe establecer systemLog.path. Incluye opciones de configuración adicionales según corresponda.

Por ejemplo, cree un archivo en C: \ Archivos de progtwig \ MongoDB \ Server \ 3.6 \ mongod.cfg que especifique tanto systemLog.path como storage.dbPath:

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

Paso 4: instala el servicio MongoDB. Importante: Ejecute todos los siguientes comandos en Símbolo del sistema con “Privilegios administrativos”.

Instale el servicio MongoDB iniciando mongod.exe con la opción –install y la opción -config para especificar el archivo de configuración creado anteriormente.

 "C:\Program Files\MongoDB\Server\3.4\bin\mongod.exe" --config "C:\Program Files\MongoDB\Server\3.4\mongod.cfg" --install 

Para usar un dbpath alternativo, especifique la ruta en el archivo de configuración (por ejemplo, C: \ mongodb \ mongod.cfg) o en la línea de comando con la opción –dbpath.

Si es necesario, puede instalar servicios para varias instancias de mongod.exe o mongos.exe. Instale cada servicio con un único –serviceName y –serviceDisplayName. Use varias instancias solo cuando existan suficientes recursos del sistema y el diseño de su sistema lo requiera.

Paso 5: Inicie el servicio MongoDB.

 net start MongoDB 

Paso 6: Detenga o elimine el servicio MongoDB según sea necesario. Para detener el servicio MongoDB, use el siguiente comando:

 net stop MongoDB 

Por favor, pruebe los pasos en Mongo DB: 3.6 y 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