¿Cómo puedo configurar MongoDB para que pueda ejecutarse como un servicio de Windows?
¿Cómo puedo configurar MongoDB para que pueda ejecutarse como un servicio de Windows?
Respuestas:
Creo que si lo ejecuta con el --install
interruptor de línea de comando, lo instala como un servicio de Windows.
mongod --install
Sin embargo, podría valer la pena leer este hilo primero. Parece haber algunos problemas con las rutas relativas / absolutas cuando se escribe la clave de registro relevante.
net start MongoDB
Después de intentarlo durante varias horas, finalmente lo hice.
Asegúrese de agregar el <MONGODB_PATH>\bin
directorio a la variable del sistemaPATH
Primero ejecuté este comando:
D:\mongodb\bin>mongod --remove
Luego 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, ejecute:
services.msc
Y busque el servicio MongoDB y haga clic en iniciar.
Si no hace esto, 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 intenta iniciar el servicio desde una consola que no sea de 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
net start MongoDB
lugar de usar services.msc
. (me lo mongod
recomendó)
no sólo --install
,
también necesita --dbpath
y--logpath
y después de reiniciar el sistema operativo, debe eliminar "mongod.lock " manualmente
mongod.lock
error está solucionado en miWindows 8 x64
A diferencia de otras respuestas, esto ...
INICIE EL SERVICIO AUTOMÁTICAMENTE AL REINICIAR / REINICIAR EL SISTEMA
(1) Instalar MongoDB
(2) Agregar bin 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) Para crear un servicio que se iniciará automáticamente 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) Inicie el servicio. EJECUTE COMO ADMINISTRADOR.
net start MongoDB
IMPORTANTE: incluso si esto dice "El servicio MongoDB se inició correctamente", puede fallar
Para verificar dos veces, abra el Panel de control> Servicios, asegúrese de que el estado del servicio MongoDB sea 'En ejecución'
De lo contrario, revise su archivo de registro en C: \ data \ log \ mongod.log para ver 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 seguirá ejecutándose al reiniciar
Si alguna vez quieres matarlo ...
net stop MongoDB
sc.exe delete MongoDB
3.4
a la 3.6
versión en este comandosc.exe create MongoDB binPath= "\"C:\Program Files\MongoDB\Server\3.4\bin\mongod.exe\" --service --config=\"C:\data\mongod.cfg\"" DisplayName= "MongoDB" start= "auto"
Los siguientes pasos se aplican a Windows.
Ejecutar a continuación en un administrativo cmd
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 esa C:\data\db
carpeta existe
Servicios abiertos con:
services.msc
Encuentra MongoDB -> Haz clic derecho -> Iniciar
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í.
Intenté todas las respuestas y luego lo hice de la manera 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
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
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
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 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 absoluta de Windows. Luego inicia el servicio MongoDB escribiendo:
net start MongoDB
Considere usar
mongod --install --rest --master
Trabajando en Mongo DB: 3.6
(1) Instalar MongoDB
(2) Agregar bin a la variable de ruta de entorno
(3) Crear c:\data\db
(4) Crear c:\data\mongod.log
(5) Ejecutar debajo del comando en la bin
carpeta
. \ mongod.exe --instalar --logpath c: \ data \ mongod.log --logappend --bind_ip 12 7.0.0.1 --dbpath c: \ data \ db
(6) Para iniciar mongo db como servicio
inicio neto MongoDB
(7) Finalmente, ejecute mongo
en línea de comando para verificar que el shell mongo 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 binPath me fallaba 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 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"
Iniciar 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 servicio, ejecute este comando en powershell con poder de administración
mongod --config = "C: \ mongodb \ mongodb.config" --install --service
Abra Services.msc y busque MongoDb, luego inícielo.
Estoy en la versión 2.4.9 y estoy usando un archivo de configuración. El servicio no comenzaría hasta que rodeara 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 se sienta tentado a poner comillas invertidas alrededor de un dbpath con espacios. El servicio parecerá iniciarse cuando ejecute net start MongoDB pero finalizará. Verifique los archivos de registro para confirmar que el servicio realmente ha comenzado.
Descubrí que debe pasar: dbpath, config y logfile a mongod con el indicador de instalación
ejemplo:
mongod --dbpath=c:\data\db --config=c:\data\db\config.cfg --logpath=c:\data\db\log.txt --install
nota: tengo la ruta mongod en mi variable de ruta.
Puedes 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, 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 el símbolo del sistema
net start MongoDB
Si instala MongoDB 2.6.1 o posterior utilizando la descarga 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 MSI.
Digamos que su ubicación predeterminada instalada es "C: \ Archivos de programa \ MongoDB \ Server \ 3.2 \ bin"
Pasos para ejecutar mongo como un servicio de ventana
cd C:\Program Files\MongoDB\Server\3.2\bin
(verifique 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 servicio.System error 2 has occurred. The system cannot find the file specified.
probé mongod, mongodb.
mongod --config "C:\Program Files\MongoDB\Server\3.6\mongod_primary.cfg" --install --serviceName "MongoDB_Primary" --serviceDisplayName "MongoDB Primary"
comprobar los servicios de windows
si tiene servicio para mongo, elimínelo ejecutando el siguiente comando
mongod --remove
crear un archivo mongo.cfg con contenido debajo
systemLog:
destino:
ruta del archivo : c: \ data \ log \ mongod.log
almacenamiento:
dbPath: c: \ data \ db
ruta: donde desea almacenar datos de registro
dbPath: su directorio de base de datos
luego ejecuta el siguiente comando
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: directorio de instalación de mongodb
config: dirección de archivo .cfg
DisplayName: su nombre de servicio
Comienza el servicio
net start MongoDB
ahora todas las cosas están hechas. disfrutalo
En mi caso, creo el mongod.cfg junto al mongd.exe con los siguientes contenidos.
# 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 ejecuto los dos comandos 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>
Lo siguiente no es correcto, tenga en cuenta que las comillas escapadas son obligatorias.
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>
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