
MongoDB è un database di documenti gratuito e open source. Appartiene a una famiglia di database chiamata NoSQL, che è diversa dai tradizionali database SQL basati su tabelle come MySQL e PostgreSQL.
In MongoDB, i dati vengono archiviati in documenti flessibili simili a JSON in cui i campi possono variare da documento a documento. Non richiede uno schema predefinito e la struttura dei dati può essere modificata nel tempo.
Questo tutorial descrive come installare e configurare MongoDB Community Edition su Ubuntu 20.04.
I repository Ubuntu standard includono una versione MongoDB obsoleta. L'installazione dell'ultimo MongoDB su Ubuntu è abbastanza semplice. Abiliteremo il repository MongoDB, importeremo la chiave GPG del repository e installeremo il server MongoDB.
Installazione di MongoDB su Ubuntu 20.04 #
Esegui i seguenti passaggi come root o utente con privilegi sudo per installare MongoDB su Ubuntu:
-
Installa le dipendenze necessarie per aggiungere un nuovo repository su HTTPS:
sudo apt update
sudo apt install dirmngr gnupg apt-transport-https ca-certificates software-properties-common
-
Importa la chiave GPG del repository e aggiungi il repository MongoDB con:
wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add -
sudo add-apt-repository 'deb [arch=amd64] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse'
Al momento della stesura di questo articolo, l'ultima versione di MongoDB è la versione 4.4. Per installare un'altra versione, sostituisci
4.4
con la tua versione preferita. -
Una volta abilitato il repository, installa
mongodb-org
metapacchetto digitando:sudo apt install mongodb-org
I seguenti pacchetti verranno installati sul tuo sistema:
mongodb-org-server
- Ilmongod
demone e gli script di inizializzazione e le configurazioni corrispondenti.mongodb-org-mongos
- Imongod
demone.mongodb-org-shell
- La mongo shell, un'interfaccia JavaScript interattiva per MongoDB. Viene utilizzato per eseguire attività amministrative tramite la riga di comando.mongodb-org-tools
- Contiene diversi strumenti MongoDB per importare ed esportare dati, statistiche e altre utilità.
-
Avvia il demone MongoDB e abilitalo all'avvio all'avvio digitando:
sudo systemctl enable --now mongod
-
Per verificare se l'installazione è stata completata correttamente, connettiti al server del database MongoDB utilizzando
mongod
strumento e stampa lo stato della connessione:mongo --eval 'db.runCommand({ connectionStatus: 1 })'
L'output sarà simile al seguente:
MongoDB shell version v4.4.0 connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb Implicit session: session { "id" : UUID("2af3ab0e-2197-4152-8bd0-e33efffe1464") } MongoDB server version: 4.4.0 { "authInfo" : { "authenticatedUsers" : [ ], "authenticatedUserRoles" : [ ] }, "ok" : 1 }
Un valore di
1
per ilok
il campo indica il successo.
Configurazione di MongoDB #
Il file di configurazione di MongoDB si chiama mongod.conf
e si trova in /etc
directory. Il file è in formato YAML.
Le impostazioni di configurazione predefinite sono sufficienti nella maggior parte dei casi. Tuttavia, per gli ambienti di produzione, consigliamo di rimuovere il commento dalla sezione di sicurezza e di abilitare l'autorizzazione, come mostrato di seguito:
sudo nano /etc/mongod.conf
/etc/mongod.confsecurity:
authorization: enabled
L'authorization
l'opzione abilita il controllo degli accessi in base al ruolo (RBAC) che regola l'accesso degli utenti alle risorse e alle operazioni del database. Se questa opzione è disabilitata, ogni utente avrà accesso a tutti i database ed eseguirà qualsiasi azione.
Quando modifichi il file di configurazione di MongoDB, riavvia il servizio mongod per rendere effettive le modifiche:
sudo systemctl restart mongod
Per trovare maggiori informazioni sulle opzioni di configurazione disponibili in MongoDB 4.4, visita la pagina della documentazione Opzioni del file di configurazione.
Creazione dell'utente amministrativo MongoDB #
Se hai abilitato l'autenticazione MongoDB, dovrai creare un utente amministrativo che possa accedere e gestire l'istanza MongoDB.
Accedi alla conchiglia mongo:
mongod
Dall'interno della shell di MongoDB, digita il seguente comando per connetterti all'admin
banca dati:
use admin
switched to db admin
Esegui il comando seguente per creare un nuovo utente denominato mongoAdmin
, con password changeMe
e userAdminAnyDatabase
ruolo:
db.createUser(
{
user: "mongoAdmin",
pwd: "changeMe",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
)
Successfully added user: {
"user" : "mongoAdmin",
"roles" : [
{
"role" : "userAdminAnyDatabase",
"db" : "admin"
}
]
}
Non dimenticare di impostare una password più sicura. Puoi nominare l'utente amministrativo MongoDB come desideri. Al termine, esci da mongo shell con:
quit()
Per testare le modifiche, accedi a mongo shell utilizzando l'utente amministrativo che hai creato in precedenza:
mongo -u mongoAdmin -p --authenticationDatabase admin
use admin
switched to db admin
Esegui show users
e dovresti vedere le informazioni sull'utente appena creato:
show users
{
"_id" : "admin.mongoAdmin",
"userId" : UUID("49617e41-ea3b-4fea-96d4-bea10bf87f61"),
"user" : "mongoAdmin",
"db" : "admin",
"roles" : [
{
"role" : "userAdminAnyDatabase",
"db" : "admin"
}
],
"mechanisms" : [
"SCRAM-SHA-1",
"SCRAM-SHA-256"
]
}
Puoi anche provare ad accedere alla mongo shell senza alcun argomento (digita semplicemente mongod
) e vedi se riesci a elencare gli utenti usando gli stessi comandi di cui sopra.