¿Cómo puedo ejecutar MongoDB como servicio de Windows?
-
19-09-2019 - |
Pregunta
¿Cómo puedo configurar MongoDB para que pueda ejecutarse como un servicio de Windows?
Solución
Creo que si se ejecuta con el modificador de línea de comandos --install
, se instala como un servicio de Windows.
mongod --install
Puede ser que sea digno de la lectura este hilo primera aunque. Parece que hay algunos problemas con las rutas relativas / absolutas cuando la clave de registro correspondiente se escribe.
Otros consejos
Después de probar durante varias horas, por fin hice.
Asegúrese de que ha agregado el directorio <MONGODB_PATH>\bin
al sistema PATH
variables
Primero ejecuta este comando:
D:\mongodb\bin>mongod --remove
Luego ejecuta 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 que allí mismo, en el símbolo del sistema ejecute:
services.msc
Y buscar el servicio MongoDB y haga clic en inicio.
NOTA:. Asegúrese de ejecutar símbolo del sistema como administrador
Si no lo hace, el archivo de registro ( 'D: \ mongodb \ log.txt' en el ejemplo anterior) contendrá líneas como las siguientes:
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 intenta iniciar el servicio desde una consola que no es administrador, (es decir, net start MongoDB
o Start-Service MongoDB
en PowerShell), obtendrá 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 sólo --install
,
También es necesario --dbpath
y --logpath
y después de iniciar el sistema operativo necesita eliminar "mongod.lock " manualmente
A diferencia de otras respuestas, esta ...
INICIAR EL SERVICIO AUTOMÁTICAMENTE AL REINICIAR/REINICIAR EL SISTEMA
Instalación de MongoDB
ventanas
(1) Instalar MongoDB
(2) Agregar contenedor a la ruta
(3) Crear c:\data\db
(4) Crear c:\data\log
(5) Cree c:\data\mongod.cfg con contenido ..
systemLog:
destination: file
path: c:\data\log\mongod.log
storage:
dbPath: c:\data\db
(6) Crear un servicio que inicio automático al reiniciar .. EJECUTAR COMO ADMINISTRADOR ..
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) Iniciar el servicio..EJECUTAR COMO ADMINISTRADOR..
net start MongoDB
IMPORTANTE:Incluso si dice "El servicio MongoDB se inició correctamente", puede fallar.
Para volver a verificar, abra Panel de control> Servicios, asegúrese de que el estado del servicio MongoDB sea 'En ejecución'
De lo contrario, verifique su archivo de registro en C:\data\log\mongod.log para conocer el motivo del error y solucionarlo.
(No inicie MongoDB a través del Panel de control> Servicios, use ..inicio neto MongoDB)
(8) Finalmente, reinicie su máquina con MongoDB ejecutándose y seguirá ejecutándose al reiniciar.
Si alguna vez quieres matarlo...
net stop MongoDB
sc.exe delete MongoDB
Los pasos siguientes se aplican a Windows.
Ejecutar a continuación en un administrativa cmd
mongod --remove
Esto eliminará el servicio MongoDB existente (si existe).
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
Los servicios abiertos con:
services.msc
Para MongoDB -> clic derecho -> Inicio
Puede utilizar 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 utiliza mongodb con parámetros por defecto, puede utilizar estos valores:
- yourIPadress: 127.0.0.1 localhost o
- yourPortNumber: 27017 (puerto por defecto) o No ponga --port
- serviceDisplayName: sólo si se ejecuta más de un servicio (ya que mongodb 1,8)
Hay más información sobre este comando aquí
Este script 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
He intentado todas las respuestas y luego hizo de la manera https://docs.mongodb.org/manual/tutorial/install-mongodb-on-windows/#configure-a-windows-service-for-mongodb-community- edición describe.
Utilice un archivo de configuración ...
"C:\mongodb\bin\mongod.exe" --config "C:\mongodb\mongod.cfg" --install
Este fue el único que trabajó para mí. Como todo lo que tenía que ser una ruta absoluta:
C:\Program Files\MongoDB\Server\3.2\bin>mongod --install --dbpath=c:/data/db --logpath=c:/data/logs/log.txt
También tenía que ejecutarlo desde admin cmd
La forma mongod --install
resultados recomendados en 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 en mongodb C:\mongodb
que necesita para simplemente añadir el logpath:
mongod --install --logpath C:\mongodb\logs\mongo.log
La ruta de acceso al archivo de registro debe existir y que debe ser una ruta absoluta de Windows. A continuación, se inicia el servicio MongoDB escribiendo:
net start MongoDB
Considere el uso
mongod --install --rest --master
Trabajo en Mongo DB: 3.6
(1) Instalar MongoDB
(2) Añadir bin a la variable de ruta del entorno
(3) Crear c:\data\db
(4) Crear c:\data\mongod.log
(5) discurren bajo 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 db mongo como el servicio
net start MongoDB
(7) Por último ejecutar mongo
en línea de comandos para comprobar mongo shell está abierto o no.
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
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 la binPath estaba fallando para mí como se describe en la documentación Mongo
Error:
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 sencilla es,
- Crear carpeta
C:\data\db
- Crea un archivo
C:\data\db\log.txt
Abra el símbolo del sistema como "Ejecutar como administrador" y asegúrese de que la ruta del directorio bin de mogodb 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"
Inicie el servicio mongodb:
net run MongoDB
Trabajo en MongoDB 3.4 [Windows]
- Crear directorio C: / / mongodb de datos
-
Crea un archivo en C: /mongodb/mongodb.config utilizando 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, ejecutar este comando en PowerShell con el poder de administración
mongod --config = "C: \ mongodb \ mongodb.config" --install --service
-
Abrir Services.msc y buscar MongoDB, a continuación, iniciarlo
Para la versión 2.4.3 (versión vigente a partir de la fecha de la fijación), cree un archivo de configuración y luego ejecutar el siguiente:
C:\MongoDB\bin\mongod.exe --config C:\MongoDB\mongod.cfg --service
En la actualidad (hasta la versión 2.4.4), si cualquier camino (dbpath / logpath / config) contiene espacios, entonces el servicio no se iniciará y mostrará el error: "El servicio no está respondiendo a la función de control" .
Estoy en la versión 2.4.9 y el uso de un archivo de configuración. El servicio no comenzaría hasta que rodearon el signo igual en el archivo de configuración con espacios:
dbpath = D:\Mongo data
logpath = C:\mongodb\logs\mongo.log
logappend = true
Originalmente, tenía:
logpath=C:\mongodb\logs\mongo.log
También descubrió que cuando se instala el servicio que usted tiene que utilizar una ruta absoluta para el archivo de configuración, por ejemplo:
c:\mongodb\bin\>mongodb.exe C:\mongodb\bin\mongod.conf --install
No tener la tentación de poner comillas alrededor de un dbpath con espacios. El servicio aparecerá al iniciar cuando se ejecuta net start MongoDB , pero se dará por terminada. Compruebe los archivos de registro para la confirmación de que el servicio realmente ha comenzado.
Ejecutar "cmd.exe" como administrador y ejecute "sc.exe" para añadir un nuevo servicio de Windows.
por ejemplo:
sc.exe create MongoDB binPath= "c:\program files\mongodb\server\3.2\bin\mongod.exe"
He descubierto que debe pasar: dbpath, configuración y archivo de registro a mongod con la bandera instalar
ejemplo:
mongod --dbpath=c:\data\db --config=c:\data\db\config.cfg --logpath=c:\data\db\log.txt --install
Nota: He mongod camino en mi variable de ruta.
Puede controlar el servicio con:
net start mongodb
net stop mongodb
Estos son los pasos para instalar MongoDB como servicio de Windows:
-
Crear un directorio de registro, por ejemplo,
C:\MongoDB\log
-
Crear un directorio db, por ejemplo,
C:\MongoDB\db
-
Preparar un archivo de configuración con líneas siguientes
dbpath=C:\MongoDB\db
logpath=C:\MongoDB\log
Coloque el archivo de configuración con el nombre mongod.cfg en la carpeta "C: \ MongoDB \"
-
Después de 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 se ejecuta este comando, obtendrá la
[SC] CreateService SUCCESS
-
Ejecutar comando siguiente en el símbolo del sistema
net start MongoDB
Si instala MongoDB 2.6.1 y posteriores utilizando el MSI descargar de un Administrador de comandos Prompt nofollow, una definición de servicio automáticamente debe ser creado para usted.
La documentación MongoDB también tiene un tutorial para ayudarle a Crear manualmente un servicio de Windows definición si es necesario.
Esta respuesta es para aquellos que ya han instalado Mongo DB usando instalador MSI.
Digamos que su defecto instalado ubicación es "C: \ Archivos de programa \ MongoDB \ Server \ 3.2 \ bin"
Pasos para utilizar mongo como un servicio de la ventana
- Abierto de comandos como administrador
- Tipo
cd C:\Program Files\MongoDB\Server\3.2\bin
(marque ruta adecuada, ya que puede tener una versión diferente instalada, y no 3,2). - Pulse Intro
- Tipo
net start MongoDB
- Pulse Intro
- Prensa de Windows + R, escribe
services.msc
y comprobar si Mongo se ejecuta como un servicio.
mongod --config "C:\Program Files\MongoDB\Server\3.6\mongod_primary.cfg" --install --serviceName "MongoDB_Primary" --serviceDisplayName "MongoDB Primary"
-
Servicios en las ventanas de verificación
Si usted tiene servicio de mongo eliminarlo por instrucción ejecutada abajo
mongod --remove
-
crear el archivo con el contenido mongo.cfg abajo
systemlog:
destino: archivo
ruta: C: \ data \ log \ mongod.log
almacenamiento:
dbPath: c: \ data \ db
ruta de acceso: en la que desea almacenar datas más
log dbPath: el directorio de la base de datos
-
a continuación, ejecutar comandos abajo
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: mongodb directorio de instalación
config: Dirección archivo .cfg
DisplayName: Su nombre Servicio
-
iniciar el servicio
net start MongoDB
Ahora, cada se hacen las cosas. disfrutar de ese
En mi caso, Crío mongod.cfg al lado del mongd.exe con el siguiente contenido.
# 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:
Luego ejecutar el comando dos para crear el servicio.
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>
no son correctos, se requiere la siguiente nota las comillas escapado.
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>
Los PLZ pruebe los pasos de 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