Cómo instalar MongoDB en Debian 12

MongoDB es un sistema de base de datos NoSQL (no SQL o no relacional) de código abierto, multiplataforma y distribuido. En lugar de almacenar datos en tablas como las bases de datos SQL tradicionales, MongoDB utiliza documentos flexibles para almacenar diversas formas de datos. MongoDB utiliza el formato binario JSON, BSON, para almacenar datos.

MongoDB es una base de datos NoSQL distribuida con alta disponibilidad integrada, conmutación automática por error y redundancia de datos, y escalado horizontal mediante fragmentación en clústeres distribuidos, y admite el despliegue geográfico multirregional. MongoDB también proporciona una API de consulta que admite operaciones CRUD (lectura y escritura), canalización de agregación de datos, búsqueda de texto y consultas geoespaciales.

En este tutorial, aprenderás a instalar MongoDB en un servidor Debian 12. También aprenderás a activar la autenticación MongoDB, a utilizar el cliente MongoDB ‘mongosh’ y a utilizar consultas básicas para crear un nuevo usuario y una nueva base de datos en MongoDB.

Requisitos previos

Para empezar con este tutorial, asegúrate de que tienes lo siguiente:

  • Un servidor Debian 12
  • Un usuario no root con privilegios de administrador

Preparación del servidor Debian

Antes de instalar MongoDB en tu servidor Debian, se recomienda aplicar las siguientes configuraciones:

  • Desactiva las páginas gigantes transparentes (THP) mediante el script systemd
  • Aumenta los límites por defecto para el usuario MongoDB
  • Activa el intercambio y aumenta la memoria max_mmap mediante el archivo‘/etc/sysctl.conf

Ahora vamos a configurar el servidor Debian.

En primer lugar, ejecuta el siguiente comando‘nano’ para crear un nuevo archivo de servicio /etc/systemd/system/disable-thp.service.

sudo nano /etc/systemd/system/disable-thp.service

Pega el siguiente script de servicio para configurar‘transparent_hugepage’ a‘never’.

[Unit]
Description=Disable Transparent Huge Pages (THP)
[Service]
Type=simple
ExecStart=/bin/sh -c "echo 'never' > /sys/kernel/mm/transparent_hugepage/enabled && echo 'never' > /sys/kernel/mm/transparent_hugepage/defrag"

[Install]
WantedBy=multi-user.target

Guarda el archivo y sal.

Ahora ejecuta el siguiente comando‘systemctl’ para recargar el gestor systemd. A continuación, inicia y activa el servicio‘disable-thp‘. Con esto, la‘transparent_hugepage‘ se desactivará en cada inicio del sistema.

sudo systemctl daemon-reload
sudo systemctl enable --now disable-thp.service

A continuación, crea un nuevo archivo /etc/security/limits.d/mongodb.conf con el editor‘nano‘.

sudo nano /etc/security/limits.d/mongodb.conf

Introduce la siguiente configuración para establecer el proceso y el archivo de límites máximos en‘64000’ para el usuario‘mongod‘.

mongod soft nproc 64000
mongod hard nproc 64000
mongod soft nofile 64000
mongod hard nofile 64000

Cuando termines, guarda el archivo y sal.

Después, edita el archivo‘/etc/sysctl.conf‘ con lo siguiente.

sudo nano /etc/sysctl.conf

Inserta la configuración de abajo al final de la línea.

fs.file-max = 2097152
vm.max_map_count = 262144
vm.swappiness = 1

Guarda el archivo y sal.

Por último, ejecuta el comando‘sysctl’ que aparece a continuación para aplicar inmediatamente los cambios en el archivo‘/etc/sysctl.conf‘.

sudo sysctl -p

sistema de configuración

Instalar el servidor MongoDB en Debian

Ahora que ya has configurado tu servidor Debian, vamos a iniciar la instalación de MongoDB. En este caso, instalarás MongoDB 7.0 a través del repositorio oficial de MongoDB en tu servidor Debian.

Instala los paquetes‘gnupg‘ y‘curl‘ en tu sistema Debian con lo siguiente:

sudo apt install gnupg curl

instalar gnupe curl

Ahora añade la clave GPG de MongoDB y el repositorio para Debian con el siguiente comando. En este caso, configurarás un repositorio para MongoDB 7.0.

curl -fsSL https://www.mongodb.org/static/pgp/server-7.0.asc | \
sudo gpg -o /usr/share/keyrings/mongodb-server-7.0.gpg \
--dearmor
echo "deb [ signed-by=/usr/share/keyrings/mongodb-server-7.0.gpg ] http://repo.mongodb.org/apt/debian bookworm/mongodb-org/7.0 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-7.0.list

añadir repo

A continuación, ejecuta el comando«apt» que aparece a continuación para actualizar tu lista de paquetes e instalar el paquete «mongodb-org».

sudo apt update && sudo apt install mongodb-org -y

En la siguiente salida, puedes ver la instalación de MongoDB.

instalar mongodb

Una vez finalizada la instalación, recarga el gestor systemd con el comando «systemctl».

sudo systemctl daemon-reload

Inicia y habilita el servicio «mongod» y, a continuación, verifícalo para asegurarte de que el servicio se está ejecutando.

sudo systemctl enable --now mongod
sudo systemctl status mongod

Si MongoDB se está ejecutando, verás una salida como la siguiente:

comprobar mongodb

Asegurar el servidor MongoDB con autenticación

Con MongoDB instalado, necesitas asegurar tu instalación habilitando la autenticación de MongoDB. En esta sección, configurarás la autenticación de MongoDB y crearás un nuevo usuario administrador para MongoDB. Esto te mostrará cómo utilizar‘mongosh‘ o cliente MongoDB y las consultas básicas de MongoDB.

Accede al servidor MongoDB con el comando‘mongosh‘ que aparece a continuación. No hay contraseña para la instalación por defecto de MongoDB.

mongosh

Ejecuta el comando‘disableTelemetry()‘ para desactivar la recogida anónima de datos de MongoDB.

disableTelemetry()

desactivar telemetría

Pasa a la base de datos‘admin’ con la consulta‘use‘.

use admin

Ahora ejecuta la siguiente consulta para crear un nuevo usuario‘myAdmin’ que se utilizará como administrador de tu servidor MongoDB. Introduce tu contraseña cuando se te pida.

db.createUser(
{
user: "myAdmin",
pwd: passwordPrompt(),
roles: [
{ role: "userAdminAnyDatabase", db: "admin" },
{ role: "readWriteAnyDatabase", db: "admin" }
]
}
)

Escribe el comando‘quit()‘ para salir del servidor MongoDB.

quit()

crear usuario

A continuación, edita el archivo‘/etc/mongod.conf‘ con el editor‘nano‘.

sudo nano /etc/mongod.conf

Descomenta la opción‘security‘ y añade‘authorization: enabled‘ para activar la autenticación en MongoDB.

security:
  authorization: enabled

Guarda el archivo y sal del editor.

Ahora ejecuta el siguiente comando‘systemctl’ para reiniciar el servidor MongoDB y aplicar tus modificaciones.

sudo systemctl restart mongod

Probar la autenticación de MongoDB

Ahora que has creado un usuario administrador y activado la autenticación en tu servidor MongoDB. Vamos a verificar tu configuración iniciando sesión en el servidor MongoDB a través del usuario ‘myAdmin’.

Ejecuta el siguiente comando‘mongosh’ para iniciar sesión en el servidor MongoDB como usuario‘myAdmin‘ e introduce tu contraseña cuando se te solicite.

mongosh --port 27017 --authenticationDatabase \
"admin" -u "myAdmin" -p

inicio de sesión mongodb

Tras iniciar sesión, ejecuta la siguiente consulta para comprobar el estado de la conexión con el servidor MongoDB.

db.runCommand({connectionStatus : 1})

Puedes ver a continuación que te has conectado como usuario‘miAdmin’ al servidor MongoDB.

comprueba la conexión

Crear la primera base de datos y el primer usuario

En esta sección, crearás una nueva base de datos y un nuevo usuario que se utilizarán para tu aplicación a través del cliente MongoDB ‘mongosh’. Así que asegúrate de que estás en el entorno‘mongosh‘.

En primer lugar, ejecuta la consulta‘use‘ para crear y cambiar la base de datos de destino. En este ejemplo, crearás una nueva base de datos‘mydb‘. Tu prompt MongoDB cambiará a‘mydb‘.

use mydb

Ahora ejecuta la siguiente consulta para crear un nuevo usuario ‘myUser’ con privilegios para leer y escribir en la base de datos‘mydb‘. Introduce una nueva contraseña cuando se te pida.

use mydb
db.createUser(
{
user: "myUser",
pwd: passwordPrompt(),
roles: [ { role: "readWrite", db: "mydb" },
{ role: "read", db: "reporting" } ]
}
)

crear nueva base de datos y usuario

A continuación, ejecuta las siguientes consultas para cambiar la base de datos‘admin‘ y verifica la lista de usuarios de tu servidor MongoDB.

use admin
db.system.users.find()

Deberías ver el usuario‘miAdmin‘ y‘miUsuario‘ creados como se muestra a continuación:

Ahora escribe‘quit()‘ para salir del servidor MongoDB.

listado de usuarios

Por último, inicia sesión en el servidor MongoDB como un nuevo usuario‘myUser’ en la base de datos‘mydb’ con el siguiente comando. Introduce tu contraseña cuando se te solicite.

mongosh --port 27017 -u "myUser" \
--authenticationDatabase "mydb" -p

inicio de sesión mongodb

Ejecuta la siguiente consulta para comprobar tu conexión actual

db.runCommand({connectionStatus : 1})

En la sección‘authInfo‘, puedes ver que te has autenticado como usuario‘myUser‘ y base de datos‘mydb‘.

comprueba la conexión

Conclusión

¡Enhorabuena! Has completado la instalación de MongoDB 7.0 en un servidor Debian 12. También has aprendido a proteger el servidor MongoDB activando la autenticación y creando un nuevo usuario administrador para MongoDB. Por último, has aprendido a crear una nueva base de datos MongoDB y un nuevo usuario para tus aplicaciones.

También te podría gustar...