back to top

Installare MongoDB su Windows, macOS e Linux

MongoDB è disponibile in due versioni: Community Edition e Enterprise Edition.

In questa lezione vedremo come installare MongoDB Community Edition (la versione gratuita di MongoDB) in Windows 10, macOS Monterey.

MongoDB Community Edition non ha nessuna limitazione per i fini di questa guida e presenta tutte le funzionalità base necessarie compresi gli strumenti per implementare Replica Set e Sharding.

Come è facile immaginare la procedura di installazione varia in base al tipo di sistema operativo. Per comprendere al meglio la procedura d’installazione, vediamo velocemente quali sono i processi e i file di cui abbiamo bisogno per lanciare un’istanza di MongoDB.

Cos’è mongod?

Dopo aver completato l’installazione con successo, il primo comando che lanciamo nella shell sarà mongod. In questo modo avviamo il processo principale che si occuperà di gestire tutte le connessioni e le richieste e soprattutto sarà responsabile delle operazioni necessarie per salvare e mantenere i dati.

mongod è configurabile attraverso numerose opzioni per definire, per esempio, quale sistema di autenticazione usare oppure quale deve essere il percorso del file di log, quale porta utilizzare e così via.

Un’opzione è particolarmente importante, ovvero --dbpath con cui stabiliamo il percorso della cartella per il salvataggio dei dati e dei file usati internamente da mongod per le varie operazioni di gestione del database.

Se non specifichiamo nessun percorso, verrà utilizzata una cartella predefinita che di solito è /data/db in macOS e Linux. In Windows invece sarà la cartella datadb del volume corrente, per esempio C:datadb.

È bene notare che tale cartella predefinita potrebbe cambiare a seconda del metodo usato per l’installazione di MongoDB.

In ogni caso è opportuno assicurarsi che la cartella da usare sia già presente e che abbiamo i permessi necessari per la lettura e scrittura.

A cosa servono i file di configurazione

Se non vogliamo specificare tutte le opzioni via linea di comando, possiamo invocare mongod indicando il percorso di un file di configurazione che possiamo nominare a nostro piacimento e che presenta solitamente l’estensione .conf (per esempio mongod.conf). Selezioniamo un file di configurazione con l’opzione --config o -f, per esempio mongod --config /etc/mongod.conf oppure mongod -f /usr/local/etc/mongod.conf, assicurandoci sempre di avere configurato correttamente tutti i permessi per le cartelle del percorso indicato.

Cosa sono mongo e mongosh?

Una volta avviato il server di MongoDB, dovremo collegarci usando un client. Da riga di comando possiamo lanciare mongosh per avviare la nuova Shell MongoDB. Si tratta di un ambiente di programmazione interattivo in cui poter eseguire qualsiasi comando Javascript ed interrogare il database. Sperimenteremo in maggiore dettaglio quali sono alcune delle funzionalità di mongosh nelle prossime lezioni.

Con l’introduzione di mongosh è stata messa a disposizione un’alternativa alla precedente shell mongo. Al momento mongosh presenta solo un numero limitato dei metodi presenti in mongo, in compenso offre una migliore evidenziazione della sintassi e gestione della cronologia dei comandi.

Installare MongoDB Community Edition in Windows 10

Il metodo più semplice per installare MongoDB su Windows 10 è attraverso il file d’installazione .msi che andiamo a scaricare dall’apposita pagina del sito ufficiale.

schermata di download di mongodb per windows 10

Dopo aver completato il download, non dovremo fare altro che avviare la procedura d’installazione.

schermata di avvio installazione di mongodb in windows 10

Scegliamo quindi l’installazione completa.

installazione di mongodb in windows 10

Ci verrà poi chiesto se vogliamo installare MongoDB come servizio. Così facendo non dovremo preoccuparci di lanciare mongod visto che sarà automaticamente eseguito all’avvio di Windows. È importante notare che dobbiamo selezionare un percorso sia per la cartella data che per log.

installazione di mongodb in windows 10 come servizio

La scelta di avviare un’istanza di mongod come servizio è facoltativa visto che possiamo comunque lanciare una nuova istanza con le opportune configurazioni in qualsiasi momento. Inoltre, se premiamo la combinazione di tasti WINDOWS+s e cerchiamo ‘Servizi’, possiamo in ogni momento sapere quali sono i servizi di Windows attivi per poterli gestire come vogliamo.

gestione servizi in windows 10

Prima di completare la procedura d’installazione ci verrà richiesto se vogliamo installare MongoDB Compass.

schermata installazione mongodb compass in windows 10

Scegliamo di installare MongoDB Compass anche se richiede un po’ di tempo in più per il download in quanto si tratta di un’applicazione utile che useremo nel corso della guida. Si tratta di una GUI realizzata dal team di MongoDB che possiamo usare non solo per interrogare il database, ma per varie operazioni di gestione e analisi. In più presenta al suo interno una shell per interrogare e configurare il database da riga di comando.

In base a quanto abbiamo detto all’inizio di questa lezione, dopo aver completato il processo d’installazione di mongod, abbiamo bisogno di installare un client a riga di comando per collegarsi al server di MongoDB.

Vediamo allora come installare mongosh.

In Windows 10 dovremo procedere al download manuale di mongosh dalla pagina ufficiale

Scegliamo il pacchetto .msi per la nostra versione di Windows.

pagina download MongoDB Shell

Una volta completato il download, seguiamo la procedura d’installazione al termine della quale possiamo aprire cmd.exe e lanciare il comando mongosh --version.

Vediamo ora come collegarci finalmente al database.

Se abbiamo scelto di eseguire MongoDB come servizio, dovremmo avere un’istanza di mongod già in esecuzione. Possiamo effettuare una verifica col seguente comando:

tasklist | find "mongod.exe"

Se il processo è in esecuzione, visualizzeremo alcune informazioni in merito.

A questo punto possiamo eseguire mongosh nella shell e ci apparirà una schermata come quella riportata sotto che ci conferma l’accesso. Come si può notare, al primo avvio visualizzeremo degli avvisi in merito all’assenza di autenticazione. Possiamo trascurare per il momento questi messaggi. Vedremo in futuro come aggiungere degli utenti e limitare i permessi associati a ciascuno di loro.

Se lo riteniamo opportuno, possiamo invece disabilitare la raccolta di dati eseguendo la funzione disableTelemetry().

schermata di avvio installazione di mongodb in windows 10

Se non abbiamo scelto di lanciare mongod come servizio, (ma è comunque possibile eseguire una nuova istanza anche se un’altra è già in esecuzione) possiamo lanciare mongod nella shell dei comandi.

"C:Program FilesMongoDBServer5.0binmongod.exe" --dbpath="c:datadb" --port 27002

Se non vogliamo digitare ogni volta l’intero percorso di mongod.exe, basterà aggiungere la directory C:Program FilesMongoDBServer5.0bin alla variabile d’ambiente PATH.

Possiamo finalmente collegarci tramite mongosh specificando la porta selezionata prima, ovvero lanciando il comando mongosh --port 27002.

Per terminare mongosh basterà eseguire l’istruzione exit.

Installare MongoDB Community Edition in macOS con Homebrew

In macOS completeremo tutte le procedure di installazione tramite shell. Avviamo Terminal, iTerm2 o il vostro terminale preferito e assicuriamoci di avere installato gli strumenti a riga di comando di Xcode eseguendo xcode-select --version. In caso contrario, procediamo all’installazione con il comando xcode-select --install.

Avremo poi bisogno del gestore di pacchetti Homebrew che installiamo con il comando:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Se l’installazione viene completata con successo, saremo in grado di lanciare brew --version. Se il comando brew non è disponibile, è bene accertarsi di aver configurato correttamente la variabile d’ambiente PATH.

Andiamo poi ad aggiungere l’apposita formula ad Homebrew per poter scaricare MongoDB.

brew tap mongodb/brew

Questo comando consentirà a Homebrew di installare MongoDB aggiungendo ulteriori repository all’elenco predefinito.

Siamo finalmente pronti per installare MongoDB Community Edition con il comando:

brew install [email protected]

Se volessimo invece installare un’altra versione o un altro strumento collegato a MongoDB, possiamo sempre controllare quali sono disponibili con il comando brew search mongodb.

L’installazione comprende oltre a mongod anche mongosh e mongo (la vecchia shell). Possiamo verificare che l’installazione sia stata eseguita in maniera corretta con i comandi mongod --version e mongosh --version.

Homebrew si occupa di creare le opportune cartelle per i file di log, per i file necessari al corretto funzionamento del database e per il file di configurazione mongod.conf. Queste saranno usate se decidiamo di lanciare mongod come servizio di macOS.

Il percorso di tali cartelle sui computer con processore Intel è diverso rispetto a quelli con precessore Apple Silicon.

Sui primi, vengono usati i seguenti percorsi:

  • /usr/local/etc/mongod.conf per il file di configurazione
  • /usr/local/var/log/mongodb come cartella per i file di log
  • /usr/local/var/mongodb come cartella per i dati del database

Per i computer con Apple Silicon invece:

  • /opt/homebrew/etc/mongod.conf per il file di configurazione
  • /opt/homebrew/var/log/mongodb come cartella per i file di log
  • /opt/homebrew/var/mongodb come cartella per i dati del database

Possiamo poi decidere se eseguire mongod come servizio o meno. Anche in questo caso, useremo Homebrew.

Per conoscere lo stato dei servizi lanciati con Homebrew, eseguiremo il comando brew services. Se appendiamo --help (brew services --help) otteniamo una lista con tutti i comandi che possiamo eseguire in merito ai servizi, verranno anche mostrati dei semplici esempi pratici.

Per avviare mongod come servizio, lanciamo il comando:

brew services start [email protected]

Per interromperlo invece eseguiamo:

brew services stop [email protected]

In alternativa, possiamo sempre eseguire mongod manualmente e decidere se usare il file di configurazione già creato da Homebrew oppure specificare delle opzioni via linea di comando.

Per esempio, dopo aver creato nella directory utente le cartelle per i dati e il file di log con il comando cd && mkdir -p mongodb/{data,log} possiamo eseguire:

mongod --dbpath "/Users/$(whoami)/mongodb/data/"  
  --logpath "/Users/$(whoami)/mongodb/log/mongodb" 
  --bind_ip 127.0.0.1 --port 27002 --fork

about to fork child process, waiting until server is ready for connections.
forked process: 18880
child process started successfully, parent exiting

Il comando riportato sopra avvia una nuova istanza di mongod specificando le opportune cartelle per --dbpath e --logpath. Il server sarà accessibile solo in locale (--bind_ip 127.0.0.1) sulla porta 27002. Tramite l’opzione --fork stabiliamo che vogliamo eseguire il processo figlio in background. Per far ciò è obbligatorio indicare un percorso per il file di log (–logpath).

Per accertarsi che mongod sia correttamente in esecuzione possiamo usare il comando:

ps -e | grep mongod

Possiamo in caso terminare il processo in background con il comando kill <PID>, per esempio.

kill 18880

Se abbiamo in precedenza lanciato un’altra istanza di mongod come servizio, visualizzeremo due differenti processi che usano cartelle dei dati differenti. Si tratta quindi di due processi distinti e indipendenti.

In ogni caso, sia se abbiamo eseguito mongod come servizio sia se l’abbiamo lanciato manualmente, possiamo usare il client mongosh per collegarci al server via linea di comando. Nel primo caso basterà eseguire semplicemente mongosh visto che mongod usa la porta predefinita 27017, nel secondo caso dovremo indicare la porta scelta, nel nostro caso:

mongosh --port 27002

Come già visto per Windows 10, basterà digitare exit per terminare mongosh.

Anche su macOS è poi possibile installare l’applicazione MongoDB Compass che scarichiamo dal sito ufficiale.

In alternativa possiamo installare MongoDB Compass tramite Homebrew con il comando:

brew install --cask mongodb-compass

Installare MongoDB in Linux

In Linux la procedura d’installazione cambia a seconda della distribuzione installata, per questo motivo è bene riferirsi alla documentazione ufficiale in cui troviamo tutti i dettagli e le spiegazioni necessarie.

In ogni caso si tratta di semplici passaggi da eseguire nel terminale per recuperare ed installare i corretti pacchetti tramite il package manager della nostra distribuzione.

In sintesi, avremo comunque due possibilità:

  • eseguire mongod come servizio;
  • lanciare mongod manualmente;

In entrambi i casi valgono delle considerazioni simili a quelle già fatte per macOS.

Per eseguire mongod manualmente dovremo indicare la cartella per i file del database con l’opzione --dbpath. Se si vuole lanciare un processo in background sarà necessario specificare anche un percorso per il file di log (--logpath).

Potremo collegarci al server via linea di comando grazie a mongosh dovendo eventualmente specificare delle opzioni come --port ecc…

Sempre sul sito ufficiale è possibile trovare le istruzioni per scaricare i pacchetti .deb o .rpm ed installare MongoDB Compass anche sulle distribuzioni Linux supportate.

Installare MongoDB su WSL

Per installare MongoDB su WSL, possiamo invece far riferimento alla documentazione presente sul sito ufficiale di Microsoft dove troveremo tutte le istruzioni necessarie.

Conclusioni

In alternativa ai metodi visti sopra è possibile usare MongoDB in Docker scaricando l’opportuna immagine da Docker Hub.

Infine se non vogliamo installare MongoDB in locale possiamo creare un account e utilizzare un servizio di database completamente gestito come MongoDB Atlas che si occupa di tutte le operazioni di configurazione ed amministrazione permettendoci di concentrare la nostra attenzione solo sull’implementazione dei database. L’unica limitazione, ammesso che lo sia, è la necessità di avere sempre accesso ad internet. MongoDB Atlas è stato sviluppato dallo stesso team di MongoDB e sarà l’argomento della prossima lezione.

Pubblicitร