MongoDB es uno de los sistemas de gestión de bases de datos NoSQL de código abierto más populares. Almacena datos en un documento formateado en lugar de en un formato tabular. Dado que no tiene un esquema rígido, MongoDB ofrece una mayor escalabilidad y flexibilidad que SQL.
Este sistema de gestión de bases de datos (DBMS) es popular entre los desarrolladores debido a su rendimiento y compatibilidad con varios lenguajes de programación. Sin embargo, para instalar MongoDB, los usuarios de Ubuntu necesitan ejecutar varios comandos, lo que hace que el proceso sea desafiante.
Con esto en mente, explicaremos cómo instalar MongoDB en un servidor privado virtual (VPS) con Ubuntu. También cubriremos los pasos para crear una nueva base de datos, configurar un usuario y habilitar la autenticación remota.
¿Qué es MongoDB?
MongoDB es uno de los sistemas de gestión de bases de datos NoSQL de código abierto más populares. Se utiliza ampliamente para aplicaciones o sitios web a gran escala.
A diferencia de SQL, MongoDB almacena datos en un documento BSON con un esquema flexible, lo que resulta en una mayor escalabilidad. También es compatible con varios sistemas operativos, lenguajes de programación y marcos.
Requisitos previos para la instalación de MongoDB en Ubuntu
Antes de instalar el paquete oficial de MongoDB, verifique la compatibilidad de su hardware y software. Su plan de alojamiento VPS debe ser compatible con Ubuntu, ofrecer una conexión SSH y proporcionar acceso completo de root.
El alojamiento VPS de HolyHosting ofrece varias distribuciones de Linux, incluyendo Ubuntu. Puede instalarlo fácilmente yendo al Panel VPS → Sistema operativo y Panel.
Recomendamos utilizar el sistema operativo más reciente para garantizar la compatibilidad y la seguridad. Sin embargo, los pasos para instalar MongoDB en Ubuntu 20.04 u otras versiones son similares.
Nuestros planes de alojamiento VPS también le permiten conectarse de forma remota a través de SSH. Además de utilizar una aplicación como PuTTY y Terminal, puede ejecutar comandos de Linux directamente desde su navegador web utilizando nuestra Terminal en el navegador.
El VPS de HolyHosting también proporciona acceso completo de root, lo que permite a los usuarios ejecutar comandos de instalación de MongoDB sin problemas de permisos.
Cómo instalar MongoDB en Ubuntu
En esta sección, explicaremos cómo instalar MongoDB en Ubuntu 20.04 u otras versiones.
Antes de continuar, asegúrese de haberse conectado a su VPS a través de SSH utilizando una cuenta de root o superusuario.
1. Instalar MongoDB
Antes de instalar el paquete de MongoDB, descargue GnuPG y la utilidad cURL ejecutando el siguiente comando en su interfaz de línea de comandos:
```bash
sudo apt-get install -y gnupg curl
```
Use cURL y GnuPG para importar la clave pública GPG de MongoDB y obtener el paquete de instalación:
```bash
curl -fsSL https://pgp.mongodb.com/server-7.0.asc | \
sudo gpg -o /usr/share/keyrings/mongodb-server-7.0.gpg \
--dearmor
```
Ten en cuenta que la URL varía según los paquetes de MongoDB. En este tutorial, instalaremos MongoDB Community Edition 7.0, la última versión estable al momento de escribir esto.
Después de importar los paquetes oficiales de MongoDB, crea un archivo de lista para la instalación. El comando difiere según la versión de Ubuntu. Para Ubuntu 22.04 o posterior, ejecuta:
```bash
echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-7.0.gpg ] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/7.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-7.0.list
```
Mientras tanto, ejecuta lo siguiente para configurar el archivo de lista en Ubuntu 20.04:
```bash
echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-7.0.gpg ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/7.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-7.0.list
```
Actualiza el repositorio APT para sincronizar la base de datos de paquetes local:
```bash
sudo apt-get update
```
Ejecuta el siguiente comando para instalar la versión estable más reciente de MongoDB usando el sistema de gestión de paquetes APT:
```bash
sudo apt-get install -y mongodb-org
```
Opcionalmente, elige una versión específica del paquete oficial de mongodb-org. Por ejemplo, ejecuta el siguiente comando para instalar MongoDB versión 7.0.2:
```bash
sudo apt-get install -y mongodb-org=7.0.2 mongodb-org-database=7.0.2 mongodb-org-server=7.0.2 mongodb-mongosh=7.0.2 mongodb-org-mongos=7.0.2 mongodb-org-tools=7.0.2
```
Si especificas solo la versión de MongoDB y no los demás componentes, APT instalará el paquete más nuevo.
Dado que APT actualiza automáticamente el paquete del componente, fija la instalación para mantener la versión actual. Aquí tienes ejemplos de comandos:
```bash
echo "mongodb-org hold" | sudo dpkg --set-selections
echo "mongodb-org-server hold" | sudo dpkg --set-selections
echo "mongodb-mongosh hold" | sudo dpkg --set-selections
```
Consejo profesional: Si no importas la clave GPG pública a tu base de datos de paquetes local, APT instalará el paquete no oficial de MongoDB. Esto podría llevar a problemas de compatibilidad, seguridad y legales, así como a la falta de soporte.
2. Iniciar el servicio MongoDB
Después de la instalación, ejecuta MongoDB Community Edition ingresando el siguiente comando:
```bash
sudo systemctl start mongod
```
El comando systemctl es esencial para la gestión del servicio MongoDB. Por ejemplo, si encuentras un error, ejecuta lo siguiente para reiniciar los servicios en ejecución e intenta iniciar el DBMS nuevamente:
```bash
sudo systemctl daemon-reload
```
Para verificar si el servidor de la base de datos MongoDB se cargó correctamente, verifica su estado con este comando:
```bash
sudo systemctl status mongod
```
Deber
ías ver "active (running)" si el servicio MongoDB está funcionando, similar a la siguiente salida.
![Estado del servicio Mongod en Terminal](imagen)
Por defecto, el servicio no se inicia al arrancar. Para cargarlo automáticamente en el inicio, habilita MongoDB con el siguiente comando:
```bash
sudo systemctl enable mongod
```
Verifica el estado del servicio con systemctl. Si muestra "Enabled" en lugar de "Loaded", MongoDB está listo para usar.
El proceso daemon principal de MongoDB se llama mongod. Maneja las solicitudes de datos, gestiona el acceso y ejecuta operaciones de gestión en segundo plano.
3. Configurar MongoDB
Cambia la configuración de la base de datos MongoDB modificando el archivo de configuración principal. Se crea automáticamente durante el proceso de instalación y es accesible a través de /etc/mongod.conf.
Usa un editor de texto como nano para abrir y modificar el archivo. Aquí está el comando:
```bash
sudo nano /etc/mongod.conf
```
Hay varias opciones de configuración que determinan el comportamiento del servidor de MongoDB. Por ejemplo, systemLog define la configuración de registro de su base de datos, mientras que net le permite modificar configuraciones relacionadas con la red.
¡Advertencia! Ten cuidado al editar el archivo de configuración de mongod, ya que podrías romper el servicio o exponer tu servidor a riesgos de seguridad.
Todas las opciones tienen varios parámetros. Por ejemplo, la opción systemLog tiene el parámetro path que determina la ubicación de almacenamiento de registro predeterminada, es decir, /var/log/mongodb/mongod.log.
![Contenido del archivo mongod.conf en nano](imagen)
En lugar de eliminar los parámetros y opciones, agrega un símbolo de almohadilla (#) para desactivarlos. Es una buena práctica, ya que puedes volver a activarlos fácilmente eliminando el carácter.
Después de editar el archivo de configuración, reinicia MongoDB usando este comando para aplicar los cambios:
```bash
sudo systemctl restart mongod
```
4. Crear una nueva base de datos
El proceso de instalación de MongoDB crea automáticamente la base de datos admin. Dado que generalmente se utiliza para fines administrativos como almacenar datos de autenticación, recomendamos crear una nueva.
Para hacerlo, ingresa al shell de Mongo ejecutando el siguiente comando:
```bash
mongosh
```
![Mensaje de bienvenida del shell mongosh](imagen)
MongoDB tiene el mismo comando para crear y acceder a las bases de datos. Si existe una con el nombre especificado, el shell cambiará a ella.
Por ejemplo, lo siguiente te llevará a la base de datos predeterminada ya que el nombre existe:
```bash
use admin
```
Mientras tanto, ejecuta este comando en el shell de MongoDB para crear la base de datos customers:
```bash
use customers
```
Para verificar todas las bases de datos de MongoDB en tu sistema, ejecuta lo siguiente:
```bash
show dbs
```
La terminal lista todas las bases de datos de MongoDB.
5. Crear un nuevo usuario
Dado que MongoDB no tiene una cuenta predeterminada, debes crear un nuevo usuario para cada base de datos y establecer sus privilegios. Puedes hacerlo utilizando la función db.createUser().
Por ejemplo, crearemos una nueva cuenta de usuario root de MongoDB con permisos completos. Después de cambiar al modo de base de datos admin con el comando use, ingresa:
```bash
db.createUser(
{
user: "root",
pwd: "$tr0ngPa$$w0rD",
roles: [ { role: "root", db: "admin" } ]
}
)
```
Puedes escribir la función en una o varias líneas. Recuerda prestar atención a la capitalización ya que distingue entre mayúsculas y minúsculas.
MongoDB tiene varios roles, como dbAdmin, dbOwner y readWrite. Recomendamos otorgar permisos mínimos a la cuenta de usuario para evitar modificaciones no autorizadas y el acceso a datos.
¡Importante! La gestión de usuarios de MongoDB se basa en bases de datos, lo que significa que debes ejecutar el comando use antes de ingresar una función.
Para mostrar todos los usuarios dentro de tu base de datos actual, usa este comando:
```bash
show users
```
La terminal muestra los usuarios en la base de datos actual de MongoDB.
Para probar la conexión a la base de datos, sal del console de MongoDB ingresando el comando exit en la Terminal y ejecuta lo siguiente:
```bash
mongosh --port [puerto] -u [nombre_de_usuario] -p '[contraseña]' '[base_de_datos]'
```
Por ejemplo, nos conectaremos al usuario root usando el puerto predeterminado de 27017:
```bash
mongosh --port 27017 -u root -p '$tr0ngPa$$w0rD' 'admin'
```
6. Habilitar la autenticación remota
Por defecto, MongoDB autoriza todos los inicios de sesión desde la máquina host. Si bien esto es suficiente para implementaciones locales, puedes encontrar problemas al ejecutar una aplicación desde otro dispositivo.
Para acceder a MongoDB desde otro sistema, modifica el parámetro bindIP del archivo mongod.conf. Su valor predeterminado es la dirección IP local, lo que niega el acceso desde otras máquinas que no sean el servidor host.
¡Advertencia! Ten cuidado al cambiar las direcciones IP en el archivo de configuración de MongoDB, ya que puedes hacer que tu base de datos sea pública, exponiendo tu servicio a riesgos de seguridad graves.
Usa nano para abrir el archivo mongod.conf y agrega la dirección IP pública de tu VPS al parámetro bindIP, así:
```bash
bindIP: 127.0.0.1,123.123.12.1
```
No recomendamos cambiar el valor a 0.0.0.0, ya que permitir todas las direcciones IP de los sistemas conectados expondrá tu servidor a ataques cibernéticos.
Para asegurarte de que solo los usuarios permitidos puedan acceder a tu base de datos, habilita la autenticación agregando la siguiente línea bajo la sección de seguridad:
```bash
authorization: enabled
```
Asegúrate de haber eliminado el símbolo de almohadilla al principio de la opción de seguridad. Presiona Ctrl + X, Y e Intro para guardar los cambios. Reinicia MongoDB con el siguiente comando:
```bash
sudo systemctl restart mongod
```
Después de instalar la utilidad Mongo en tu sistema local, deberías poder conectar con el servidor de bases de datosejecutando esta sintaxis de comando:
```bash
mongo "mongodb://usuario:contraseña@ip:puerto/?authSource=nombre_de_base_de_datos"
```
Por ejemplo, nos conectaremos a MongoDB usando el usuario root, con la base de datos admin como autenticador. Aquí está el comando:
```bash
mongo "mongodb://root:$tr0ngPa$$w0rD@123.123.1.1:27017/?authSource=admin"
```
Para mejorar la seguridad del acceso remoto, limita el puerto de escucha de MongoDB solo a la dirección IP de tu sistema local. En Ubuntu, puedes hacerlo utilizando el comando Uncomplicated Firewall (UFW):
```bash
sudo ufw allow from tu_direccion_ip_local to any port 27017
```
Significa que el firewall solo aceptará conexiones desde la dirección IP especificada y bloqueará las demás.
Más sobre VPS y Bases de Datos
- [Cómo Mostrar Usuarios en MySQL Usando Comandos de Linux](#): Enlace
- [Cómo Instalar PostgreSQL en Ubuntu](#): Enlace
- [Cómo Instalar phpMyAdmin en Ubuntu](#): Enlace
Conclusión
MongoDB es un sistema de gestión de bases de datos NoSQL gratuito y de código abierto popular para sitios web o aplicaciones a gran escala. Dado que no utiliza una estructura esquemática fija para almacenar datos, es más flexible y escalable que SQL.
En este artículo, hemos proporcionado la guía de instalación de MongoDB para Ubuntu. Aquí tienes un resumen:
1. Instalar MongoDB: Importa la clave del repositorio oficial de MongoDB utilizando GnuPG y cURL. Crea el archivo de lista e instálalo usando el gestor de paquetes APT.
2. Iniciar MongoDB: Ejecuta la instancia de MongoDB usando el comando systemctl. Habilita el demonio para asegurarte de que se inicie automáticamente durante el arranque del sistema.
3. Configurar MongoDB: Abre el archivo de configuración mongod.conf usando un editor de texto. Modifica la configuración de tu base de datos y reinicia Mongod para aplicar los cambios.
4. Crear una Nueva Base de Datos: Ingresa al shell de Mongo con el comando mongosh. Ejecuta el comando use para crear una nueva base de datos MongoDB o acceder a una existente si el nombre especificado ya existe.
5. Crear un Nuevo Usuario: Accede al shell de MongoDB e ingresa la función db.createUser() para crear un nuevo usuario en tu base de datos actual. Establece su contraseña y permisos.
6. Habilitar la Autenticación Remota: Modifica la configuración bindIP del archivo mongod.conf para permitir el acceso remoto a tu base de datos. Para mejorar la seguridad, habilita la autenticación de MongoDB y limita la dirección IP permitida usando UFW.
Cuando implementes MongoDB, utiliza un VPS con acceso completo de root y amplia compatibilidad de software como la de HolyHosting para garantizar un proceso de configuración fluido. También ofrecemos un instalador de sistemas operativos con un solo clic y la Terminal en el navegador para facilitar la tarea.