Instalar MongoDB en Ubuntu

Vamos a instalar MongoDB en Ubuntu con un paquete .deb. Ubuntu por defecto ya incluye sus propios paquetes para MongoDB pero los oficiales de MongoDB suelen estar más actualizados, así que vamos a usar esos.

Importamos la llave publica que usa el gestor de paquetes:

Creamos el fichero tipo “list” para MongoDB según nuestra versión de Ubuntu:

Para Ubuntu 12.04:

Para Ubuntu 14.04:

Para Ubuntu 16.04:

Refrescamos la base de datos local de paquetes:

Por ultimo instalamos los paquetes de MongoDB

Lanzar MongoDB

MongoDB, por defecto guarda todos los ficheros de datos en “/var/lib/mongodb” y los de logs en “/var/log/mongodb” y usa el usuario mongodb. Todo esto puede cambiarse desde el fichero de configuración de MongoDB en “/etc/mongod.conf“.

Vamos a crear un servicio para lanzar MongoDB, lo hacemos así por que de este modo podemos habilitar el inicio automático cuando se reinicie nuestro equipo, podemos usar el siguiente comando para crear este fichero:

Y pegamos el siguiente contenido:

Para iniciar MongoDB:

Para parar MongoDB:

Y para que se ejecute automáticamente al iniciar el sistema:

Podemos comprobar si se ha iniciado correctamente comprobando el fichero de log en “/var/log/mongodb/mongod.log“, buscaremos la linea donde dice “[initandlisten] waiting for connections on port <port>“.

Asignar contraseña al usuario administrador

Entramos a la linea de comandos de mongo usando el comando “mongo“, una vez dentro, especificamos que vamos a trabajar con la base de datos “admin“:

Ahora creamos el usuario administrador con el rol “root“, podemos usar el nombre y contraseña que queramos:

Si más tarde queremos cambiar la contraseña de este usuario, usamos el siguiente comando:

Salimos de la linea de comandos de mongo con “exit“.

Ahora tenemos que modificar la configuración de MongoDB para habilitar la autenticación de usuarios:

Buscamos la linea “security:” y le quitamos el comentario si lo tiene, luego justo debajo añadimos “authorization: ‘enabled’“:

Desde este mismo fichero también podemos especificar que IPs se van a conectar a nuestra base de datos, por defecto solo acepta conexiones locales así que si queremos acceder desde el exterior tenemos que editar el parámetro “bindIp, si lo comentamos permitiremos el acceso desde cualquier lugar:

Por ultimo reiniciamos MongoDB para cargar la nueva configuración:

Hay que tener en cuenta que a partir de ahora, cuando usemos la linea de comandos de mongo, tenemos que autenticarnos al usar una base de datos:

Ajustando el Firewall (Opcional)

Si tenemos activado el firewall por defecto de Ubuntu (ufw) no va a permitir conexiones externas a nuestra instalación de MongoDB, para abrir el puerto 27017 (el puerto por defecto de MongoDB) usamos el siguiente comando:

Para más seguridad, podemos indicar la IP concreta desde la que nos vamos a conectar:

Podemos verificar el cambio en la configuración del firewall con ufw status: