MongoDB proviene de la palabra en inglés “humongous” que significa enorme. MongoDB es una base de datos NoSQL con lo cual los datos no se guardan en tablas como se hacen MySQL. Básicamente MongoDB guarda estructuras de datos en documentos similares a JSON con un esquema dinámico por lo cual la integración con otras aplicaciones es más fácil y rápida. Otra de las ventajas de MongoDB es que permite el escalado horizontal.
En este artículo os vamos a enseñar como instalar MongoDB Community Edition en un servidor con la distribución Ubuntu.
Instalar MongoDB
Para instalar MongoDB deberemos adquirir su llave y añadirla:
# wget -qO - https://www.mongodb.org/static/pgp/server-5.0.asc | sudo apt-key add -
Si aparece algún error al añadir la llave, ejecuta los siguientes comandos:
# apt-get -y install wget gnupg && wget -qO - https://www.mongodb.org/static/pgp/server-5.0.asc | apt-key add -
Posteriormente, deberemos añadir el repositorio correspondiente de la versión de la distribución utilizada:
# echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/5.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-5.0.list
# echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/5.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-5.0.list
# echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/5.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-5.0.list
Luego actualizamos los repositorios:
# apt-get update
Y instalamos MongoDB:
# apt-get install -y mongodb-org
Activamos el servicio, lo iniciamos y comprobamos el estado:
# systemctl enable mongod && systemctl start mongod && systemctl status mongod
● mongod.service - High-performance, schema-free document-oriented database
Loaded: loaded (/lib/systemd/system/mongod.service; disabled; vendor preset:
enabled)
Active: active (running) since Wed 2018-02-14 14:05:37 CET; 5s ago
Docs: https://docs.mongodb.org/manual
Main PID: 2298 (mongod)
Tasks: 23
Memory: 41.4M
CPU: 59ms
CGroup: /system.slice/mongod.service
└─2298 /usr/bin/mongod --config /etc/mongod.conf
Feb 14 14:05:37 mongodb systemd[1]: Started High-performance, schema-free document-oriented
database.
Securizar MongoDB
Ya tenemos instalado MongoDB ahora toca hacerlo seguro y que nadie pueda acceder sin usuario y contraseña, para ellos crearemos un usuario root. Nos conectaremos a MongoDB ejecutando:
# mongo
use admin
db.createUser(
{
user: "root",
pwd: "CloudingEjemploKB",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
)
Usar contraseñas seguras, el paso anterior es un mero ejemplo. Ahora ya tenemos el usuario root creado, por lo cual iremos a modificar la configuración de MongoDB para que solo permita conexiones seguras, editaremos el fichero /etc/mongod.conf i descomentaremos las lineas:
security: authorization: enabled
Configurar IPs
Por defecto MongoDB sólo responde mediante IP 127.0.0.1, es posible que tengas que acceder a tu servido externamente para ello deberás modificar la configuración en /etc/mongod.conf, deberás cambiar el bindIp:
#Permitir accesos por IP Privada (10.20.10.XX)
bindIp: 127.0.0.1,10.20.10.XX
#Permitir accesos por IP Pública (46.183.11X.XX)
bindIp: 127.0.0.1,46.183.11X.XX