En esta entrada veremos cómo instalar MongoDB en Ubuntu 18.04 LTS Bionic Beaver paso a paso, de modo que al final de esta entrada dispondrás de este servicio de bases de datos, imprescindible en muchos desarrollos backend, en tu servidor o VPS Ubuntu.
Contenido
Antes de instalar MongoDB en Ubuntu 18.04
Para completar esta guía de instalación de MongoDB Server en Ubuntu 18.04 necesitarás cumplir estos requerimientos mínimos:
- Un sistema Ubuntu 18.04 LTS Bionic Beaver actualizado.
- Acceso a línea de comandos con un usuario con permisos de sudo.
- Conexión a Internet.
También necesitaremos algunas herramientas que obtendremos fácilmente desde los repositorios de Ubuntu 18.04, así que actualizamos las listas de paquetes:
~$ sudo apt update
E instalamos dichas herramientas y utilidades:
~$ sudo apt install -y gnupg
Cómo instalar el repositorio oficial de MongoDB en Ubuntu 18.04
Vamos a instalar el repositorio oficial de MongoDB para Ubuntu 18.04 LTS, ya que aunque existen paquetes de MongoDB en los repositorios del sistema, pertenecen a la versión 3.6.3, cuando la versión estable actual pertenece a la rama 5.0.
Como se trata de un repositorio firmado, tendremos que importar la clave pública para comprobar las firmas de los paquetes:
~$ wget https://www.mongodb.org/static/pgp/server-5.0.asc -qO- | sudo apt-key add -
Creamos el archivo para el nuevo repositorio:
~$ sudo nano /etc/apt/sources.list.d/mongodb-org.list
Y añadimos esta única línea:
deb http://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/5.0 multiverse
Guardamos y cerramos el archivo. Ahora actualizamos las listas de paquetes, que incluirán el nuevo repositorio de MongoDB:
~$ sudo apt update
Cómo instalar MongoDB en Ubuntu 18.04
Para instalar el servidor MongoDB en Ubuntu 18.04 necesitamos el paquete mongodb-org, perteneciente al repositorio que acabamos de configurar. Lo instalaremos directamente con el comando apt:
~$ sudo apt install -y mongodb-org
Tras la descarga e instalación de este paquete y sus dependencias se crea un nuevo servicio en nuestro sistema Ubuntu 18.04, llamado mongod.service, aunque también podemos utilizar el nombre corto, mongod. Este servicio mongod no queda habilitado ni iniciado tras la instalación, por lo que tendremos que realizar estas acciones manualmente.
Para habilitar el servicio y que de esa forma inicie con cada arranque del sistema, usaremos la opción enable del comando systemctl:
~$ sudo systemctl enable mongod
Y si quieres empezar a trabajar de inmediato con el servicio, será necesario iniciarlo de forma manual por primera vez:
~$ sudo systemctl start mongod
Podemos comprobar en cualquier momento el estado de MongoDB con el comando systemctl status mongod
:
Cómo instalar el cliente de MongoDB para Ubuntu 18.04 LTS
Si has seguido los pasos anteriores ya dispondrías del cliente, pero si únicamente quieres instalar un cliente de MongoDB para Ubuntu 18.04 LTS para trabajar remotamente, con el repositorio oficial debidamente configurado, necesitarás el paquete mongodb-mongosh, que podrás instalar con apt:
~$ sudo apt install -y mongodb-mongosh
Terminada la descarga e instalación del paquete y sus dependencias ya dispondrás en Ubuntu 18.04 del cliente de consola mongosh.
Cómo conectar a MongoDB en Ubuntu 18.04 LTS
Una forma de probar MongoDB Server fácil y rápidamente es usar el cliente o shell de conexión mongosh de forma interactiva, llamándolo sin argumentos:
~$ mongosh Current Mongosh Log ID: 625852acfa1989cc4ad4f42d Connecting to: mongodb://127.0.0.1:27017/?directConnection=true&serverSelectionTimeoutMS=2000&appName=mongosh+1.3.1 Using MongoDB: 5.0.7 Using Mongosh: 1.3.1 For mongosh info see: https://docs.mongodb.com/mongodb-shell/ To help improve our products, anonymous usage data is collected and sent to MongoDB periodically (https://www.mongodb.com/legal/privacy-policy). You can opt-out by running the disableTelemetry() command. ------ The server generated these startup warnings when booting: ###: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine. See http://dochub.mongodb.org/core/prodnotes-filesystem ###: Access control is not enabled for the database. Read and write access to data and configuration is unrestricted ------ test>
Una de las primeras acciones a realizar será decidir si quieres usar o no el servicio de telemetría anónima. Si quieres desactivarlo utiliza el siguiente comando:
> disableTelemetry()
Para salir del cliente mongosh utiliza el comando exit:
> exit
Otra forma de probar el servicio es pasar un script mínimo directamente en línea de comandos, mediante la opción eval del cliente de consola mongosh:
~$ mongosh --eval 'db.runCommand({ connectionStatus: 1 })'
Esto nos devolverá toda la información sobre la conexión:
~$ mongosh --eval 'db.runCommand({ connectionStatus: 1 })' Current Mongosh Log ID: 62584f06b84e0048130857b1 Connecting to: mongodb://127.0.0.1:27017/?directConnection=true&serverSelectionTimeoutMS=2000&appName=mongosh+1.3.1 Using MongoDB: 5.0.7 Using Mongosh: 1.3.1 ... { authInfo: { authenticatedUsers: [], authenticatedUserRoles: [] }, ok: 1 }
Desde este momento ya puedes integrar MongoDB Server en tus desarrollos sobre tu servidor o VPS Ubuntu 18.04.
Cómo configurar MongoDB en Ubuntu 18.04
Para configurar MongoDB en Ubuntu 18.04 trabajaremos sobre su archivo de configuración, cuya ruta es /etc/mongod.conf. Editando este archivo podremos realizar diferentes ajustes.
Como valores por defecto debemos saber que MongoDB…
- Sólo atiende conexiones a través de la interfaz loopback (dirección IP 127.0.0.1), según la directiva bindIp.
- Que el puerto de escucha es el 27017.
- Que el archivo de registro de eventos o log es /var/log/mongodb/mongodb.log, etc.
Si haces cualquier ajuste en la configuración, después de guardar los cambios deberás reiniciar el servicio:
~$ sudo systemctl restart mongod
El servicio mongod no admite comando reload para recargar configuraciones, es necesario reiniciarlo.
Activar el uso de contraseñas
Por ejemplo, vamos a crear un usuario administrador que sólo pueda conectar mediante contraseña. Editaremos el archivo de configuración mongod.conf:
~$ sudo nano /etc/mongod.conf
Buscamos la directiva security:
... #security: ...
La activamos, eliminando el carácter # al principio de línea, y añadimos la directiva authorization:
... security: authorization: enabled ...
Es importante señalar que no podemos usar tabulaciones en los archivos de configuración de MongoDB, sólo se permiten espacios en blanco.
Guardamos los cambios, cerramos el archivo y reiniciamos el servicio:
~$ sudo systemctl restart mongod
Ahora conectamos con el servicio usando el cliente mongosh:
~$ mongosh
Seleccionamos la base de datos admin:
> use admin
Y creamos el nuevo usuario administrador, indicando su contraseña, rol y base de datos:
> db.createUser({user: "instalador", pwd: "XXXXXXXX", roles: [{role: "root", db: "admin"}]})
Cerramos la conexión:
> exit
Y volvemos a conectar, especificando el usuario con el que queremos trabajar (el que acabamos de crear):
~$ mongosh -u instalador Enter password: ******** ... >
Veremos que se nos pedirá la contraseña para establecer la conexión.
Cómo acceder remotamente a MongoDB en Ubuntu 18.04
Para permitir conexiones entrantes al servicio MongoDB de tu máquina Ubuntu 18.04 será necesario posibilitar que el servicio escuche peticiones desde red en lugar de solamente locales, para lo que editaremos mongod.conf:
~$ sudo nano /etc/mongod.conf
Buscaremos el bloque de configuración net:
... # network interfaces net: port: 27017 bindIp: 127.0.0.1 ...
Cambiaremos el valor 127.0.0.1 de la directiva bindIp por 0.0.0.0:
... # network interfaces net: port: 27017 bindIp: 0.0.0.0 ...
Guardamos los cambios y reiniciamos MongoDB Server:
~$ sudo systemctl restart mongod
Configuración del firewall UFW de Ubuntu 18.04 para MongoDB
Si tienes activado el firewall UFW de Ubuntu 18.04, será necesario añadir una regla para permitir conexiones a MongoDB. El puerto en el que espera conexiones MongoDB es el 27017, así que crearemos la regla adecuada:
~$ sudo ufw allow 27017/tcp
Este ajuste hará efecto de inmediato.
Probar el acceso remoto a MongoDB
Para probar el acceso remoto al servicio MongoDB de nuestro sistema Ubuntu 18.04, conectaremos desde otra máquina en red con algún cliente.
Por ejemplo, desde otra máquina que cuente con el cliente mongosh especificaremos la dirección IP o nombre DNS del servidor con el parámetro –host, y el usuario con el que queremos acceder con el parámetro -u:
~$ mongosh --host ubuntu64.local.lan -u instalador
Tras autenticarnos facilitando la contraseña, se iniciará la sesión y podremos trabajar como si se tratase de una conexión local.
Conclusión
Ahora que ya sabes cómo instalar y configurar MongoDB en Ubuntu Server 18.04 LTS Bionic Beaver estás listo para integrarlo en las pilas de desarrollo backend y frontend que usan este motor de bases de datos como soporte.
Si tienes preguntas, dudas, sugerencias, notificaciones, etc. puedes dejar un comentario. Los comentarios están moderados para evitar el SPAM en la medida de lo posible, pero se revisan prácticamente a diario.
¡Apoya este sitio!
¿Te ha resultado útil esta guía de instalación y configuración de este servicio de bases de datos para tu sistema? Si es así y quieres agradecérnoslo, puedes hacerlo aportando una mínima contribución al mantenimiento de este sitio, por ejemplo, dejando 1 $ de propina en PayPal:
O, si te sientes especialmente agradecido, puedes invitarnos a un café:
¡Gracias!