Introduzione

MongoDB è un DBMS (Database Management System) non relazionale, orientato ai documenti. Classificato come un database di tipo NoSQL gratuito e open source utilizzato comunemente nelle moderne applicazioni web.

In questo tutorial installeremo MongoDB su Ubuntu 18.04 LTS.

Se desideri installare MongoDB su un server in remoto continua a leggere, altrimenti salta il primo paragrafo "Connessione al Server" e leggi il successivo.

Connessione al Server

Per accedere al server, è necessario conoscere l'indirizzo IP. Avrai anche bisogno dell'username e della password per l'autenticazione. Per connettersi al server come utente root digitare il seguente comando:

ssh [email protected]_DEL_SERVER

Successivamente sarà necessario inserire la password dell'utente root.

Se non utilizzate l'utente root potete connettervi con un'altro nome utente utilizzando lo stesso comando, quindi modificare root con il vostro nome_utente:

ssh [email protected]_DEL_SERVER

Successivamente vi verrà chiesto di inserire la password del vostro utente.

La porta standard per connettersi tramite ssh è la 22, se il vostro server utilizza una porta diversa, sarà necessario specificarla utilizzando il parametro -p, quindi digitare il seguente comando:

ssh [email protected]_DEL_SERVER -p PORTA

Installare MongoDB

I repository ufficiali dei pacchetti di Ubuntu includono una versione aggiornata di MongoDB, Possiamo quindi installare i pacchetti necessari usando apt.

Aggiornare l'elenco dei pacchetti di Ubuntu per avere la versione più recente degli elenchi del repository, da terminale:

sudo apt update

Installare MongoDB:

sudo apt install -y mongodb

Il server del database viene avviato automaticamente dopo l'installazione.

MongoDB

Il processo di installazione ha avviato automaticamente MongoDB.

Per controllare lo stato:

sudo systemctl status mongodb

Dovresti leggere un messaggio simile al seguente:


● mongodb.service - An object/document-oriented database
   Loaded: loaded (/lib/systemd/system/mongodb.service; enabled; vendor preset: enabled)
   Active: active (running) since Tue 2018-06-26 18:04:19 CEST; 1 day 5h ago
     Docs: man:mongod(1)
 Main PID: 760 (mongod)
    Tasks: 23 (limit: 2304)
   CGroup: /system.slice/mongodb.service
           └─760 /usr/bin/mongod --unixSocketPrefix=/run/mongodb --config /etc/mongodb.conf

giu 26 18:04:19 vps376315 systemd[1]: Started An object/document-oriented database.

Il server MongoDB è attivo e funzionante.

Possiamo effettuare un ulteriore verifica collegandoci direttamente al server del database, da terminale:

mongo --eval 'db.runCommand({ connectionStatus: 1 })'

Dovresti leggere un messaggio simile al seguente:


MongoDB shell version v3.6.3
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.6.3
{
        "authInfo" : {
                "authenticatedUsers" : [ ],
                "authenticatedUserRoles" : [ ]
        },
        "ok" : 1
}

"ok" : 1

Questo valore ci indica che il server è correttamente funzionante.

Per arrestare il server:

sudo systemctl stop mongodb

Per avviare il server:

sudo systemctl start mongodb

Per riavviare il server:

sudo systemctl restart mongodb

Per disabilitare l'avvio automatico di MongoDB:

sudo systemctl disable mongodb

Per riabilitare l'avvio automatico di MongoDB:

sudo systemctl enable mongodb

Per verificare lo stato del server:

sudo systemctl status mongodb

Configurazione Firewall

Per verificare lo stato del firewall:

sudo ufw status

Se si desidera connettersi al server MongoDB da remoto, e non solo da localhost, bisogna consentire le connessioni in entrata in ufw.

Per consentire l'accesso a MongoDB sulla sua porta predefinita 27017 da qualsiasi posizione, dare il seguente comando:

sudo ufw allow 27017

Se si desidera connettersi al server MongoDB solo da determinate posizioni attendibili, come un altro server che ospita un'applicazione è possibile specificare l'indirizzo IP di un altro server a cui verrà esplicitamente consentito di connettersi:

sudo ufw allow from INDIRIZZO_IP/32 to any port 27017

Per verificare lo stato del firewall con le modifiche effettuate:

sudo ufw status

Anche se la porta è aperta, MongoDB di default è in ascolto solo sull'indirizzo locale 127.0.0.1. Per consentire le connessioni remote, aggiungi l'indirizzo IP pubblicamente instradabile del tuo server al file mongodb.conf.

Apri il file di configurazione MongoDB:

sudo nano /etc/mongodb.conf

...
logappend=true

bind_ip = 127.0.0.1,INDIRIZZO_IP
#port = 27017

...

Assicurarsi di aggiungere la virgola tra ogni indirizzo IP.

Salvare e chiudere il file.

Riavviare MongoDB:

sudo systemctl restart mongodb

Conclusione

L'installazione e la configurazione di MongoDB su Ubuntu 18.04 LTS è terminata.