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

MongoDB en Ubuntu no se inicia como un servicio, no hay nada en el registro

Bien, todo se reduce a los permisos, pero vayamos paso a paso. Cuando ejecutas sudo mongod no carga un archivo de configuración en absoluto, literalmente comienza con los valores predeterminados compilados:puerto 27017, ruta de la base de datos de /data/db, etc., es por eso que recibió el error de no poder encontrar esa carpeta. El "predeterminado de Ubuntu" solo se usa cuando lo apunta al archivo de configuración (si comienza a usar el comando de servicio, esto se hace detrás de escena).

A continuación, lo ejecutó así:

sudo mongod -f /etc/mongodb.conf

Si no hubo problemas antes, entonces los habrá ahora:ha ejecutado el proceso, con su configuración normal (apuntando a su dbpath y registro habituales) como usuario raíz. Eso significa que ahora habrá una cantidad de archivos en esa carpeta MongoDB normal con el usuario:grupo de root:root .

Esto causará errores cuando intente iniciarlo como un servicio normal nuevamente, porque el usuario mongodb (como el servicio intentará ejecutarse) no tendrá permiso para acceder a esos root:root y, lo que es más importante, probablemente no podrá escribir en el archivo de registro para proporcionarle ninguna información.

Por lo tanto, para ejecutarlo como un servicio normal, debemos corregir esos permisos. Primero, asegúrese de que MongoDB no se esté ejecutando actualmente como root, luego:

cd /var/log/mongodb
sudo chown -R mongodb:mongodb .
cd /var/lib/mongodb
sudo chown -R mongodb:mongodb .

Eso debería arreglarlo (asumiendo que el usuario:grupo es mongodb:mongodb ), aunque probablemente sea mejor verificar con un ls -al o similar para estar seguro. Una vez hecho esto, debería poder hacer que el servicio se inicie correctamente de nuevo.