Introducción
MongoDB es una base de datos de documentos de código abierto y gratuita. Pertenece a una familia de bases de datos llamada NoSQL, que es diferente de las bases de datos SQL tradicionales basadas en tablas como MySQL y PostgreSQL.
En MongoDB, los datos se almacenan en documentos flexibles, similar a 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.
Este tutorial explica cómo instalar y configurar MongoDB Community Edition en un servidor CentOS 8.
Instalar MongoDB
MongoDB no está disponible en los repositorios centrales de CentOS 8. Habilitaremos el repositorio oficial de MongoDB e instalaremos los paquetes.
Al momento de escribir estas líneas, la última versión de MongoDB disponible en los repositorios oficiales de MongoDB es la versión 4.2. Antes de comenzar la instalación, visite la sección Instalar en Red Hat de la documentación de MongoDB y verifique si hay una nueva versión disponible.
Haga lo siguiente como usuario root o usuario con privilegios de sudo para instalar MongoDB en un sistema CentOS 8.
En este tutorial usamos nano, si lo prefiere puede usar vi instalado por defecto en la mayoría de las distribuciones.
sudo dnf install nano
Habilite el repositorio de MongoDB creando un nuevo archivo de repositorio llamado mongodb-org.repo
dentro del directorio /etc/yum.repos.d/
sudo nano /etc/yum.repos.d/mongodb-org.repo
[mongodb-org-4.2]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.2/x86_64/gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.2.asc
Si desea instalar una versión anterior de MongoDB, reemplace cada 4.2
con su versión preferida.
mongodb-org
:
sudo dnf install mongodb-org
Durante la instalación, se le pedirá que importe la clave GPG de MongoDB. Escriba y
y presione Enter
.
Los siguientes paquetes se instalarán en su sistema como parte del paquete mongodb-org
mongodb-org-server
: elmongod
y las configuraciones y los scripts de inicio correspondientes.mongodb-org-mongos
: el demoniomongos
mongodb-org-shell
: el shell mongo, una interfaz JavaScript interactiva para MongoDB, que se utiliza para realizar tareas administrativas a través de la línea de comandos.mongodb-org-tools
: contiene varias herramientas de MongoDB para importar y exportar datos, estadísticas y otras utilidades.
Una vez que se complete la instalación, habilite e inicie el servicio MongoDB:
sudo systemctl enable mongod --now
Para verificar la instalación, conéctese al servidor de la base de datos MongoDB e imprima la versión del servidor:
mongo
Ejecute el siguiente comando para ver la versión de MongoDB:
db.version()
La salida se verá así:
4.2.3
Salga del caparazón de mongo:
quit()
Configurar MongoDB
El archivo de configuración de MongoDB se llama mongod.conf
y se encuentra en el directorio /etc
El archivo está en formato YAML.
Los valores de configuración predeterminados son suficientes en la mayoría de los casos. Sin embargo, para entornos de producción, se recomienda descomentar la sección de seguridad y habilitar la autorización como se muestra a continuación:
sudo nano /etc/mongod.conf
security:
authorization: enabled
La opción de authorization
habilita el control de acceso basado en roles (RBAC) que gobierna el acceso de los usuarios a los recursos y operaciones de la base de datos. Si esta opción está desactivada, cualquier usuario tendrá acceso a cualquier base de datos y realizará cualquier acción.
Después de realizar cambios en el archivo de configuración de MongoDB, reinicie el servicio mongod:
sudo systemctl restart mongod
Para obtener más información sobre las opciones de configuración de MongoDB, visite la página de documentación de Opciones de archivo de configuración.
Cree el usuario administrativo de MongoDB
Si ha habilitado la autenticación de MongoDB, deberá crear un usuario administrativo que pueda acceder y administrar la instancia de MongoDB.
Primero, inicie sesión en el shell de MongoDB con:
mongo
Escriba el siguiente comando para conectarse a la base de datos de admin
use admin
switched to db admin
Cree un nuevo usuario llamado mongoAdmin
con el rol userAdminAnyDatabase
db.createUser(
Successfully added user: {
"user": "mongoAdmin",
"roles": [
{
"role": "userAdminAnyDatabase",
"db": "admin"
}
]
}
Puede nombrar al usuario administrativo de MongoDB como desee.
Salga del caparazón de mongo con:
quit()
Para probar los cambios, inicie sesión en el shell mongo con el usuario administrativo que creó anteriormente:
mongo -u mongoAdmin -p --authenticationDatabase admin
MongoDB shell version v4.2.3
Enter password:
use admin
switched to db admin
Ahora imprima usuarios con:
show users
{
"_id": "admin.mongoAdmin",
"userId": UUID("2e96b133-dc7d-40dc-b419-2b171000b572"),
"user": "mongoAdmin",
"db": "admin",
"roles": [
{
"role": "userAdminAnyDatabase",
"db": "admin"
}
],
"mechanisms": [
"SCRAM-SHA-1",
"SCRAM-SHA-256"
]
}
Conclusión
Le mostramos cómo instalar y configurar MongoDB 4.2 en su servidor CentOS 8.
Consulte el Manual de MongoDB 4.2 para obtener más información sobre este tema.