MongoDB è un database di documenti, che memorizza i dati in forma simile a JSON, che è un approccio rivoluzionario in contrasto con i database relazionali tradizionali. Ciò non significa che i database SQL si estingueranno presto; saranno qui per molto tempo quando avrai bisogno di memorizzare dati strutturati.
Detto questo, MongoDB ottiene sempre più casi d'uso; la capacità di archiviare i dati in una forma che può cambiare al volo sono cose con cui bisogna tenere conto.
In questo tutorial installeremo l'ultima versione della community di questo database NoSQL su un RHEL 8 / CentOS 8, utilizzando il pacchetto tarball. Affinché ciò funzioni senza problemi, imposteremo l'ambiente minimo e testeremo la nostra configurazione e il servizio in esecuzione.
In questo tutorial imparerai:
- Come scaricare ed estrarre il tarball di MongoDB
- Come configurare l'ambiente per il servizio
- Come gestire il servizio mongod
- Come accedere a mongo shell, inserire e interrogare dati di esempio

Requisiti e convenzioni software utilizzati
Categoria | Requisiti, convenzioni o versione del software utilizzata |
---|---|
Sistema | RHEL 8 / CentOS 8 |
Software | MongoDB 4 |
Altro | Accesso privilegiato al tuo sistema Linux come root o tramite sudo comando. |
Convenzioni | # – richiede che i comandi linux dati vengano eseguiti con i privilegi di root direttamente come utente root o usando sudo comando$ – richiede che i comandi linux dati vengano eseguiti come un normale utente non privilegiato |
Come installare mongodb su RHEL 8 / CentOS 8 istruzioni passo passo
Abbiamo bisogno di raccogliere un URL prima dell'installazione. Per questo, dobbiamo visitare il sito della community MongoDB Download Center, selezionare il sistema operativo e la versione (Linux 64bit legacy in questo caso, abbiamo bisogno del tarball). Sebbene ci venga fornito un pulsante di download, otteniamo anche un URL diretto di seguito, che possiamo utilizzare direttamente dalla macchina di destinazione.
Questo ci evita di scaricare il pacchetto tramite il browser e quindi di trasferirlo sulla macchina di destinazione, a condizione che disponiamo dell'accesso a Internet dalla destinazione. Quindi prendi nota dell'URL, lo useremo a breve.
- Memorizzeremo i binari in
/opt
. Sulla macchina di destinazione, entriamo nella directory:# cd /opt
E scarica il tarball fornendo l'URL acquisito in precedenza a
wget
:# wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-4.0.5.tgz --2019-01-03 16:49:59-- https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-4.0.5.tgz Resolving fastdl.mongodb.org (fastdl.mongodb.org)... 52.222.150.27, 52.222.150.229, 52.222.150.45, ... Connecting to fastdl.mongodb.org (fastdl.mongodb.org)|52.222.150.27|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 73214518 (70M) [application/x-gzip] Saving to: 'mongodb-linux-x86_64-4.0.5.tgz' mongodb-linux-x86_64-4.0.5.tgz 100%[================================================================================================================>] 69.82M 3.12MB/s in 23s 2019-01-03 16:50:22 (3.06 MB/s) - 'mongodb-linux-x86_64-4.0.5.tgz' saved [73214518/73214518]
- Estraiamo il tarball:
# tar -zxvf mongodb-linux-x86_64-4.0.5.tgz
E crea un collegamento simbolico più facile da ricordare chiamato
mongodb
che punta alla directory estratta (il numero di versione potrebbe essere diverso):# ln -s mongodb-linux-x86_64-4.0.5 mongodb
- Creiamo l'utente che eseguirà il servizio chiamato
mongod
:# useradd mongod
- Creiamo la directory in cui mongodb memorizzerà i suoi dati:
# mkdir -p /var/lib/mongo
- Impostiamo il
mongod
user come proprietario sia dei binari che della directory dei dati:# chown -R mongod:mongod /opt/mongodb* # chown -R mongod: /var/lib/mongo
- Creiamo un file di configurazione di base per mongodb. Specifichiamo la directory dei dati creata e impostiamo il database in ascolto solo su localhost, sulla porta predefinita
27017
. Creiamo il file di testo/etc/mongod.conf
con il seguente contenuto:storage: dbPath: "/var/lib/mongo" journal: enabled: true net: port: 27017 bindIp: "127.0.0.1"
Notare il
dbPath
parametro, che abbiamo impostato sulla directory che abbiamo creato per l'archiviazione dei dati in un passaggio precedente. - Per
systemd
per poter gestire il servizio, creiamo il file di testo/etc/systemd/system/mongod.service
con configurazione minima:[Unit] Description=MongoDB After=syslog.target network.target [Service] Type=simple User=mongod Group=mongod ExecStart=/opt/mongodb/bin/mongod --config /etc/mongod.conf [Install] WantedBy=multi-user.target
Nota che abbiamo usato il
mongod
utente e gruppo, ha utilizzato il nostro percorso personalizzato permongod
binario e includeva il file di configurazione che abbiamo creato a mano. - Impostiamo
selinux
per ora permissiva, in quanto bloccherebbe l'accesso alle risorse del servizio. Impostazione diselinux
policy non rientra nell'ambito di questo tutorial.# setenforce 0
- Chiederemo
systemd
per ricaricare:systemctl daemon-reload
- E controlla se il servizio è riconosciuto:
# systemctl status mongod mongod.service - MongoDB Loaded: loaded (/etc/systemd/system/mongod.service; disabled; vendor preset: disabled) Active: inactive (dead)
- Siamo pronti per avviare il servizio:
# systemctl start mongod
- E controlla il suo stato. Se tutto va bene, dovremmo vedere qualcosa di simile al seguente:
# systemctl status mongod mongod.service - MongoDB Loaded: loaded (/etc/systemd/system/mongod.service; disabled; vendor preset: disabled) Active: active (running) since Thu 2019-01-03 17:01:48 CET; 4s ago Main PID: 2993 (mongod) Tasks: 23 (limit: 12544) Memory: 45.3M CGroup: /system.slice/mongod.service 2993 /opt/mongodb/bin/mongod --config /etc/mongod.conf
- Possiamo testare il nostro servizio con
mongo shell
, un'interfaccia a riga di comando fornita con MongoDB. Per potervi accedere, dobbiamo includere i binari che abbiamo estratto nel$PATH
. Come amministratori pigri, lo facciamo solo una volta, in modo permanente. Aggiungiamo la seguente riga a/root/.bash_profile
, prima l'ultima riga "export PATH":## mongodb PATH=$PATH:/opt/mongodb/bin
Ed esegui lo script:
# . ~/.bash_profile
- Iniziamo la
mongo shell
:# mongo MongoDB shell version v4.0.5 connecting to: mongodb://127.0.0.1:27017/?gssapiServiceName=mongodb Implicit session: session { "id" : UUID("8999342b-e313-48e6-92c4-bf6b07cee0e4") } MongoDB server version: 4.0.5 Welcome to the MongoDB shell. For interactive help, type "help". [...] >
Potrebbero essere presenti alcuni avvisi di avvio, come impostazioni di pagine enormi, ma li ignoreremo in questo tutorial.
- Sulla
mongo shell
, chiederemo eventuali database presenti:> db test
- E passa al
test
spedito database:> use test switched to db test
- Inseriamo alcuni dati di test (chiave "x" con valore "1") in una raccolta creata al volo:
> db.exampleCollection.insertOne( { x: 1 } ); { "acknowledged" : true, "insertedId" : ObjectId("5c2e33040854f2d89326ae9c") } >
- E infine interroghiamo tutti i dati nella nuova raccolta, verificando che la nostra coppia chiave-valore sia stata archiviata correttamente:
> db.getCollection("exampleCollection").find().pretty(); { "_id" : ObjectId("5c2e4c2fd129ceef6a6c6112"), "x" : 1 } >