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 spiega come installare e configurare MongoDB Community Edition su un server CentOS 8.
Installazione di MongoDB #
MongoDB non è disponibile nei repository principali di CentOS 8. Abiliteremo il repository MongoDB ufficiale e installeremo i pacchetti.
Al momento della stesura di questo articolo, l'ultima versione di MongoDB disponibile dai repository MongoDB ufficiali è la versione 4.2. Prima di iniziare con l'installazione, visita la sezione Install on Red Hat della documentazione di MongoDB e controlla se è disponibile una nuova versione.
Esegui i seguenti passaggi come utente root o utente con privilegi sudo per installare MongoDB su un sistema CentOS 8:
-
Abilita il repository MongoDB creando un nuovo file di repository denominato
mongodb-org.repo
all'interno del/etc/yum.repos.d/
directory:
/etc/yum.repos.d/mongodb-org.reposudo nano /etc/yum.repos.d/mongodb-org.repo
[mongodb-org-4.2] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.2/x86_64/ gpgcheck=1 enabled=1 gpgkey=https://www.mongodb.org/static/pgp/server-4.2.asc
Se desideri installare una versione precedente di MongoDB, sostituisci ogni istanza di
4.2
con la tua versione preferita. -
Installa
mongodb-org
metapacchetto:sudo dnf install mongodb-org
Durante l'installazione ti verrà chiesto di importare la chiave GPG di MongoDB. Digita
y
e premiEnter
.I seguenti pacchetti verranno installati sul tuo 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, utilizzata per eseguire attività amministrative attraverso la riga di comando.mongodb-org-tools
- Contiene diversi strumenti MongoDB per importare ed esportare dati, statistiche e altre utilità.
-
Una volta completata l'installazione, abilita e avvia il servizio MongoDB:
sudo systemctl enable mongod --now
-
Per verificare l'installazione, connettiti al server del database MongoDB e stampa la versione del server:
mongod
Esegui il comando seguente per visualizzare la versione di MongoDB:
db.version()
L'output sarà simile a questo:
4.2.3
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:
/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 qualsiasi database ed eseguirà qualsiasi azione.
Dopo aver apportato modifiche al file di configurazione di MongoDB, riavvia il servizio mongod:
sudo systemctl restart mongod
Per ulteriori informazioni sulle opzioni di configurazione di MongoDB, visitare 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.
Innanzitutto, accedi alla shell MongoDB con:
mongod
Digita il seguente comando per connetterti all'admin
banca dati:
use admin
switched to db admin
Crea un nuovo utente chiamato 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
MongoDB shell version v4.2.3
Enter password:
use admin
switched to db admin
Ora, stampa gli utenti con:
show users
{
"_id" : "admin.mongoAdmin",
"user" : "mongoAdmin",
"db" : "admin",
"roles" : [
{
"role" : "userAdminAnyDatabase",
"db" : "admin"
}
],
"mechanisms" : [
"SCRAM-SHA-1",
"SCRAM-SHA-256"
]
}