Introducción
MongoDB es un conocido motor de base de datos NoSQL genérico y basado en documentos que almacena datos en formato JSON. Es gratuito y de código abierto y viene con una serie de características interesantes y elegantes, como almacenamiento de archivos, replicación de datos, consultas ad hoc y equilibrio de carga, por nombrar algunas. Algunas de las empresas de primera línea que han incorporado MongoDB en sus aplicaciones incluyen Adobe, Facebook, Google, eBay y Coinbase.
En este tutorial, aprenderá a instalar MongoDB en CentOS 8.
Agregar el repositorio de MongoDB
Dado que MongoDB no está presente en el repositorio predeterminado de CentOS 8, lo agregaremos manualmente. Entonces, primero, cree un archivo de repositorio como se muestra:
sudo vi /etc/yum.repos.d/mongodb.repo
Pegue la siguiente configuración y guarde el archivo.
[mongodb-org-4.2]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/development/x86_64/gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.2.asc
Instale MongoDB en CentOS 8
Habiendo habilitado el repositorio, el siguiente paso será instalar MongoDB usando el siguiente comando dnf:
sudo dnf install mongodb-org
Luego, inicie y habilite MongoDB para que se inicie automáticamente al iniciar el sistema ejecutando los siguientes comandos:
sudo systemctl start mongod
sudo systemctl enable mongod
Para verificar el estado de MongoDB, ejecute:
sudo systemctl status mongod
Alternativamente, puede usar la utilidad netstat para confirmar que el servicio Mongod realmente está escuchando:
sudo netstat -pnltu
Inicie sesión en MongoDB Shell
Ahora puede acceder al shell de MongoDB simplemente emitiendo el comando:
mongo
Cree el usuario administrador de MongoDBan
Siempre es un buen consejo crear un usuario administrador con privilegios elevados para realizar tareas elevadas. Para hacer esto, primero inicie sesión en el shell de MongoDB:
mongo
Luego, cambie al administrador de la base de datos ejecutando:
use admin
Ahora cree un nuevo usuario de MongoDB ejecutando el siguiente código:
db.createUser(
{
user: "mongod_admin",
pwd: "P@ssword@2019",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
)
Si tiene éxito, debería recibir un mensaje de salida similar al siguiente:
Successfully added user: {
"user": "mongod_admin",
"roles": [
{
"role": "userAdminAnyDatabase",
"db": "admin"
}
]
}
Para enumerar los usuarios de MongoDB creados, ejecute:
show users
Salir:
exit
Configurar la autenticación para MongoDB
Tal como está, todos los usuarios pueden iniciar sesión en el shell y ejecutar cualquier comando, lo cual no se recomienda en absoluto por razones de seguridad. Con esto en mente, necesitamos crear una autenticación para el usuario administrador que acabamos de crear para evitar que otros usuarios ejecuten comandos sin autorización.
Para habilitar la autenticación, abra y edite el siguiente archivo:
sudo vi /lib/systemd/system/mongod.service
En la [Service]
, ubique y modifique el parámetro Entorno como se muestra a continuación:
Environment="OPTIONS= --auth -f /etc/mongod.conf"
Guarde y salga del archivo de configuración.
Para que los cambios surtan efecto, vuelva a cargar el sistema y reinicie MongoDB:
systemctl daemon-reload
systemctl restart mongod
Si ahora intenta enumerar usuarios sin autenticación, debería obtener un error.
Para autenticarse, simplemente pase las credenciales como se muestra:
mongo
db.auth('mongod_admin', 'P@ssword@2019')
Ahora puede ejecutar cualquier comando. Intentemos enumerar a los usuarios una vez más:
show users
Esta vez, todo debería estar bien ya que se han proporcionado las credenciales de autenticación.
Para salir de la base de datos:
exit
Conclusión
Hemos visto cómo instalar MongoDB 4 en CentOS 8. Esperamos que ya esté familiarizado con la instalación de MongoDB4 en su sistema CentOS 8 y comience con algunos pasos necesarios.