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).