puerto - ¿Cómo ejecutar MongoDB como servicio de Windows?
no funciona mongodb (25)
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
¿Cómo configurar MongoDB para que pueda funcionar como servicio de Windows?
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
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".
Considere usar
mongod --install --rest --master
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
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
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"
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 programa / MongoDB / Server / 3.2 / bin"
Pasos para ejecutar mongo como un servicio de ventana
- Abra el símbolo del sistema como administrador
- 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). - Presione enter
- Escriba
net start MongoDB
- Presione enter
- Presione Windows + R, escriba
services.msc
y compruebe si Mongo se está ejecutando como un servicio.
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 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"
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
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
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ó.
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 describe .
Use un archivo de configuración ...
"C:/mongodb/bin/mongod.exe" --config "C:/mongodb/mongod.cfg" --install
La forma más simple es
- Crear carpeta
C:/data/db
- Crea el 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 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
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
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
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í
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.
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
no solo --install
,
también necesita --dbpath
y --logpath
y después de reiniciar el sistema operativo, debe eliminar "mongod.lock " manualmente
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.
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.
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
mongod --config "C:/Program Files/MongoDB/Server/3.6/mongod_primary.cfg" --install --serviceName "MongoDB_Primary" --serviceDisplayName "MongoDB Primary"