50% de descuento en todos los planes, por tiempo limitado. Desde $2.48/mo
12 min de lectura
Bases de datos y análisis

Cómo instalar MongoDB en las tres últimas versiones de Ubuntu (paso a paso)

Jim Schwarz By Jim Schwarz 12 min de lectura
Símbolo original de MongoDB sobre un servidor futurista para instalar MongoDB en Ubuntu+ eslogan sobre qué esperar del artículo + título del artículo + logotipo de Cloudzy

Así que has decidido usar MongoDB, una gran alternative to MariaDB para crear una aplicación con stack MERN, una plataforma de analítica o cualquier sistema basado en documentos, pero te has topado con los de siempre: la línea de comandos de Linux y una cadena interminable de errores en la terminal. 

No te preocupes: esta guía cubre todo lo que necesitas saber, de principio a fin, para instalar MongoDB en Ubuntu.

MongoDB utiliza X.Y.Z versionado. 8.0 es un principal serie de versiones, y 8.2 es un menor publicación dentro del ciclo 8.0. Las versiones menores añaden funcionalidades dentro del mismo ciclo principal y, a partir de 8.0, también están disponibles para instalaciones on-prem en casos de uso específicos (por ejemplo, Search y Vector Search). MongoDB 8.0 en Ubuntu es compatible con 24.04 (Noble), 22.04 (Jammy) y 20.04 (Focal) en sistemas de 64 bits, con soporte ARM64 en plataformas seleccionadas.

Requisitos previos: GnuPG y Curl

Antes de instalar el mongodb-org el paquete Ubuntu requiere dos requisitos previos: GnuPG y Curl. Estas herramientas otorgan a Ubuntu permiso para descargar MongoDB, porque el propio mongodb el paquete no es mantenido por MongoDB Inc. y entra en conflicto con el mongodb-org paquete. Si ya has instalado mongodb asegúrate de desinstalarlo.

A continuación, ejecuta el comando sudo apt-get install gnupg curl. Curl es una herramienta para descargar archivos de internet y es necesaria para obtener la clave de seguridad de MongoDB. GnuPG es lo que Ubuntu usa para verificar la autenticidad del software. Si GnuPG no está instalado, Ubuntu no puede verificar los paquetes de MongoDB.

Verifica que tu terminal haya instalado correctamente GnuPG y Curl. Si es así, debería verse así:Salida de terminal Ubuntu tras añadir GnuPG y Curl

Importar la clave GPG de MongoDB

El gestor de paquetes de Ubuntu, APT, usa claves GPG para verificar los paquetes antes de instalarlos. Sin esta clave, Ubuntu no permite añadir los repositorios de MongoDB. Escribe el siguiente comando en tu terminal para añadir la clave:

curl -fsSL https://www.mongodb.org/static/pgp/server-8.0.asc | \
   sudo gpg -o /usr/share/keyrings/mongodb-server-8.0.gpg \
   --dearmor

Si funciona correctamente, la salida del terminal debería verse así:Terminal de Ubuntu tras añadir correctamente la clave GPG de MongoDB.

En pocas palabras, este comando descarga la firma de seguridad de MongoDB, la convierte a un formato que Ubuntu puede leer y la guarda en una carpeta segura del sistema. A continuación se explica cada sección del comando:

  1. curl -fsSL URL descarga la clave oficial de MongoDB
  2. –dearmor convierte la clave de formato de texto a binario para que Ubuntu pueda interpretarla
  3. -o /usr/share/keyrings/mongodb-server-8.0.gpg guarda el archivo binario en la carpeta donde Ubuntu almacena las claves de confianza

Si escribes cada comando exactamente como se indica, la clave GPG pública se añadirá sin problemas. Aun así, algunos usuarios encuentran errores al instalar MongoDB debido a una clave GPG incorrecta. Estos errores aparecen cuando no se siguen los comandos de clave GPG indicados y se usa en su lugar

NO_PUBKEY
The following signatures couldn't be verified
public key not available

Esto ocurre cuando no se siguen los comandos de clave GPG indicados y se utiliza sudo apt-key ya que las versiones modernas de Ubuntu no lo recomiendan.

Añadir el repositorio de MongoDB

Añadir el repositorio de MongoDB crea un archivo que indica a Ubuntu dónde encontrar los paquetes de MongoDB en una dirección de internet concreta. Crea el archivo de lista en /etc/apt/sources.list.d/mongodb-org-8.0.list escribiendo la línea del repositorio con echo … | sudo tee …

Aquí es donde la cosa se complica, ya que distintas versiones de Ubuntu requieren una variante diferente de este comando. A continuación veremos cómo importar el archivo de lista en cada una de las tres versiones de Ubuntu mencionadas anteriormente.

Ubuntu 24.04 (Noble)

Para crear el archivo de lista en Ubuntu 24.04, escribe echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-8.0.gpg ] https://repo.mongodb.org/apt/ubuntu noble/mongodb-org/8.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-8.0.list en tu terminal.

Puede parecer confuso, pero no te preocupes. Una vez que desglosemos el comando por secciones, quedará completamente claro.

  1. echo imprime texto
  2. /etc/apt/sources.list.d es la carpeta donde Ubuntu almacena las definiciones de fuentes de software. Cada archivo con formato .list dentro de la carpeta indica a Ubuntu desde qué ubicación descargar el software
  3. Por defecto, un usuario normal no puede escribir en carpetas del sistema. camiseta otorga al usuario permisos especiales para escribir texto en archivos del sistema, mientras se usa sudo
  4. noble es el nombre en clave de Ubuntu 24.04. Cada versión de Ubuntu tiene un nombre en clave, como:
Versión Nombre en clave
20.04 Focal
22.04 Jammy
24.04 Noble

Si no usas el nombre en clave correspondiente a tu versión de Ubuntu en el comando, Ubuntu no reconocerá el repositorio de MongoDB.

Ubuntu 22.04 (Jammy)

Añadir el archivo de lista en Ubuntu Jammy es igual, pero debes introducir el comando reemplazando noble con jammy, así:

echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-8.0.gpg ] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/8.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-8.0.list

Asegúrate de usar el que corresponde a tu versión de Ubuntu; de lo contrario, volverá a fallar.

Ubuntu 20.04 (Focal)

Sigue los mismos pasos, pero en lugar de noble or jammy, escribe focal:

echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-8.0.gpg ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/8.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-8.0.list

Con el repositorio configurado, ya puedes proceder a la instalación mongodb-org.

Actualizar la base de datos de paquetes

Ahora que Ubuntu reconoce el repositorio, debes recargar su base de datos de paquetes para que incluya también MongoDB. Ejecuta el siguiente comando:

sudo apt-get update

Este comando es igual en todas las versiones de Ubuntu. Si lo omites, Ubuntu no incluirá MongoDB. Si el comando se ejecuta correctamente, la salida del terminal debería ser:Salida del terminal de Ubuntu tras ejecutar sudo apt-get update

 Tras recargar la base de datos de paquetes, es momento de descargar los paquetes de MongoDB.

Instalar MongoDB Community Server

Existen varias versiones de MongoDB disponibles, pero la mayoría de los usuarios opta por la última versión estable, ya que es la más recomendable. Para instalarla, ejecuta: sudo apt-get install -y mongodb-org

Ubuntu ha descargado los paquetes de MongoDB, los ha instalado, ha creado una cuenta de usuario y un directorio de datos para MongoDB, y lo ha registrado como servicio del sistema. Con esto, ya tienes MongoDB instalado en Ubuntu. Ahora vamos a iniciarlo.

Cómo iniciar MongoDB

Para ejecutar MongoDB, debes indicarle al gestor de servicios de Ubuntu, "systemd", que reconozca MongoDB como servicio en segundo plano. Para ello, escribe el siguiente comando en el terminal:

sudo systemctl start mongod

Si el comando se ejecuta correctamente, Ubuntu abrirá MongoDB como proceso en segundo plano. Si falla, es posible que recibas un error similar a: No se pudo iniciar mongod.service.

Esto puede deberse a varios problemas habituales:

  • Error en el archivo de configuración in /etc/mongod.conf (los errores de sangría en YAML son frecuentes)
  • Conflicto de puerto (el puerto 27017 ya está en uso)
  • Problema de permisos en los directorios de datos o logs (var/lib/mongodb o var/log/mongodb)
  • Disco lleno or estado del sistema de archivos corrupto

Tres comandos para diagnosticar el problemaConfiguración de servidor futurista + tres comandos de terminal de Ubuntu + nube con ruta de actualización.

Es fácil especular sobre qué puede estar fallando en tu configuración cuando MongoDB no arranca, pero identificar la causa exacta es otra historia. Tres formas sencillas de diagnosticar el origen del error son:

  1. Comprobar el estado del servicio: sudo systemctl status mongod –no-pager
  2. Revisar los logs detallados (lo más importante): sudo journalctl -u mongod –no-pager -n 100
  3. Consultar el archivo de log propio de MongoDB

Ten en cuenta que si el disco está lleno o los archivos del sistema están corruptos, el problema es de hardware, no de software. En ese caso, puede que tengas que actualizar el equipo de tu servidor para ejecutar MongoDB de forma eficiente si tu configuración actual se ha quedado obsoleta. 

Si comprar un servidor completo no entra en tu presupuesto, echa un vistazo a Ubuntu VPS para disfrutar de una experiencia limpia en tu propio servidor privado con la distribución Ubuntu que prefieras. Incluye 24/7 soporte y hasta 40Gbps de velocidad de red, gracias a su almacenamiento NVMe SSD y DDR5 RAM almacenamiento.

Además, cuenta con latencia mínima, 99.95% de uptime y una garantía de devolución de 14 días días. Y todo esto disponible en 12 ubicaciones repartidas por todo el mundo a un precio asequible.

Las tres soluciones más habituales para que MongoDB funcione

No existe una forma única de identificar el problema exacto de tu sistema con MongoDB y resolverlo en un solo paso. A continuación encontrarás algunas soluciones habituales que pueden ayudarte a poner en marcha MongoDB.

  1. Error de indentación en el archivo de configuración de YAML. Si has editado /etc/mongod.conf revisa la indentación ejecutando sudo nano /etc/mongod.conf. El archivo YAML es muy sensible a los espacios en blanco, así que asegúrate de usar exactamente dos espacios por nivel en /etc/mongod.conf.
  2. Puerto 27017 ocupado. Si otro proceso está usando el puerto 27017, detenlo o cambia el puerto de MongoDB en mongod.conf. Si no sabes qué está corriendo en el puerto 27017, puedes ejecutar sudo ss -lntp | grep 27017 para comprobarlo
  3. Problema de permisos en el directorio de datos. A veces MongoDB no tiene los permisos necesarios para ejecutarse en tu sistema y, como resultado, no arranca. Primero ejecuta sudo chown -R mongodb:mongodb /var/lib/mongodb /var/log/mongodb, luego reinicia MongoDB con sudo systemctl restart mongod

Según Sitio web oficial de MongoDB, otra forma de resolver este problema es recargar el daemon con sudo systemctl daemon-reload, y ejecutar el primer comando, sudo systemctl start mongod, de nuevo.

Si no existe mongod.service, la instalación no incluyó la unidad de systemd, así que reinstala el conjunto de paquetes mongodb-org Paquete establecido.

Con todo esto, puedes verificar si MongoDB se ha iniciado correctamente con sudo systemctl status mongod. Si el terminal muestra activo (en ejecución), ya está listo. Aun así, hay algunas configuraciones adicionales que harán tu experiencia mucho más fluida.

Automatiza MongoDBServidor futurista con símbolo de automatización de MongoDB + terminal con comando de MongoDB + archivo de log

MongoDB no se inicia automáticamente cada vez que enciendes tu servidor; tendrás que repetir algunos de los pasos mencionados en cada arranque. Como alternativa, puedes configurar Ubuntu para que inicie MongoDB al arrancar el escritorio.

Simplemente ejecuta sudo systemctl enable mongod en tu terminal. A partir de ese momento, el sistema iniciará MongoDB tras cada reinicio. Además, puedes reiniciar el proceso mongod con el comando sudo systemctl restart mongod. También puede ser útil revisar los errores o mensajes importantes consultando la salida en el archivo:

/var/log/mongodb/mongod.log

Con todo esto configurado, empecemos a usar tu mongod.

Abrir la shell de MongoDB

Para interactuar con la base de datos, los usuarios deben abrir una shell de MongoDB con el comando mongosh. Puedes verla como un terminal de comandos dedicado a MongoDB o como una consola de MySQL. También puedes interactuar con MongoDB mediante herramientas gráficas, como los drivers de MongoDB. Pero si prefieres hacerlo desde el terminal, mongosh es la herramienta pensada para eso.

Tu MongoDB estará completamente operativo, aunque hay algunos pasos adicionales que debes seguir para asegurarlo.

Configurar la autenticación en MongoDBProceso de autenticación de MongoDB + símbolo de candado + confirmación de autenticación.

MongoDB no tiene protección por contraseña de forma predeterminada, ya que se asume que quien crea un usuario ya tiene acceso al sistema. Aquí tienes una forma sencilla de configurarla:

Crear un usuario administrador

Primero, cambia a la base de datos de administración con:

use admin

Luego crea un usuario con db.createUser({…}). Rellénalo con tu

  • Nombre de usuario
  • Contraseña
  • Rol

Para el rol, preferiblemente escribe root que significa control total o administrador.

Activar la autenticación

Ahora que tenemos nuestro propio usuario configurado, necesitamos editar el /etc/mongod.conf archivo. Este archivo controla el comportamiento de MongoDB. Ten en cuenta que, tras editar el archivo, siempre debes reiniciar el mongod servicio con sudo systemctl restart mongod. El parámetro que necesitamos modificar se llama authorization y tiene este aspecto:

security:

  authorization:

Para completar el proceso de autenticación, simplemente cambia el valor de authorization así:

security:

  authorization: enabled

A partir de ahora, MongoDB requiere inicio de sesión, por lo que la autenticación está lista. Pasemos a otra configuración que aprovecha MongoDB al máximo.

Abre el cortafuegos

Como se mencionó antes, MongoDB usa el puerto 27017. Como los cortafuegos bloquean los puertos por defecto, debes indicarle al tuyo que permita el tráfico en el puerto 27017. Para hacerlo, ejecuta el siguiente comando:

ufw allow from YOUR_IP to any port 27017

También puedes ejecutar el comando ufw allow 27017, pero ten cuidado: esto abre ese puerto a todo Internet. La primera opción es la más segura, ya que solo permite el acceso al puerto desde tu propia dirección IP.

Es posible que algunos usuarios encuentren problemas al usar MongoDB, como el acceso remoto. Sigue leyendo para ver cómo resolverlo.

Problema de acceso remotoServidor con 3 monitores configurando el acceso remoto de MongoDB y comandos de terminal.

MongoDB se inicia con bindIp. bindIp limita MongoDB a 127.0.0.1, lo que solo permite conexiones locales. Por tanto, si intentas conectarte a tu servidor MongoDB desde otro lugar, el acceso será denegado, ya que MongoDB está configurado por defecto para aceptar únicamente conexiones locales, a menos que se configure de otra forma.

De nuevo, ve a /etc/mongod.conf, y verás tres líneas como estas:

net:

  port: 27017

  bindIp: 127.0.0.1

Si quieres permitir conexiones remotas a tu mongod usuario, cambia los valores mostrados arriba de la siguiente manera:

net:

  port: 27017

  bindIp: 0.0.0.0

Después, reinicia tu mongod servicio con sudo systemctl restart mongod como con cualquier otra modificación que hagas en el archivo.

Ahora has dado permiso a tu mongod servicio para aceptar conexiones remotas. Ten cuidado: al hacer esto, expones tu base de datos a toda internet si todavía no has autenticado a tu mongod usuario. Hay muchos bots que escanean constantemente en busca de puertos MongoDB abiertos, así que asegúrate siempre de que tu usuario mongod tenga contraseña.

Resumen general

Listo, ya has completado todos los pasos para configurar un servicio MongoDB optimizado en tu sistema Ubuntu. Aquí tienes también un mapa visual para repasar cada paso del artículo.

Comando Qué hace
actualizar apt Actualiza la lista de paquetes
apt instalar Instala software
curl Descarga un archivo
gpg Gestiona claves de cifrado
echo Imprime texto
camiseta Escribe en un archivo protegido
systemctl start Inicia el servicio
systemctl enable Inicia al arrancar
estado de systemctl Comprueba el estado del servicio
mongosh Acceder al shell de MongoDB
Editar /etc/mongod.conf Activar autenticación
ufw Gestionar el firewall
bindIp Permitir acceso remoto

Con esto deberías tener una visión clara de todo el proceso. Pero si configurar MongoDB por tu cuenta te resulta demasiado complejo, considera iniciar el MongoDB VPS para tu propio servidor privado de Ubuntu 24.04 LTS con MongoDB preinstalado.

Viene con 99.95% uptime, 24/7 soporte y un 14 días garantía de devolución. Además, soporta hasta 40 Gbps de ancho de banda gracias a su DDR5 RAM y almacenamiento NVMe SSD almacenamiento. Y sin importar dónde te encuentres, también está disponible en 12 ubicaciones en todo el mundo a un precio accesible.

Dicho todo esto, ya has conseguido poner en marcha tu propio servicio MongoDB completamente configurado para soportar cargas de trabajo y proyectos a nivel de producción.

Compartir

Más del blog

Sigue leyendo.

Gestión inteligente de datos para tu empresa: estrategias de almacenamiento y copias de seguridad similares a la nube con VPS
Bases de datos y análisis

Gestión inteligente de datos para tu empresa: estrategias de almacenamiento y copias de seguridad similares a la nube con VPS

Usar VPS para gestionar los datos de negocio de forma segura es la estrategia que recomiendo siempre que una empresa decide que ya es hora de dejar de repartir archivos entre portátiles, adjuntos de correo y carpetas a medio olvidar

Rexa CyrusRexa Cyrus 7 min de lectura
Vista materializada vs. vista
Bases de datos y análisis

Vista materializada vs. vista: su papel en las bases de datos

En los sistemas de bases de datos, una vista materializada es un objeto que almacena los resultados precalculados de una consulta como una tabla física. Dado que los datos se guardan realmente en disco, las consultas complic

Ivy JohnsonIvy Johnson 7 min de lectura
Snowflake vs Databricks
Bases de datos y análisis

Databricks vs Snowflake: Comparativa imparcial para profesionales de datos 🧱❄️

Para las empresas que dependen de los datos para tomar decisiones, ya sea plataformas de comercio electrónico que rastrean el comportamiento de los clientes, instituciones financieras que predicen tendencias, o empresas tecnológicas

Allan Van KirkAllan Van Kirk 13 min de lectura

¿Listo para desplegar? Desde 2,48 $/mes.

Cloud independiente, desde 2008. AMD EPYC, NVMe, 40 Gbps. 14 días de garantía de devolución.