Cómo instalar y proteger la base de datos NoSQL MongoDB en Ubuntu 22.04

MongoDB es un sistema de bases de datos NoSQL gratuito, de código abierto y uno de los más populares. Almacena los datos en JSON en lugar del método habitual de estilo tabla que se encuentra en las bases de datos SQL. Se puede integrar fácilmente con otros programas, por lo que se utiliza mucho en aplicaciones web. No requiere un esquema predefinido, y la estructura de datos puede modificarse con el tiempo. Está escrito en C++ y proporciona escalabilidad, alto rendimiento y alta disponibilidad.

En este tutorial, te mostraremos cómo instalar MongoDB en Ubuntu 22.04.

Requisitos previos

  • Un servidor que ejecute Ubuntu 22.04.
  • Una contraseña de root configurada en el servidor.

Añadir el repositorio de MongoDB

Por defecto, el paquete MongoDB no está incluido en el repositorio por defecto de Ubuntu 22.04, por lo que tendrás que añadir el repositorio oficial de MongoDB al APT.

En primer lugar, instala todas las dependencias necesarias utilizando el siguiente comando:

apt install wget gnupg2 curl -y

A continuación, descarga y añade la clave GPG de MongoDB utilizando el siguiente comando:

curl -fsSL https://www.mongodb.org/static/pgp/server-4.4.asc | apt-key add -

A continuación, añade el repositorio de MongoDB a APT utilizando el siguiente comando:

echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse" | tee /etc/apt/sources.list.d/mongodb-org-4.4.list

Una vez añadido el repositorio MongoDB, actualiza la caché del repositorio utilizando el siguiente comando:

apt update -y

Instalar MongoDB en Ubuntu 22.04

Ahora puedes instalar el paquete MongoDB utilizando el siguiente comando:

apt install mongodb-org -y

A continuación, inicia el servicio MongoDB y habilítalo para que se inicie al reiniciar el sistema utilizando el siguiente comando:

systemctl start mongod

Puedes comprobar el estado de MongoDB utilizando el siguiente comando:

systemctl status mongod

Deberías ver la siguiente salida:

? mongod.service - MongoDB Database Server
     Loaded: loaded (/lib/systemd/system/mongod.service; disabled; vendor preset: enabled)
     Active: active (running) since Sat 2022-05-28 15:04:49 UTC; 7s ago
       Docs: https://docs.mongodb.org/manual
   Main PID: 27422 (mongod)
     Memory: 63.3M
        CPU: 967ms
     CGroup: /system.slice/mongod.service
             ??27422 /usr/bin/mongod --config /etc/mongod.conf

May 28 15:04:49 ubuntu2204 systemd[1]: Started MongoDB Database Server.

Para comprobar la versión de MongoDB, utiliza el siguiente comando:

mongo --version

Deberías ver la versión de MongoDB en la siguiente salida:

MongoDB shell version v4.4.14
Build Info: {
    "version": "4.4.14",
    "gitVersion": "0b0843af97c3ec9d2c0995152d96d2aad725aab7",
    "openSSLVersion": "OpenSSL 1.1.1l  24 Aug 2021",
    "modules": [],
    "allocator": "tcmalloc",
    "environment": {
        "distmod": "ubuntu2004",
        "distarch": "x86_64",
        "target_arch": "x86_64"
    }
}

También puedes comprobar la información de conexión a MongoDB con el siguiente comando:

mongo --eval 'db.runCommand({ connectionStatus: 1 })'

Deberías obtener la siguiente salida:

MongoDB shell version v4.4.14
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("44560246-9673-418a-95c9-112bba345f4f") }
MongoDB server version: 4.4.14
{
	"authInfo" : {
		"authenticatedUsers" : [ ],
		"authenticatedUserRoles" : [ ]
	},
	"ok" : 1
}

Crear usuario administrador de MongoDB

Por defecto, se puede acceder a MongoDB sin nombre de usuario ni contraseña. Por razones de seguridad, se recomienda crear un usuario admin para autenticar MongoDB.

En primer lugar, inicia sesión en el shell de MongoDB con el siguiente comando:

mongo

Una vez que hayas iniciado sesión, cambia la base de datos a admin mediante el siguiente comando:

use admin

A continuación, crea un usuario admin y establece una contraseña con el siguiente comando:

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

Deberías ver la siguiente salida:

Successfully added user: {
	"user" : "admin",
	"roles" : [
		{
			"role" : "userAdminAnyDatabase",
			"db" : "admin"
		}
	]
}

A continuación, edita el archivo de configuración de MongoDB y habilita la autenticación de MongoDB. Puedes hacerlo editando el archivo de configuración de MongoDB:

nano /etc/mongod.conf

Añade la siguiente línea para habilitar la autenticación de MongoDB:

security:
  authorization: enabled

Guarda y cierra el archivo y reinicia el servicio MongoDB para aplicar los cambios:

systemctl restart mongod

Verificar la autenticación de MongoDB

Ahora, puedes verificar la autenticación de MongoDB utilizando el siguiente comando:

mongo -u admin -p --authenticationDatabase admin

Se te pedirá la contraseña de administrador de MongoDB:

MongoDB shell version v4.4.14
Enter password: 

Proporciona tu contraseña de administrador y pulsa la tecla Intro. Deberías ver la siguiente salida:

connecting to: mongodb://127.0.0.1:27017/?authSource=admin&compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("05106893-c382-4895-a55b-7560858b31eb") }
MongoDB server version: 4.4.14
> 

Para listar todas las bases de datos MongoDB, ejecuta el siguiente comando:

> show dbs

Deberías ver el siguiente resultado:

admin   0.000GB
config  0.000GB
local   0.000GB

Conclusión

Enhorabuena! has instalado con éxito MongoDB en Ubuntu 22.04. Ahora puedes utilizar MongoDB como base de datos para aplicaciones web de alto rendimiento. No dudes en preguntarme si tienes alguna duda.

Scroll al inicio