Introducción
MongoDB es una base de datos de documentos gratuita y de código abierto. Pertenece a la familia de bases de datos NoSQL, que se diferencia de las bases de datos SQL tradicionales basadas en tablas como MySQL y PostgreSQL. Los datos en MongoDB se almacenan en documentos flexibles tipo JSON donde los campos pueden variar de un documento a otro. No requiere un esquema predefinido y la estructura de datos se puede cambiar con el tiempo.
Algunas características clave de MongoDB son la replicación, indexación, búsquedas definidas por el usuario, equilibrio de carga y ejecución de JavaScript.
Esta guía cubre el proceso paso a paso de instalación de MongoDB en Ubuntu.
Requisitos previos
Para seguir los pasos de instalación, asegúrese de ejecutar los comandos como root o como usuario con privilegios sudo en una instancia de Ubuntu 22.04 o 20.04.
Instalación de MongoDB en Ubuntu
Los repositorios estándar de Ubuntu suelen incluir una versión desactualizada de MongoDB. Instalaremos los paquetes oficiales de MongoDB, que siempre están actualizados. Instalar MongoDB en Ubuntu es bastante sencillo. Habilitaremos el repositorio de MongoDB, importaremos la clave GPG del repositorio e instalaremos los paquetes de MongoDB.
Al momento de escribir este artículo, la última versión de MongoDB disponible en los repositorios oficiales de MongoDB es la versión 7.0.
El primer paso es instalar las dependencias necesarias para agregar un nuevo repositorio. Lo más probable es que estos paquetes ya estén instalados en su sistema, pero es posible que falten algunos:
sudo apt update
sudo apt install gnupg wget apt-transport-https ca-certificates software-properties-common
A continuación, importe la clave GPG del repositorio de MongoDB a su sistema:
wget -qO- \
https://pgp.mongodb.com/server-7.0.asc | \
gpg --dearmor | \
sudo tee /usr/share/keyrings/mongodb-server-7.0.gpg >/dev/null
Agregue el repositorio de MongoDB creando el siguiente archivo:
echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-7.0.gpg ] \
https://repo.mongodb.org/apt/ubuntu $(lsb_release -cs)/mongodb-org/7.0 multiverse" | \
sudo tee -a /etc/apt/sources.list.d/mongodb-org-7.0.list
La parte del comando $(lsb_release -cs)
anterior imprime el nombre del código de Ubuntu. Por ejemplo, si tiene la versión 22.04 de Ubuntu, el comando imprimirá grok
.
Una vez que el repositorio esté habilitado, actualice el índice del paquete local:
sudo apt update
Ahora puedes instalar MongoDB escribiendo:
sudo apt install mongodb-org
mongodb-org
es un metapaquete que incluye los siguientes paquetes:
mongodb-org-server
: el demoniomongod
y los scripts y configuraciones de inicialización correspondientes.mongodb-org-mongos
- El demoniomongos
e.mongodb-org-shell
: mongo shell, una interfaz JavaScript interactiva para MongoDB. Se utiliza para realizar tareas administrativas a través de la línea de comando.mongodb-org-tools
: contiene varias herramientas de MongoDB para importar y exportar datos, estadísticas y otras utilidades.
De forma predeterminada, el demonio MongoDB no se inicia después de la instalación. Para iniciar el servicio y habilitarlo al inicio, ejecute:
sudo systemctl enable --now mongod
Podemos verificar si la instalación fue exitosa conectándonos al servidor de base de datos MongoDB usando la herramienta mongosh
shell e imprimiendo el estado de la conexión:
mongosh --eval 'db.runCommand({ connectionStatus: 1 })'
La salida se verá así:
Current Mongosh Log ID: 655a70dfea9d876644ee6607
Connecting to: mongodb://127.0.0.1:27017/?directConnection=true&serverSelectionTimeoutMS=2000&appName=mongosh+2.0.2
Using MongoDB: 7.0.3
Using Mongosh: 2.0.2
{
authInfo: { authenticatedUsers: [], authenticatedUserRoles: [] },
ok: 1
}
El comando devuelve información sobre el estado de la conexión, los usuarios autenticados y sus permisos. Un valor de 1
para el campo ok
indica éxito.
Configuración de MongoDB
El archivo de configuración de MongoDB se encuentra en el directorio /etc
y se denomina mongod.conf
. El archivo utiliza el formato YAML.
Los ajustes de configuración predeterminados son suficientes en la mayoría de los casos. Sin embargo, para entornos de producción, recomendamos descomentar la sección de seguridad y habilitar el control de acceso, como se muestra a continuación:
sudo nano /etc/mongod.conf
security:
authorization: enabled
La opción authorization
habilita el control de acceso basado en roles (RBAC) que regula el acceso de los usuarios a los recursos y operaciones de la base de datos. Si esta opción no está habilitada, todos los usuarios tendrán acceso a todas las bases de datos y realizarán cualquier acción.
Cada vez que realiza cambios de configuración, debe reiniciar el servicio mongod para que los cambios surtan efecto:
sudo systemctl restart mongod
Para encontrar más información sobre las opciones de configuración disponibles en la última versión de MongoDB, visite la página de documentación de Opciones del archivo de configuración.
Creando el usuario administrativo de MongoDB
Si ha habilitado la autenticación de MongoDB, deberá crear un usuario administrativo que pueda acceder y administrar su instancia de MongoDB.
Inicie sesión en el shell de mongo:
mongosh
Desde el shell de MongoDB, escriba el siguiente comando para conectarse a la base de datos admin
:
use admin
switched to db admin
Ejecute el siguiente comando para crear un usuario administrativo:
db.createUser(
{
user: "myMongoAdmin",
pwd: passwordPrompt(),
roles: [
{ role: "userAdminAnyDatabase", db: "admin" },
{ role: "readWriteAnyDatabase", db: "admin" }
]
}
)
Llamamos al uso del administrador "myMongoAdmin". Siéntete libre de llamarlo como quieras. También puede ingresar una contraseña en texto plano en lugar del método passwordPrompt()
, pero no se recomienda mostrar la contraseña en la pantalla y también se guardará en el historial del shell.
Se le pedirá que escriba su contraseña, escríbala y presione "Entrar". No olvide establecer una contraseña segura:
Enter password
********{ ok: 1 }
"ok: 1" significa que el comando se ejecutó correctamente.
Una vez hecho esto, salga del shell mongo con:
quit()
Para probar sus cambios, inicie sesión en el shell de MongoDB utilizando el usuario administrativo que creó anteriormente:
mongo -u myMongoAdmin -p --authenticationDatabase admin
Estará conectado al shell de MogoDB si ingresa la contraseña correcta.
Cambie a la base de datos "admin" y ejecute show users
para obtener información sobre todos los usuarios y sus roles:
use admin
switched to db admin
show users
En nuestro ejemplo, tenemos un solo usuario:
[
{
_id: 'admin.myMongoAdmin',
userId: new UUID("a00ab5ca-5c1f-4a3b-8f67-be8a79c7649c"),
user: 'myMongoAdmin',
db: 'admin',
roles: [
{ role: 'userAdminAnyDatabase', db: 'admin' },
{ role: 'readWriteAnyDatabase', db: 'admin' }
],
mechanisms: [ 'SCRAM-SHA-1', 'SCRAM-SHA-256' ]
}
]
Conclusión
Le hemos mostrado cómo instalar y configurar MongoDB en Ubuntu 20.04 y 22.04. Para obtener más información sobre este tema, visite el Manual de MongoDB.
Si encuentra algún problema o tiene algún comentario, deje un comentario a continuación.