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.
Contenido
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 4.4. Puedes optar por una u otra.
Cómo configurar el repositorio de MongoDB en Ubuntu 20.04 LTS
Si prefieres instalar MongoDB 4.4 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-4.4.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/4.4 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 MongoDB Server se crea un nuevo servicio en Ubuntu 20.04, 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 MongoDB por primera vez en Ubuntu 20.04 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
:
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. Para ello instalaremos el paquete mongodb-org-shell:
~$ sudo apt install -y mongodb-org-shell
Una vez descargado es intalado el paquete, dispondremos del cliente de consola mongo.
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 mongo:
~$ mongo MongoDB shell version v4.4.2 connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb Implicit session: session { "id" : UUID("c9b2fbf3-9c8c-4f57-a544-d9d9bf8fd59c") } MongoDB server version: 4.4.2 Welcome to the MongoDB shell. For interactive help, type "help". For more comprehensive documentation, see https://docs.mongodb.com/ Questions? Try the MongoDB Developer Community Forums https://community.mongodb.com --- 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 --- --- Enable MongoDB's free cloud-based monitoring service, which will then receive and display metrics about your deployment (disk utilization, CPU, operation statistics, etc). The monitoring data will be available on a MongoDB website with a unique URL accessible to you and anyone you share the URL with. MongoDB may use this information to make product improvements and to suggest MongoDB products and deployment options to you. To enable free monitoring, run the following command: db.enableFreeMonitoring() To permanently disable this reminder, run the following command: db.disableFreeMonitoring() --- >
Obtenemos bastante información y avisos en pantalla.
Parte de estos avisos nos informan sobre la existencia de un servicio de monitorización basado en la nube con el que podremos consultar estadísticas de uso. Si te interesa activar este servicio lanza el comando db.enableFreeMonitoring():
> db.enableFreeMonitoring()
Y si prefieres no usarlo lanza el comando db.disableFreeMonitoring():
> db.disableFreeMonitoring()
Ahora podemos salir del cliente:
> exit
Y al volver a conectar obtendremos menos avisos:
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:
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 mongo:
> 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:
~$ mongo -u chacho MongoDB shell version v4.4.2 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 Ubuntu que disponga del cliente mongo, especificaremos la dirección IP o nombre DNS del servidor Ubuntu 20.04 y el usuario de MongoDB con el que queremos conectar:
~$ mongo --host ubuntu2004.local.lan -u chacho
Se nos solicitará la contraseña y tras autenticarnos podremos trabajar como si lo hiciéramos localmente.
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 el motor de bases de datos gracias a nuestra guía de instalación y configuración de MongoDB en Ubuntu 20.04 LTS Focal Fossa? En ese caso tal vez quieras expresar tu agradecimiento colaborando con el mantenimiento de este sitio y la creación de más artículo sobre temas como Ubuntu 20.04 y MongoDB; puedes hacerlo invitándome a un café:
O dejando una propina de 1 $ en PayPal:
¡Gracias!
Compadre, besto tutorial. ¡Abarcaste todo lo que quería saber sobre MongoDB aquí!
Gracias, «Persona Anónima» xD
¡¡¡Gracias!!! Me sirvió de mucho.
¡Me alegra saberlo, Laura!
El mejor tutorial que me he encontrado en Internet. Muchas gracias por tu trabajo.
¡Gracias a ti, Jose, por tu comentario!
Me da error en el paso de security.
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.