Introduzione

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 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.

Questo tutorial spiega come installare e configurare MongoDB Community Edition su un server CentOS 8.

Installare MongoDB

MongoDB non è disponibile nei repository core CentOS 8. Abiliteremo il repository MongoDB ufficiale e installeremo i pacchetti.

Al momento della stesura di questo articolo, l'ultima versione di MongoDB disponibile nei repository MongoDB ufficiali è la versione 4.2. Prima di iniziare l'installazione, visitare la sezione Install on Red Hat della documentazione di MongoDB e verificare se è disponibile una nuova versione.

Effettuare le seguenti operazioni come utente root o utente con privilegi sudo per installare MongoDB su un sistema CentOS 8.

In questo tutorial utilizziamo nano, se preferisci puoi utilizzare vi installato di default sulla maggior parte delle distribuzioni.

sudo dnf install nano

Abilitare il repository MongoDB creando un nuovo file repository denominato mongodb-org.repo all'interno della directory /etc/yum.repos.d/:

sudo 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 si desidera installare una versione precedente di MongoDB, sostituire ciascuna istanza 4.2 con la versione preferita.

Installa il meta-pacchetto mongodb-org:

sudo dnf install mongodb-org

Durante l'installazione ti verrà chiesto di importare la chiave GPG MongoDB. Digita y e premi Enter.

I seguenti pacchetti verranno installati sul tuo sistema come parte del pacchetto mongodb-org:

  • mongodb-org-server - Il demone mongod e gli script e le configurazioni init corrispondenti.
  • mongodb-org-mongos- Il demone mongos.
  • mongodb-org-shell - La shell mongo, un'interfaccia JavaScript interattiva per MongoDB, utilizzata per eseguire attività amministrative tramite la riga di comando.
  • mongodb-org-tools - Contiene diversi strumenti MongoDB per l'importazione e l'esportazione di dati, statistiche e altre utilità.

Una volta completata l'installazione, abilitare e avviare il servizio MongoDB:

sudo systemctl enable mongod --now

Per verificare l'installazione, connettersi al server di database MongoDB e stampare la versione del server:

mongo

Eseguire il comando seguente per visualizzare la versione di MongoDB:

db.version()

L'output sarà simile a questo:

4.2.3

Uscire dalla shell di mongo:

quit()

Configurare MongoDB

Il file di configurazione MongoDB è denominato mongod.conf e si trova nella directory /etc. Il file è in formato YAML.

Le impostazioni di configurazione predefinite sono sufficienti nella maggior parte dei casi. Tuttavia, per gli ambienti di produzione, si consiglia di decommentare la sezione di sicurezza e abilitare l'autorizzazione come mostrato di seguito:

sudo nano /etc/mongod.conf
security:
  authorization: enabled

L'opzione authorization 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 MongoDB, riavviare il servizio mongod:

sudo systemctl restart mongod

Per ulteriori informazioni sulle opzioni di configurazione di MongoDB, visitare la pagina di documentazione Configuration File Options.

Creare l'utente MongoDB amministrativo

Se hai abilitato l'autenticazione MongoDB, dovrai creare un utente amministrativo in grado di accedere e gestire l'istanza MongoDB.

Innanzitutto, accedi alla shell MongoDB con:

mongo

Digitare il comando seguente per connettersi al database admin:

use admin
switched to db admin

Crea un nuovo utente chiamato mongoAdmin con il ruolouserAdminAnyDatabase:

db.createUser(
Successfully added user: {
	"user" : "mongoAdmin",
	"roles" : [
		{
			"role" : "userAdminAnyDatabase",
			"db" : "admin"
		}
	]
}

Puoi nominare l'utente amministrativo MongoDB come desideri.

Esci dalla shell mongo con:

quit()

Per testare le modifiche, accedi alla shell mongo usando 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",
        "userId" : UUID("2e96b133-dc7d-40dc-b419-2b171000b572"),
        "user" : "mongoAdmin",
        "db" : "admin",
        "roles" : [
                {
                        "role" : "userAdminAnyDatabase",
                        "db" : "admin"
                }
        ],
        "mechanisms" : [
                "SCRAM-SHA-1",
                "SCRAM-SHA-256"
        ]
}

Conclusione

Ti abbiamo mostrato come installare e configurare MongoDB 4.2 sul tuo server CentOS 8.

Consultare il Manuale MongoDB 4.2 per ulteriori informazioni su questo argomento.