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í:
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í:
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:
- curl -fsSL URL descarga la clave oficial de MongoDB
- –dearmor convierte la clave de formato de texto a binario para que Ubuntu pueda interpretarla
- -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.
- echo imprime texto
- /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
- 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
- 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:
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 problema
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:
- Comprobar el estado del servicio: sudo systemctl status mongod –no-pager
- Revisar los logs detallados (lo más importante): sudo journalctl -u mongod –no-pager -n 100
- 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.
- 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.
- 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
- 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 MongoDB
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 MongoDB
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 remoto
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.