MongoDB prové de la paraula anglesa “humongous”, que significa enorme. MongoDB és una base de dades NoSQL, de manera que les dades no es desen en taules com es fa a MySQL. Bàsicament, MongoDB desa estructures de dades en documents semblants a JSON amb un esquema dinàmic, cosa que fa que la integració amb altres aplicacions sigui més fàcil i ràpida. Un altre dels avantatges de MongoDB és que permet l'escalat horitzontal.
En aquest article us ensenyarem com instal·lar MongoDB Community Edition en un servidor amb la distribució Ubuntu.
Instal·lar MongoDB
Per instal·lar MongoDB, haurem d'obtenir-ne la clau i afegir-la:
# wget -qO - https://www.mongodb.org/static/pgp/server-5.0.asc | sudo apt-key add -
Si apareix algun error en afegir la clau, executa les ordres següents:
# apt-get -y install wget gnupg && wget -qO - https://www.mongodb.org/static/pgp/server-5.0.asc | apt-key add -
Posteriorment, haurem d'afegir el repositori corresponent a la versió de la distribució utilitzada:
# 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
A continuació, actualitzem els repositoris:
# apt-get update
I instal·lem MongoDB:
# apt-get install -y mongodb-org
Activem el servei, l'iniciem i en comprovem l'estat:
# 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.
Protegir MongoDB
Ja tenim MongoDB instal·lat; ara toca protegir-lo perquè ningú no hi pugui accedir sense un nom d'usuari i una contrasenya. Per fer-ho, crearem un usuari root. Ens connectarem a MongoDB executant:
# mongo
use admin
db.createUser(
{
user: "root",
pwd: "CloudingEjemploKB",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
)
Fes servir contrasenyes segures; el pas anterior és només un exemple. Ara ja tenim l'usuari root creat, de manera que modificarem la configuració de MongoDB perquè només permeti connexions segures. Editarem el fitxer /etc/mongod.conf i descomentarem les línies:
security: authorization: enabled
Configurar IPs
Per defecte, MongoDB només respon mitjançant la IP 127.0.0.1. És possible que hagis d'accedir al teu servidor des de l'exterior; per fer-ho, hauràs de modificar la configuració a /etc/mongod.conf i canviar bindIp:
#Permetre accessos per IP privada (10.20.10.XX)
bindIp: 127.0.0.1,10.20.10.XX
#Permetre accessos per IP pública (46.183.11X.XX)
bindIp: 127.0.0.1,46.183.11X.XX