unit unable start robomongo org not mongod found failed desinstalar deploy actualizar mongodb ubuntu

start - unable to locate package mongodb-org



mongodb 3.4.3 Permiso denegado wiredtiger_kv_engine.cpp 267 error con ubuntu 16 (4)

Tengo problemas para utilizar mongod como servicio: ¿Cómo es posible que funcione cuando hago sudo mongod -f /etc/mongod.conf pero cuando lo ejecuto con sudo service mongod start me aparece un error en el registro?

Assertion: 28595:13: Permission denied src/mongo/db/storage/wiredtiger/wiredtiger_kv_engine.cpp 267

Estoy ejecutando mongodb en ubuntu 16

Seguí exactamente las instrucciones en la documentación de mongodb para la instalación de esa versión, ¿es esto un error? Cualquier sugerencia de como resolver esto es apreciada.

Información Adicional:

El script de inicio del servicio mongodb tiene este aspecto y se ejecuta como mongodb de usuario, ¿podría estar conectado al error? lib / systemd / system / mongodb.service:

[Unit] Description=MongoDB Database Service Wants=network.target After=network.target [Service] ExecStart=/usr/bin/mongod --config /etc/mongod.conf ExecReload=/bin/kill -HUP $MAINPID Restart=always User=mongodb Group=mongodb StandardOutput=syslog StandardError=syslog [Install] WantedBy=multi-user.target


Tengo problemas para utilizar mongod como servicio: ¿Cómo es posible que funcione cuando hago sudo mongod -f /etc/mongod.conf pero cuando lo ejecuto con sudo service mongod start me aparece un error en el registro?

El comando sudo inicia mongod con permisos de root (también conocido como acceso de superusuario ). Si ejecuta mongod como un servicio, el usuario y el grupo están configurados en la definición de servicio ( mongodb para ambos en su ejemplo).

No hay necesidad de ejecutar el proceso mongod como usuario root , y esto se desaconseja por la práctica común de seguridad de Principio de privilegio mínimo .

Si desea probar una configuración desde la línea de comandos, puede usar sudo para ejecutar con un usuario específico en lugar del usuario predeterminado (raíz).

Por ejemplo:

sudo -u mongodb mongod -f /etc/mongod.conf

En general, es mejor usar una configuración de servicio en lugar de ejecutar mongod manualmente. Con la invocación manual también deberá recordar incluir parámetros como la ruta del archivo de configuración (ya que no hay una ruta de configuración predeterminada). Sin un archivo de configuración, mongod también usa opciones predeterminadas, como dbPath de /data/db .

Afirmación: 28595: 13: Permiso denegado src / mongo / db / storage / wiredtiger / wiredtiger_kv_engine.cpp 267

La causa probable de sus errores de permiso es haber iniciado previamente mongod como usuario root . Algunos directorios y archivos ahora pueden ser propiedad del usuario root, por lo que el usuario mongodb no puede acceder a ellos. Su error específico está relacionado con el acceso a los archivos en el directorio de datos (es decir, el mongod.conf configurado en mongod.conf ).

Suponiendo que no haya cambiado las rutas predeterminadas en su archivo mongod.conf , debería poder ajustar recursivamente los permisos para que coincidan con lo que espera la definición de mongod.service .

Primero, asegúrese de haber detenido su instancia de mongod si se está ejecutando actualmente.

Luego, ajuste recursivamente los permisos para el usuario y grupo esperado:

# storage.dbPath sudo chown -R mongodb:mongodb /var/lib/mongodb # systemLog.path sudo chown -R mongodb:mongodb /var/log/mongodb

Ahora debería poder iniciar mongod como un servicio. Si el servicio no se inicia, debería haber más detalles en el archivo de registro mongod (suponiendo que el usuario del servicio mongodb escribir el archivo de registro).


Deseo adjuntar un comentario a la respuesta anterior, pero lamentablemente todavía no puedo.

Estoy completamente de acuerdo con la explicación de Stennie. Es exactamente lo que me pasó. Siempre he ejecutado mongod como un servicio, pero hoy, debido a algunos cambios que he realizado, he intentado ejecutar el proceso utilizando sudo mongod --auth --dbpath /data/mongodb/ .. para probar autorizaciones y db cambio de ubicación. Después de eso, el servicio mongod ya no se ejecutó debido a este problema de permisos.

Tengo que decir que el comando sudo chown -R mongodb:mongodb /data/mongodb/ no solucionó el problema inmediatamente como se esperaba. Tuve que reiniciar varias veces, eliminar el archivo mongod.lock en /data/mongodb/ , volver a emitir el comando sudo chown ... y finalmente todo salió bien.


Hay tres configuraciones que provocan este tipo de problema:

  1. La instalación de MongoDB está configurada para crear archivos de base de datos en una ruta determinada y esta ruta no existe en su sistema actual. Este camino se llama dbpath en mongo.

En su caso, compruebe si /data/db existe. Si no lo hace o si está vacío, mongod está intentando la ruta dbpath incorrecta. Necesitas encontrarlo, generalmente está bajo /var/lib/mongodb .

Una vez que lo encuentras hay dos cosas que puedes hacer. Primero, copie todo el archivo desde allí a /data/db . En segundo lugar, cambie su dbpath bajo el archivo mongod.conf, que se encuentra (en linux) en /etc/mongod.conf . Asegúrese de iniciar mongod con --config especificando el archivo de configuración.

  1. MongoDB no tiene permiso para leer uno o más archivos o directorios correspondientes a su dbpath.

chown mongodb:mongodb dbpath -R .

  1. Falta MongoDB en WiredTiger.wt. Esto puede suceder si elimina archivos bajo la ruta de acceso de datos o si hay un error en el dispositivo. Lo hacemos para probar una estrategia de recuperación, por ejemplo.

Si está seguro de que dbpath es correcto y que no hay ninguna instancia de WiredTiger.wt allí. Su base de datos está rota. No hay formas de asegurar la integridad si pierde este archivo. Reinstalar mongodb por:

sudo apt-get purge mongodb-org*

sudo rm -r dbpath

sudo apt-get install mongodb-org

Edición: O copie dbpath desde una de sus réplicas.


Tiene el mismo problema

Lo que ha estado en /var/log/mongodb/mongod.log:

2017-05-13T13:46:41.152+0700 E STORAGE [initandlisten] WiredTiger error (13) [1494658001:152518][15821:0x7fb843803cc0], connection: /var/lib/mongodb/journal/WiredTigerPreplog.0000000002: file-remove: unlink: Permission denied 2017-05-13T13:46:41.159+0700 I - [initandlisten] Assertion: 28595:13: Permission denied src/mongo/db/storage/wiredtiger/wiredtiger_kv_engine.cpp 267

Así que vemos que algo no puede eliminar el archivo "WiredTigerPreplog.0000000002" en / var / lib / mongodb / journal / So id solo le di permisos, acabo de hacerlo:

sudo chmod 764 /var/lib/mongodb/journal/

Si no es de ayuda, intente:

sudo chown -R mongodb:mongodb /var/lib/mongodb/ && sudo chmod 764 /var/lib/mongodb/journal/