MongoDB es una base de datos de documentos gratuita y de código abierto. Pertenece a una familia de bases de datos denominada NoSQL, que es diferente de las tradicionales bases de datos SQL basadas en tablas como MySQL y PostgreSQL.

En MongoDB, los datos se almacenan en documentos flexibles similares 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.

Instalación de MongoDB

MongoDB no está disponible en los repositorios principales de CentOS 8. Habilitaremos el repositorio oficial de MongoDB e instalaremos los paquetes.

Al momento de escribir este artículo, la última versión de MongoDB disponible en los repositorios oficiales de MongoDB es la versión 4.2. Antes de comenzar con 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.

Realice los siguientes pasos como root o usuario con privilegios sudo para instalar MongoDB en un sistema CentOS 8:

  1. Habilite el repositorio de MongoDB creando un nuevo archivo de repositorio llamado mongodb-org.repodentro del /etc/yum.repos.d/directorio:

    sudo nano /etc/yum.repos.d/mongodb-org.repo
    /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 instancia de 4.2con su versión preferida.

  2. Instale el mongodb-orgmetapaquete:

    sudo dnf install mongodb-org

    Durante la instalación, se le pedirá que importe la clave GPG de MongoDB. Escribe yy presiona Enter.

    Los siguientes paquetes se instalarán en su sistema como parte del mongodb-orgpaquete:

    • mongodb-org-server- El mongoddaemon y los scripts y configuraciones de inicio correspondientes.
    • mongodb-org-mongos- El mongosdemonio.
    • mongodb-org-shell- Mongo Shell, una interfaz JavaScript interactiva para MongoDB, utilizada para realizar tareas administrativas a través de la línea de comandos.
    • mongodb-org-tools- Contiene varias herramientas MongoDB para importar y exportar datos, estadísticas y otras utilidades.
  3. Una vez completada la instalación, habilite e inicie el servicio MongoDB:

    sudo systemctl enable mongod --now
  4. 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 mostrar la versión de MongoDB:

    db.version()

    La salida se verá así:

    4.2.3

Configuración de MongoDB

El archivo de configuración de MongoDB se nombra mongod.confy se encuentra en el /etcdirectorio. El archivo está en 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 la autorización como se muestra a continuación:

/etc/mongod.conf
security:
  authorization: enabled

La authorizationopción habilita el control de acceso basado en roles (RBAC) que regula el acceso de los usuarios a los recursos y las operaciones de la base de datos. Si esta opción está deshabilitada, cada usuario tendrá acceso a cualquier base de datos y ejecutará 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 Opciones del archivo de configuración .

Creación de un usuario administrativo de MongoDB

Si habilitó la autenticación de MongoDB, deberá crear un usuario administrativo que pueda acceder y administrar la instancia de MongoDB.

Primero, acceda al shell de MongoDB con:

mongo

Escriba el siguiente comando para conectarse a la base de admindatos:

use admin
switched to db admin

Cree un nuevo usuario llamado mongoAdmincon el userAdminAnyDatabaserol:

db.createUser(  {    user: "mongoAdmin",     pwd: "changeMe",     roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]  })
Successfully added user: {
	"user" : "mongoAdmin",
	"roles" : [
		{
			"role" : "userAdminAnyDatabase",
			"db" : "admin"
		}
	]
}
Puede nombrar al usuario administrativo de MongoDB como desee.

Salga del shell mongo con:

quit()

Para probar los cambios, acceda al shell de mongo utilizando el usuario administrativo que ha creado previamente:

mongo -u mongoAdmin -p --authenticationDatabase admin
MongoDB shell version v4.2.3
Enter password:
use admin
switched to db admin

Ahora, imprima los usuarios con:

show users
{
	"_id" : "admin.mongoAdmin",
	"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.

Si encuentra un problema o tiene comentarios, deje un comentario a continuación.