Introduzione
MongoDB è un database di documenti gratuito e open source. Appartiene alla famiglia dei database NoSQL, che differisce dai tradizionali database SQL basati su tabelle come MySQL e PostgreSQL. I dati in MongoDB sono 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.
Alcune funzionalità chiave di MongoDB sono la replica, l'indicizzazione, le ricerche definite dall'utente, il bilanciamento del carico e l'esecuzione di JavaScript.
Questa guida copre il processo passo passo di installazione di MongoDB su Ubuntu.
Prerequisiti
Per seguire i passaggi di installazione, assicurati di eseguire i comandi come root o utente con privilegi sudo su un'istanza di Ubuntu 22.04 o 20.04.
Installazione di MongoDB su Ubuntu
I repository Ubuntu standard di solito includono una versione MongoDB obsoleta. Installeremo i pacchetti MongoDB ufficiali, che sono sempre aggiornati. L'installazione di MongoDB su Ubuntu è abbastanza semplice. Abiliteremo il repository MongoDB, importeremo la chiave GPG del repository e installeremo i pacchetti MongoDB.
Al momento della stesura di questo articolo, l'ultima versione di MongoDB disponibile nei repository MongoDB ufficiali è la versione 7.0.
Il primo passo è installare le dipendenze necessarie per aggiungere un nuovo repository . Molto probabilmente questi pacchetti saranno già installati sul tuo sistema, ma alcuni pacchetti potrebbero mancare:
sudo apt update
sudo apt install gnupg wget apt-transport-https ca-certificates software-properties-common
Successivamente, importa la chiave GPG del repository MongoDB sul tuo sistema:
wget -qO- \
https://pgp.mongodb.com/server-7.0.asc | \
gpg --dearmor | \
sudo tee /usr/share/keyrings/mongodb-server-7.0.gpg >/dev/null
Aggiungi il repository MongoDB creando il seguente file:
echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-7.0.gpg ] \
https://repo.mongodb.org/apt/ubuntu $(lsb_release -cs)/mongodb-org/7.0 multiverse" | \
sudo tee -a /etc/apt/sources.list.d/mongodb-org-7.0.list
La parte nel comando $(lsb_release -cs)
sopra stampa il nome in codice di Ubuntu. Ad esempio, se hai Ubuntu versione 22.04, il comando stamperà grok
.
Una volta abilitato il repository, aggiorna l'indice del pacchetto locale:
sudo apt update
Ora puoi installare MongoDB digitando:
sudo apt install mongodb-org
mongodb-org
è un metapacchetto che include i seguenti pacchetti:
mongodb-org-server
- Il demonemongod
e gli script e le configurazioni di inizializzazione corrispondenti.mongodb-org-mongos
- Il demonmongos
e.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à.
Per impostazione predefinita, il demone MongoDB non si avvia dopo l'installazione. Per avviare il servizio ed abilitarlo all'avvio eseguire:
sudo systemctl enable --now mongod
Possiamo verificare se l'installazione è andata a buon fine connettendoci al server del database MongoDB utilizzando lo strumento mongosh
shell e stampando lo stato della connessione:
mongosh --eval 'db.runCommand({ connectionStatus: 1 })'
L'output sarà simile al seguente:
Current Mongosh Log ID: 655a70dfea9d876644ee6607
Connecting to: mongodb://127.0.0.1:27017/?directConnection=true&serverSelectionTimeoutMS=2000&appName=mongosh+2.0.2
Using MongoDB: 7.0.3
Using Mongosh: 2.0.2
{
authInfo: { authenticatedUsers: [], authenticatedUserRoles: [] },
ok: 1
}
Il comando restituisce informazioni sullo stato della connessione, sugli utenti autenticati e sulle relative autorizzazioni. Un valore 1
per il ok
campo indica il successo.
Configurazione di MongoDB
Il file di configurazione di MongoDB si trova nella directory /etc
ed è denominato mongod.conf
. Il file utilizza il 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 sicurezza e abilitare il controllo degli accessi, come mostrato di seguito:
sudo nano /etc/mongod.conf
security:
authorization: enabled
L'opzione authorization
abilita il controllo degli accessi basato sui ruoli (RBAC) che regola l'accesso degli utenti alle risorse e alle operazioni del database. Se questa opzione non è abilitata ogni utente avrà accesso a tutti i database ed eseguirà qualsiasi azione.
Ogni volta che si apportano modifiche alla configurazione, è necessario riavviare il servizio mongod affinché le modifiche abbiano effetto:
sudo systemctl restart mongod
Per trovare ulteriori informazioni sulle opzioni di configurazione disponibili nell'ultima versione di MongoDB, visitare la pagina della documentazione sulle 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 shell mongo:
mongosh
Dall'interno della shell MongoDB, digitare il comando seguente per connettersi al database admin
:
use admin
switched to db admin
Eseguire il comando seguente per creare un utente amministrativo:
db.createUser(
{
user: "myMongoAdmin",
pwd: passwordPrompt(),
roles: [
{ role: "userAdminAnyDatabase", db: "admin" },
{ role: "readWriteAnyDatabase", db: "admin" }
]
}
)
Abbiamo chiamato l'uso dell'amministratore "myMongoAdmin". Sentiti libero di chiamarlo come preferisci. Puoi anche inserire una password in chiaro invece del metodo passwordPrompt()
, ma non è consigliabile visualizzare la password sullo schermo e verrà anche salvata nella cronologia della shell.
Ti verrà richiesto di digitare la password, digitarla e premere "Invio". Non dimenticare di impostare una password sicura:
Enter password
********{ ok: 1 }
"ok: 1" significa che il comando è stato eseguito correttamente.
Una volta terminato, esci dalla shell mongo con:
quit()
Per testare le modifiche, accedi alla shell MongoDB utilizzando l'utente amministrativo che hai creato in precedenza:
mongo -u myMongoAdmin -p --authenticationDatabase admin
Verrai connesso alla shell MogoDB se inserisci la password corretta.
Passa al database "admin" ed esegui show users
per ottenere informazioni su tutti gli utenti e i loro ruoli:
use admin
switched to db admin
show users
Nel nostro esempio, abbiamo un solo utente:
[
{
_id: 'admin.myMongoAdmin',
userId: new UUID("a00ab5ca-5c1f-4a3b-8f67-be8a79c7649c"),
user: 'myMongoAdmin',
db: 'admin',
roles: [
{ role: 'userAdminAnyDatabase', db: 'admin' },
{ role: 'readWriteAnyDatabase', db: 'admin' }
],
mechanisms: [ 'SCRAM-SHA-1', 'SCRAM-SHA-256' ]
}
]
Conclusione
Ti abbiamo mostrato come installare e configurare MongoDB su Ubuntu 20.04 e 22.04. Per ulteriori informazioni su questo argomento, visitare il Manuale MongoDB.
Se riscontri un problema o hai feedback, lascia un commento qui sotto.