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.
In questo tutorial, spiegheremo come installare e configurare l'ultima versione di MongoDB Community Edition su Debian 10 Buster.
Installazione di MongoDB #
MongoDB non è disponibile nei repository Debian Buster standard. Abiliteremo il repository MongoDB ufficiale e installeremo i pacchetti.
Al momento della stesura di questo articolo, l'ultima versione di MongoDB è la versione 4.2. Prima di iniziare con l'installazione, vai alla pagina Installazione su Debian della documentazione di MongoDB e controlla se è disponibile una nuova versione.
Eseguire i seguenti passaggi come utente root o utente con privilegi sudo per installare MongoDB su un sistema Debian:
-
Installa i pacchetti necessari per aggiungere un nuovo repository:
sudo apt install dirmngr gnupg apt-transport-https software-properties-common ca-certificates curl
-
Aggiungi la chiave GPG MongoDB al tuo sistema:
curl -fsSL https://www.mongodb.org/static/pgp/server-4.2.asc | sudo apt-key add -
-
Abilita il repository MongoDB:
sudo add-apt-repository 'deb https://repo.mongodb.org/apt/debian buster/mongodb-org/4.2 main'
I pacchetti con versioni precedenti di MongoDB non sono disponibili per Debian 10.
-
Aggiorna l'elenco dei pacchetti e installa
mongodb-org
metapacchetto:sudo apt update
sudo apt install mongodb-org
I seguenti pacchetti verranno installati sul sistema come parte di
mongodb-org
pacchetto: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 servizio MongoDB e abilitalo all'avvio all'avvio:
sudo systemctl enable mongod --now
-
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 a questo:
MongoDB shell version v4.2.1 connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb Implicit session: session { "id" : UUID("09f11c53-605f-44ad-abec-ec5801bb6b06") } MongoDB server version: 4.2.1 { "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 per la maggior parte degli utenti. Tuttavia, per gli ambienti di produzione, si consiglia di decommentare la sezione di sicurezza e abilitare l'autorizzazione, come mostrato di seguito:
/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 può accedere a tutti i database ed eseguire qualsiasi azione.
Dopo aver modificato il file di configurazione, 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.2, 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. Per farlo, accedi alla mongo shell con:
mongod
Dall'interno della shell MongoDB, digita il seguente comando per connetterti all'admin
banca dati:
use admin
switched to db admin
Immettere il comando seguente per creare un nuovo utente denominato mongoAdmin
con userAdminAnyDatabase
ruolo:
db.createUser(
{
user: "mongoAdmin",
pwd: "changeMe",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
)
Successfully added user: {
"user" : "mongoAdmin",
"roles" : [
{
"role" : "userAdminAnyDatabase",
"db" : "admin"
}
]
}
Puoi nominare l'utente amministrativo MongoDB come desideri. 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
Immettere la password quando richiesto. Una volta che sei all'interno della shell di MongoDB, connettiti a admin
banca dati:
use admin
switched to db admin
Ora, stampa gli utenti con:
show users
{
"_id" : "admin.mongoAdmin",
"userId" : UUID("cdc81e0f-db58-4ec3-a6b8-829ad0c31f5c"),
"user" : "mongoAdmin",
"db" : "admin",
"roles" : [
{
"role" : "userAdminAnyDatabase",
"db" : "admin"
}
],
"mechanisms" : [
"SCRAM-SHA-1",
"SCRAM-SHA-256"
]
}