Cómo instalar MongoDB en Ubuntu 20.04 LTS

En esta entrada veremos cómo instalar MongoDB en Ubuntu Server 20.04 LTS Focal Fossa paso a paso, (es válido también para Ubuntu Desktop) de modo que puedas trabajar con este motor de bases de datos NoSQL desde tu servidor o VPS Ubuntu.

Antes de instalar MongoDB en Ubuntu 20.04 LTS

Si quieres seguir los pasos de esta guía de instalación de MongoDB en Ubuntu 20.04 LTS tan sólo tendrás que asegurarte de cumplir estos mínimos:

  • Una máquina Ubuntu 20.04 LTS Focal Fossa actualizada.
  • Un usuario con privilegios de sudo.
  • Acceso a Internet.

En el momento de redactar este artículo la versión de MongoDB disponible en los repositorios de Ubuntu 20.04 es la 3.6.3, mientras que el repositorio oficial de MongoDB ofrece en estos momentos la versión 5.0. Puedes optar por una u otra.

Cómo configurar el repositorio de MongoDB en Ubuntu 20.04 LTS

Si prefieres instalar MongoDB 5.0 habrá que configurar el repositorio oficial de MongoDB para Ubuntu 20.04 LTS. Empezaremos instalando la clave pública para verificar las firmas de los paquetes del nuevo repositorio:

~$ wget https://www.mongodb.org/static/pgp/server-5.0.asc -O- | sudo apt-key add -

Creamos el archivo de repositorio:

~$ sudo nano /etc/apt/sources.list.d/mongodb-org.list

Con la siguiente línea como contenido:

deb http://repo.mongodb.org/apt/ubuntu focal/mongodb-org/5.0 multiverse

Guardamos el archivo y actualizamos las listas de paquetes:

~$ sudo apt update

Cómo instalar MongoDB en Ubuntu 20.04 LTS

Vamos a instalar MongoDB en Ubuntu 20.04 LTS desde el repositorio oficial, para lo que instalamos el paquete mongodb-org-server:

~$ sudo apt install mongodb-org-server

Tras la descarga e instalación de este paquete se crea un nuevo servicio en el sistema, el servicio mongod.service o simplemente mongod. MongoDB no queda en ejecución ni está habilitado para iniciar automáticamente, por lo que debemos hacer estas tareas manualmente.

Iniciamos el servicio por primera vez con el comando systemctl:

~$ sudo systemctl start mongod

El servicio quedará en ejecución, listo para aceptar conexiones, como podremos comprobar con el comando systemctl status mongod:

como instalar mongodb en ubuntu 20.04 lts focal fossa

Para que MongoDB inicie automáticamente con cada arranque de Ubuntu 20.04, habilitaremos el servicio mongod:

~$ sudo systemctl enable mongod

Cómo instalar el cliente de MongoDB para Ubuntu 20.04 LTS

Hasta ahora sólo hemos instalado el servicio, pero seguramente querrás también instalar el cliente de MongoDB para Ubuntu 20.04 LTS, de modo que puedas conectar con el servicio desde consola.

Aunque no se recomienda, todavía puedes instalar el viejo cliente de consola mongo con el paquete mongodb-org-shell:

~$ sudo apt install -y mongodb-org-shell

Pero este cliente dejará usarse en próximos lanzamientos, por lo que se recomienda usar en su lugar el cliente mongosh que podemos instalar (y usar) igual de fácil:

~$ sudo apt install -y mongodb-mongosh

Una vez descargado es instalado el paquete, dispondremos del cliente de consola mongosh.

Cómo conectar al servicio MongoDB en Ubuntu 20.04 LTS

Una vez instalado el servicio y el cliente, conectar a MongoDB en Ubuntu 20.04 LTS es tan sencillo como lanzar en consola el comando mongosh:

~$ mongosh
Current Mongosh Log ID: 625ed0f59033df8ea3a17781
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>

instalar mongodb en ubuntu 20.04 lts focal fossa

Obtenemos bastante información y avisos en pantalla.

Parte de estos avisos nos informan sobre la existencia de un servicio anónimo de telemetría que podremos desactivar mediante el comando disableTelemetry():

> disableTelemetry()

Ahora podemos salir del cliente:

> exit

Y al volver a conectar obtendremos menos avisos:

como instalar y configurar mongodb en ubuntu 20.04 lts focal fossa

Cómo configurar MongoDB en Ubuntu 20.04 LTS

Vamos a configurar MongoDB en Ubuntu 20.04 LTS teniendo en cuenta que su archivo de configuración principal está ubicado en la ruta /etc/mongod.conf. Cualquier ajuste en la configuración de MongoDB requerirá reiniciar el servicio mongod:

~$ sudo systemctl restart mongod

Cómo habilitar el uso de contraseñas en MongoDB

Uno de los avisos al conectar al servicio MongoDB nos informa de que no está activado el control de acceso, por lo que no existen restricciones para las operaciones de acceso, lectura y escritura de datos.

Para cambiar esto editaremos mongod.conf:

~$ sudo nano /etc/mongod.conf

Y buscaremos la directiva security:

...
#security:
...

Podemos apreciar que está desactivada, así que la activaremos y especificaremos el tipo de seguridad:

...
security:
  authorization: enabled
...

Para realizar el sangrado o indentación, no uses tabulaciones, sino espacios en blanco.

No uses tabulaciones en el archivo mongod.conf, sólo está permitido el uso de espacios en blanco para indentar o sangrar el texto de la configuración.

Guardamos los cambios y reiniciamos el servicio:

~$ sudo systemctl restart mongod

Si volvemos a conectar al servicio, veremos que ya no se emiten avisos sobre control de acceso:

instalar y configurar mongodb en ubuntu 20.04 lts focal fossa

Ahora necesitamos un usuario administrador con contraseña, por lo que activaremos la base de datos admin:

> use admin

Y creamos el nuevo usuario administrador con contraseña:

> db.createUser({user: "chacho", pwd: "XXXXXXXX", roles: [{role: "root", db: "admin"}]})

Salimos del cliente mongosh:

> exit

Al existir ya un usuario administrador no podremos conectar de forma anónima y realizar acciones privilegiadas, como la que acabamos de hacer.

Volvemos a conectar, pero esta vez especificando el nuevo usuario:

~$ mongosh -u chacho
Enter password: ********
...
-----
>

Se nos solicitará la contraseña antes de establecer la conexión.

Acceso remoto a MongoDB en Ubuntu 20.04 LTS

Por defecto MongoDB sólo atiende peticiones locales, desde la propia máquina Ubuntu 20.04 en la que está instalado el servicio. Si queremos permitir conexiones remotas a MongoDB tendremos que editar mongod.conf:

~$ sudo nano /etc/mongod.conf

Y buscaremos este bloque de configuración:

...
# network interfaces
net:
  port: 27017
  bindIp: 127.0.0.1
...

Podemos cambiar el valor de la directiva bindIp o desactivarla y añadir otra con el valor adecuado:

...
# network interfaces
net:
  port: 27017
#  bindIp: 127.0.0.1
  bindIp: 0.0.0.0
...

Recuerda usar únicamente espacios en blanco (nada de tabulaciones).

Guardamos los cambios y reiniciamos el servicio:

~$ sudo systemctl restart mongod

Cómo configurar el firewall UFW de Ubuntu 20.04 para MongoDB

Si tienes activado el firewall UFW en Ubuntu 20.04 será necesario añadir una regla para permitir conexiones entrantes a MongoDB, especificando el puerto de conexión que por defecto es el 27017:

~$ sudo ufw allow 27017/tcp

Cómo acceder remotamente a MongoDB

Desde otra máquina con un cliente de MongoDB, por ejemplo otra máquina que disponga del cliente mongosh, especificaremos la dirección IP o nombre DNS del servidor Ubuntu 20.04 y el usuario de MongoDB con el que queremos conectar:

~$ mongosh --host ubuntu2004.local.lan -u chacho

Se nos solicitará la contraseña y tras autenticarnos podremos trabajar como si lo hiciéramos localmente.

mongodb en ubuntu 20.04 lts focal fossa

Conclusión

Ahora que sabes cómo instalar MongoDB en Ubuntu 20.04 LTS Focal Fossa ya puedes empezar a desarrollar tus propias bases de datos NoSQL, o preparar el soporte de otras aplicaciones que las utilizan.

Si tienes dudas, preguntas, sugerencias de mejoras o actualizaciones de este artículo, o quieres notificar algún error, puedes dejar tu comentario y lo responderemos tan pronto como sea posible.

¡Apoya comoinstalar.me!

¿Ya tienes listo este motor de bases de datos gracias a nuestra pequeña guía de instalación y configuración? En ese caso si quieres agradecérmelo puedes hacerlo dejando un 1 $ de propina en PayPal:

O si te sientes especialmente generoso, puedes invitarme a un café:

¡Gracias!

Valora esta entrada

5/5 - (4 votos)

10 comentarios en «Cómo instalar MongoDB en Ubuntu 20.04 LTS»

    • No das mucha información para ayudarte a resolver el problema. Comprueba que has tecleado correctamente las opciones de configuración y que has usado espacios en blanco en lugar de tabulaciones.

      Responder

Deja un comentario

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies.

ACEPTAR
Aviso de cookies