reconoce - no puedo instalar mongodb en windows 10
No se puede iniciar MongoDB como un servicio (22)
He estado desarrollando para MongoDB durante algunos meses y me gustaría instalarlo como un servicio en mi máquina Windows 7 Enterprise. El siguiente es el comando que he ejecutado para crear el servicio:
"D:/Milvia Systems/Development/MongoDB/mongod.exe" --logpath "D:/Milvia Systems/Development/MongoDB/logs/DBLog.log" --logappend --dbpath "D:/Milvia Systems/Development/MongoDB/db" -vvv --reinstall
Sin embargo, cada vez que uso net start "MongoDB" o el Panel de control de servicio recibo el siguiente error:
Error 1053: el servicio no respondió a la solicitud de inicio o control de manera oportuna.
Entorno: Windows 7 Enterprise 64bit MongoDB: 1.6.3 versión pdfile 4.5
¿Ha comprobado su registro para ver el problema real?
Sugiero extraer la instalación de Mongo en c:/mongodb
.
Cree los c:/mongodb/logs
y c:/mongodb/data/db
.
A continuación, c:/mongodb/bin
directorio c:/mongodb/bin
y ejecute lo siguiente para eliminar el servicio (¡si lo ha instalado!):
mongod --remove
Luego instale el servicio, especificando los directorios de registro y datos:
mongod --logpath c:/mongodb/logs/mongo.log --dbpath c:/mongodb/data/db --directoryperdb --install
Entonces, si hay un problema al iniciar el servicio, debería ver el motivo en el archivo de registro especificado.
Más información here .
Acabo de encontrar el mismo problema en mi máquina con Windows 7. Seguí las instrucciones en MongoDBs Docs para la instalación, pero no me permitió ejecutar "net start MongoDB" a menos que estuviera en "C: /". No quería volver y reinstalar MongoDB para seguir las instrucciones incluidas en el enlace de Webiyo mencionado anteriormente. Si ya instaló MongoDB de acuerdo con sus documentos y desea poder ejecutar "net start MongoDB" desde donde sea que esté el directorio de su proyecto:
Vaya a HKEY_LOCAL_MACHINE> SYSTEM> CurrentControlSet> services> MongoDB
Haga doble clic en ImagePath en la columna Nombre
Pegue en el siguiente ImagePath (edite el directorio de la carpeta y los nombres para que coincidan con sus necesidades):
C:/mongodb/bin/mongod.exe --service --rest --master --logpath=C:/mongodb/log/mongolog.txt --dbpath=C:/mongodb/data/db --config C:/mongodb/mongod.cfg
Tenga en cuenta que si copia directamente este valor de ImagePath y su carpeta de "datos" está en el directorio mongodb en lugar de C: / agregue la siguiente línea a su archivo "mongod.cfg": dbpath=C:/mongodb/data/db
Después de hacer esto, cuando ejecuto "net stop MongoDB" recibo el mensaje "Se ha producido el error de sistema 109. La tubería ha finalizado". Puede verlo también. Este mensaje ha sido discutido a fondo en jira.mongodb.org .
Para ahorrarle el tiempo de leer toda la discusión de ida y vuelta, Tad Marshalls lo resume todo:
"... funcionaba bien en la versión 2.1.0, pero los cambios posteriores la volvieron a romper. Pero sí, aparece este mensaje de error en el código actual.
La explicación es que mongod.exe está saliendo de un hilo de devolución de llamada creado por el Administrador de control de servicios de Windows cuando nos llama debido a "net stop mongodb" y esto rompe el conducto RPC que usó para crear el hilo de devolución de llamada. Necesitamos reorganizar nuestra lógica de salida para evitar hacer esto.
El mensaje de error es el único efecto real de este problema; Salimos del comando, limpiamente, e informamos al Administrador de control de servicios de Windows que estamos detenidos, pero luego el comando "net" muestra un mensaje de error porque no regresamos de la llamada RPC como esperaba ".
Bueno, en mi caso, estaba ejecutando poco espacio en disco en mi disco donde tengo mis archivos de datos MongoDB. Revisé el archivo de registros de MongoDB que decía lo siguiente
2015-11-11T21: 53: 54.717 + 0500 E JOURNAL [initandlisten] Espacio libre insuficiente para archivos de diario 2015-11-11T21: 53: 54.717 + 0500 I JOURNAL [initandlisten] Haga que al menos 3379 MB estén disponibles en C: / wamp / bin / mongodb / data / db / journal o use --smallfiles
Todo lo que tenía que hacer era limpiar un poco de espacio y volver a encender el servicio. Funcionó para mí. Entonces, todo lo que tiene que hacer es verificar su archivo de registro y tratar el problema en consecuencia.
Compruebe si su archivo mongod.cfg tiene pestañas. ¡Eliminar las pestañas me lo resolvió!
Compruebe si ya se está ejecutando una instancia de proceso de mongod
. En caso afirmativo, este servicio no se iniciará porque C:/data/db/mongod.lock
será utilizado por él.
Y para iniciar MongoDB como un servicio, este archivo no debe ser utilizado por ningún proceso.
Ejecuté este comando:
C:/MongoDB/Server/3.4/bin>net start MongoDB
Y recibí este mensaje:
El servicio no responde a la función de control. Para obtener más ayuda, escriba NET HELPMSG 2186.
Después de algunas pruebas y errores, al seguir el tutorial me di cuenta de que debía nombrar mi archivo mongod.conf, pero el comando intentaba hacer referencia a mongod.cfg .
Tan pronto como corregí ese nombre y volví a ejecutar los comandos,
C:/MongoDB/Server/3.4/bin>sc.exe delete MongoDB
[SC] DeleteService SUCCESS
C:/MongoDB/Server/3.4/bin>sc.exe create MongoDB binPath= "/"C:/MongoDB/Server/3.4/bin/mongod.exe/" --service --config=/"C:/MongoDB/Server/3.4/mongod.cfg/"" DisplayName= "MongoDB" start= "auto"
[SC] CreateService SUCCESS
C:/MongoDB/Server/3.4/bin>net start MongoDB
The MongoDB service is starting....
The MongoDB service was started successfully.
El servicio comenzó a funcionar bien.
Empecé a seguir un tutorial en un blog que requería MongoDB. Tenía instrucciones para descargar y configurar el servicio. Pero por alguna razón, el comando para iniciar el servicio de Windows en ese tutorial no funcionaba. Así que fui a los documentos de MongoDB e intenté ejecutar este comando como figura en mongodb.org-
El comando para strting mongodb service-sc.exe crea MongoDB binPath = "/" C: / MongoDB / bin / mongod.exe / "--service --config = /" C: / MongoDB / bin / mongodb / mongod.cfg / "" DisplayName = "MongoDB" start = "auto"
Recibí este mensaje: [SC] CreateService SUCCESS
Luego ejecuté este: net start MongoDB
Y recibí este mensaje:
The service is not responding to the control function.
More help is available by typing NET HELPMSG 2186.
Creo un archivo llamado ''mongod.cfg'' en ''C: / MongoDB / bin / mongodb /' Tan pronto como agregué ese archivo y volví a ejecutar el comando ''net start MongoDB'', el servicio comenzó a funcionar correctamente.
Espero que esto ayude.
Estos son los pasos que seguí para instalar mongoDB en Windows 7
descargue el archivo .msi del sitio mongodb -> https://www.mongodb.com/download-center?jmp=nav#community y ejecútelo
Donde quiera que descargue su mondoDb (generalmente en la carpeta c Drive Archivos de programa), vaya a esa carpeta y donde sea que esté la carpeta bin en esa misma carpeta, cree su carpeta de datos y su carpeta de registro
3. Dentro de su carpeta de datos, cree su carpeta db
La estructura se vería algo como esto
Ahora abra el símbolo del sistema como administrador.
cambie su ruta de archivo e ingrese la carpeta bin (en este caso sería c> archivos de programa> MongoDB> bin>)
Escriba el siguiente comando: mongod --directoryperdb --dbpath "C: / Archivos de programa / MongoDB / data" --logpath "C: / Archivos de programa / MongoDB / log / mongo.log" --logappend --rest - instalar
Esto establecería la ruta de acceso y la ruta de la base de datos. Por último, ejecute net start MongoDB . Espero que esto ayude.
Otra forma en que esto podría fallar es si la cuenta que ejecuta el servicio no tiene permiso de escritura en el directorio de datos.
En ese caso, el servicio no podrá crear un archivo de bloqueo.
El servicio mongod se comporta mal en esta situación y entra en un bucle al iniciar un proceso, que arroja inmediatamente una excepción no controlada, bloqueos, etc. el archivo de registro se vuelve a crear cada vez que se inicia el proceso, por lo que debe tomarlo rápidamente si lo desea para ver el error
el usuario predeterminado para los servicios de Windows sería localhost / system. así que la solución es garantizar que este usuario pueda escribir en su directorio de db o iniciar el servicio como otro usuario que pueda hacerlo.
Para mongoDB 3.0 , deberá configurar lo siguiente en el archivo de configuración.
logpath=E:/mongoDBdata/log/mongoDB.log
dbpath=E:/mongoDBdata/db
el logpath debe terminar con un archivo y no una carpeta.
Para la versión 2.6 al menos, debe crear las / data / db / y / log / carpetas a las que apunta mongo.cfg. MongoDB no lo hará y lanzará ese error en respuesta cuando se ejecute como un servicio.
Para mí, el problema era el directorio equivocado. Asegúrese de copiar y pegar el directorio desde su explorador de archivos y no asumir que el directorio especificado en la página de documentos es correcto.
Para otros que puedan tener el mismo problema en Windows Server 2012:
Acabo de tener el mismo problema con Mongo 3.0.3 en Windows Server 2012. No soy administrador de sistemas, así que no sé qué han cambiado para sc.exe. Tengo que usar
sc.exe create MongoDB binPath= "C:/mongodb/bin/mongod.exe --service --config=C:/mongodb/mongod.cfg" DisplayName= "MongoDB" start= "auto"
Esto es sin / "/" para rutas de archivos binarios y de configuración en comparación con la de su sitio web.
Recuerde crear la base de datos antes de comenzar el servicio
C:/>"C:/Program Files/MongoDB/Server/3.2/bin/mongod.exe" --dbpath d:/MONGODB/DB
2016-10-13T18:18:23.135+0200 I CONTROL [main] Hotfix KB2731284 or later update is installed, no need to zero-out data files
2016-10-13T18:18:23.147+0200 I CONTROL [initandlisten] MongoDB starting : pid=4024 port=27017 dbpath=d:/MONGODB/DB 64-bit host=mongosvr
2016-10-13T18:18:23.148+0200 I CONTROL [initandlisten] targetMinOS: Windows 7/Windows Server 2008 R2
2016-10-13T18:18:23.149+0200 I CONTROL [initandlisten] db version v3.2.8
2016-10-13T18:18:23.149+0200 I CONTROL [initandlisten] git version: ed70e33130c977bda0024c125b56d159573dbaf0
2016-10-13T18:18:23.150+0200 I CONTROL [initandlisten] OpenSSL version: OpenSSL 1.0.1p-fips 9 Jul 2015
2016-10-13T18:18:23.151+0200 I CONTROL [initandlisten] allocator: tcmalloc
2016-10-13T18:18:23.151+0200 I CONTROL [initandlisten] modules: none
2016-10-13T18:18:23.152+0200 I CONTROL [initandlisten] build environment:
2016-10-13T18:18:23.152+0200 I CONTROL [initandlisten] distmod: 2008plus-ssl
2016-10-13T18:18:23.153+0200 I CONTROL [initandlisten] distarch: x86_64
2016-10-13T18:18:23.153+0200 I CONTROL [initandlisten] target_arch: x86_64
2016-10-13T18:18:23.154+0200 I CONTROL [initandlisten] options: { storage: { dbPath: "d:/MONGODB/DB" } }
2016-10-13T18:18:23.166+0200 I STORAGE [initandlisten] wiredtiger_open config: create,cache_size=8G,session_max=20000,eviction=(threads_max=4),config_base=false,statistics=(fast),log=(enabled=true,archive=true,path=journal,compressor=snappy),file_manager=(close_idle_time=100000),checkpoint=(wait=60,log_size=2GB),statistics_log=(wait=0),
2016-10-13T18:18:23.722+0200 I NETWORK [HostnameCanonicalizationWorker] Starting hostname canonicalization worker
2016-10-13T18:18:23.723+0200 I FTDC [initandlisten] Initializing full-time diagnostic data capture with directory ''d:/MONGODB/DB/diagnostic.data''
2016-10-13T18:18:23.895+0200 I NETWORK [initandlisten] waiting for connections on port 27017
Entonces puedes detener el proceso Control-C
2016-10-13T18:18:44.787+0200 I CONTROL [thread1] Ctrl-C signal
2016-10-13T18:18:44.788+0200 I CONTROL [consoleTerminate] got CTRL_C_EVENT, will terminate after current cmd ends
2016-10-13T18:18:44.789+0200 I FTDC [consoleTerminate] Shutting down full-time diagnostic data capture
2016-10-13T18:18:44.792+0200 I CONTROL [consoleTerminate] now exiting
2016-10-13T18:18:44.792+0200 I NETWORK [consoleTerminate] shutdown: going to close listening sockets...
2016-10-13T18:18:44.793+0200 I NETWORK [consoleTerminate] closing listening socket: 380
2016-10-13T18:18:44.793+0200 I NETWORK [consoleTerminate] shutdown: going to flush diaglog...
2016-10-13T18:18:44.793+0200 I NETWORK [consoleTerminate] shutdown: going to close sockets...
2016-10-13T18:18:44.795+0200 I STORAGE [consoleTerminate] WiredTigerKVEngine shutting down
2016-10-13T18:18:45.116+0200 I STORAGE [consoleTerminate] shutdown: removing fs lock...
2016-10-13T18:18:45.117+0200 I CONTROL [consoleTerminate] dbexit: rc: 12
Ahora su base de datos está preparada y puede comenzar el servicio usando
C:/>net start MongoDB
The MongoDB service is starting.
The MongoDB service was started successfully.
Si no especificó rutas absolutas de archivos para el directorio de datos o el directorio de registro, obtendrá el mismo error de Windows, pero no un archivo de registro.
Utilicé la información de "Instalar el servicio MongoDB en Windows 7", presioné en Webiyo para corregir los argumentos del servicio registrado:
- Descargue MongoDB y extráigalo en la unidad C: /.
- Agregue los subdirectorios "data" y "logs" en el directorio "C: / mongodb165".
- Agregue un nombre de archivo de registro "mongolog.txt" en "C: / mongodb165 / logs / mongolog.txt".
- Cambie el directorio a "C: / mongodb165 / bin".
Ejecute el siguiente comando:
mongod --install --rest –master –logpath=C:/mongodb165/logs/mongolog.txt
Abra el editor de registro (regedit.exe), vaya a HKEY_LOCAL_MACHINE → SYSTEM → CurrentControlSet → Services.
Encuentre la clave MongoDB y establezca el valor "ImagePath" en:
C:/mongodb165/bin/mongod --service --rest --master --logpath=C:/mongodb165/logs/mongolog.txt --dbpath=C:/mongodb165/data
Guarde los cambios en el registro y salga del editor de registro.
- Abra ComponentServices, haga clic en "Servicios (locales)" y encuentre el servicio MongoDB. Iniciarlo.
- Verifique en la URL http://localhost:28017/ para verificar que MongoDB http://localhost:28017/ estadísticas.
Si observa los detalles del servicio, puede ver que el comando para iniciar el servicio es algo así como:
"C:/Program Files/MongoDB/bin/mongod" --config C:/Program Files/MongoDB/mongod.cfg --service
El equipo de MongoDB olvidó agregar la opción "
around the --config
. Así que solo edite el registro para corregirlo y funcionará.
Si recibe el error:
el nombre del servicio no es válido
cuando ejecute net start mongodb, deberá ejecutar el siguiente comando desde el Paso 4 de Manually Create a Windows Service para MongoDB Community Editition:
sc.exe create MongoDB binPath= "/"C:/Program Files/MongoDB/Server/3.4/bin/mongod.exe/" --service --config=/"C:/Program Files/MongoDB/Server/3.4/mongod.cfg/"" DisplayName= "MongoDB" start= "auto"
Simplemente intente ejecutar mongod.exe localmente en la línea de comandos, puede obtener aquí la excepción, que mongod llama y trata de resolverlo. En mi caso, era un espacio libre pequeño en el disco local, así que simplemente cambio la ubicación de los directorios y cambio el archivo Mongocofig y ahora funciona bien.
Tuve el mismo problema en Windows 8.1
La solución que funcionó para mí es especificar la ruta del archivo de configuración correctamente
Ir a HKEY_LOCAL_MACHINE > SYSTEM > CurrentControlSet > services > MongoDB > imagePath
el valor era como el siguiente:
"C:/Program Files/MongoDB 2.6 Standard/bin/mongod.exe" --config mongod.cfg --service
Luego solo corregí la ruta del archivo de configuración para que coincida con mi ruta real:
"C:/Program Files/MongoDB 2.6 Standard/bin/mongod.exe" --config "d:/mongodb/mongod.cfg" --service
asegúrese de abrir la línea de comando con los derechos de "ejecutar como administrador" en el clic derecho antes de escribir todo el mongod
Los siguientes trabajos con MongoDB 3.6.0
Asegúrate de tener estas carpetas:
- C: / mongodb / data
- C: / mongodb / data / db
Entonces todo lo que necesitas son estos comandos:
- mongod --directoryperdb -dbpath C: / mongodb / data / db --logpath C: / mongodb / log / mongo.log --logappend --service --install
- net start MongoDB
- mongo