¿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.
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
(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:
Hay más información sobre este comando aquí
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
C:\data\db
C:\data\db\log.txt
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"
Comience el servicio mongodb:
net run MongoDB
Trabajando en MongoDB 3.4 [Windows]
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
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). net start MongoDB
services.msc
y compruebe si Mongo se está ejecutando como un servicio. Estos son los pasos para instalar MongoDB como servicio de Windows:
Cree un directorio de registro, por ejemplo, C:\MongoDB\log
Cree un directorio db, p. Ej. C:\MongoDB\db
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 \”
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"
Una vez que ejecute este comando, obtendrá el [SC] CreateService SUCCESS
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
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