sql >> Base de Datos >  >> NoSQL >> MongoDB

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

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

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

No es necesario ejecutar mongod proceso como root usuario, y esto se desaconseja enfáticamente según la práctica de seguridad común del 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 a mano. 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 root usuario. Algunos directorios y archivos ahora pueden ser propiedad del usuario raíz, por lo que mongodb el usuario no puede acceder a ellos. Su error específico se relaciona con el acceso a archivos en el directorio de datos (es decir, el storage.dbPath configurado en mongod.conf ).

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

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

Luego, ajuste recursivamente los permisos al 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, debe haber más detalles en el mongod archivo de registro (asumiendo que el archivo de registro es escribible por el mongodb usuario del servicio).