MongoDB-database-nosql DBMS orientato a documenti

MongoDB-database-nosql

MongoDB-database-nosql (da “humongous”, enorme) è un DBMS non relazionale, orientato a documenti

MongoDB-database-nosql, classificato come un database di tipo NoSQL, MongoDB si allontana dalla struttura tradizionale basata su tabelle dei database relazionali in favore di documenti in stile JSON con schema dinamico (MongoDB chiama il formato BSON), rendendo l’integrazione di dati di alcuni tipi di applicazioni più facile e veloce. Rilasciato sotto una combinazione della GNU Affero General Public License e dell’Apache License, MongoDB è un software libero e open source.

Installazione

Requisiti

Per seguire questo tutorial, avrai bisogno di:

Un server Ubuntu. Segui questa esercitazione iniziale sulla configurazione del server, incluso un utente amministratore non root e un firewall.

Installazione di MongoDB-database

aggiungere il repository dei pacchetti MongoDB su Ubuntu

Per ottenere l’ultima versione di MongoDB, aggiungete il suo repository a Ubuntu, esegui questi comandi per aggiungere la chiave ufficiale del repository.

Innanzitutto, aggiorna l’elenco dei pacchetti per avere la versione più recente degli elenchi dei repository:

Terminale
  • sudo apt-key adv –keyserver hkp://keyserver.ubuntu.com:80 –recv 2930ADAE8CAF5059EE73BB4B58712A2291FA4AD5

Dopo aver aggiunto la chiave del repository a Ubuntu, esegui questi comandi per aggiungere il repository MongoDB al tuo sistema:

Terminale
  • echo “deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.6 multiverse” | sudo tee /etc/apt/sources.list.d/mongodb-org-3.6.list
Terminale
  • sudo apt update
  • sudo apt install -y mongodb

Questo comando installa diversi pacchetti contenenti l’ultima versione stabile di MongoDB, insieme a utili strumenti di gestione per il server. Dopo l’ installazione il server si avvierà automaticamente.

Controllo del servizio e del database

Il processo di installazione ha avviato  automaticamente MongoDB, ma verifhiciamo che il servizio sia avviato e che il database funzioni.

Innanzitutto, controlla lo stato del servizio:

Terminale
  • sudo systemctl status mongodb

Risultato:

● mongodb.service – An object/document-oriented database
Loaded: loaded (/lib/systemd/system/mongodb.service; enabled; vendor preset:
Active: active (running) since Sun 2019-09-08 13:11:27 CEST; 59s ago
Docs: man:mongod(1)
Main PID: 29186 (mongod)
Tasks: 23 (limit: 4469)
CGroup: /system.slice/mongodb.service
└─29186 /usr/bin/mongod –unixSocketPrefix=/run/mongodb –config /etc

Secondo systemd , il server è attivo e funzionante.

Possiamo verificarlo ulteriormente collegandoci effettivamente database del server  eseguendo un comando diagnostico:

Terminale
  • mongo –eval ‘db.runCommand({ connectionStatus: 1 })’mongodb-database-nosql

Ciò genererà la versione corrente del database, l’indirizzo, la porta del server e l’output del comando status:

Status: 1 })’
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
}

Un valore 1 per il campo ok nella risposta indica che il server funziona correttamente.

Successivamente, vedremo come gestire l’istanza del server.

Gestione del servizio MongoDB

MongoDB si installa come un servizio systemd, il che significa che è possibile gestirlo usando i comandi standard systemd insieme a tutti gli altri servizi del sistema Ubuntu.

Per verificare lo stato del servizio, digitare:

Terminale
  • sudo systemctl status mongodb

Per interrompere il server in qualsiasi momento digita:

Terminale
  • sudo systemctl stop mongodb

Per avviare il server quando viene arrestato, digita:

Terminale
  • sudo systemctl start mongodb

Puoi anche riavviare il server con un singolo comando:

Terminale
  • sudo systemctl restart mongodb

Per impostazione predefinita, MongoDB è configurato per l’avvio automatico con il server. Se desiderate disabilitare l’avvio automatico, digitate:

Terminale
  • sudo systemctl disable mongodb

È altrettanto facile riattivarlo con:

Terminale
  • sudo systemctl enable mongodb

Connettere MongoDB a un server

Aprite un terminale e digitate:

Terminale
  • mongo –host 127.0.0.1:27017

MongoDB shell version v3.6.3
connecting to: mongodb://127.0.0.1:27017/
MongoDB server version: 3.6.3
Welcome to the MongoDB shell.
For interactive help, type “help”.
For more comprehensive documentation, see
http://docs.mongodb.org/
Questions? Try the support group
http://groups.google.com/group/mongodb-user
Server has startup warnings:
2019-09-08T13:11:27.650+0200 I STORAGE [initandlisten] 2019-09-08T13:11:27.650+0200 I STORAGE [initandlisten] ** WARNING: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine
2019-09-08T13:11:27.650+0200 I STORAGE [initandlisten] ** See http://dochub.mongodb.org/core/prodnotes-filesystem
2019-09-08T13:11:29.674+0200 I CONTROL [initandlisten] 2019-09-08T13:11:29.674+0200 I CONTROL [initandlisten] ** WARNING: Access control is not enabled for the database.
2019-09-08T13:11:29.674+0200 I CONTROL [initandlisten] ** Read and write access to data and configuration is unrestricted.
2019-09-08T13:11:29.674+0200 I CONTROL [initandlisten]

Aggiunta dell’utente amministratore

Se volete abilitare l’autenticazione eseguite, dopo aver effettuato l’accesso al server MongoDB, i comandi per creare un nuovo utente amministratore.

Terminale
  • > use admin

Crea un nuovo utente amministratore:

Terminale
  • db.createUser({user:”admin”, pwd:”qui_nuova_password”, roles:[{role:”root”, db:”admin”}]})

Se tutto è andato bene dovresti vedere l’ amministratore:

Successfully added user: {
“user” : “admin”,
“roles” : [
{
“role” : “root”,
“db” : “admin”
}
] }

 

Esci e continua di seguito per abilitare l’autenticazione di accesso MongoDB. Esegui i seguenti comandi per aprire il file di configurazione MongoDB:

Terminale
  • sudo gedit /lib/systemd/system/mongod.service

Quindi cambia la linea in modo da assomigliare a quella qui sotto poi salva:

[Unit] Description=High-performance, schema-free document-oriented database
After=network.target
Documentation=https://docs.mongodb.org/manual

[Service] User=mongodb
Group=mongodb
ExecStart=/usr/bin/mongod –auth –config /etc/mongod.conf
PIDFile=/var/run/mongodb/mongod.pid
# file size

Salva ed esci

Per applicare le modifiche riavviare:

Terminale
  • sudo systemctl daemon-reload
  • sudo service mongod restart

Ora solo gli utenti con autorizzazione potranno accedere al database server:

Terminale
  • mongo -u admin -p new_password_here –authenticationDatabase admin

Regolazione del firewall (opzionale)

Supponendo di aver seguito le istruzioni del tutorial di configurazione iniziale del server per abilitare il firewall sul server, il server MongoDB sarà inaccessibile da Internet.

Se si intende utilizzare il server MongoDB solo localmente con applicazioni in esecuzione sullo stesso server, questa è l’impostazione consigliata e sicura. Tuttavia, se desideri connetterti al tuo server MongoDB da Internet, devi consentire le connessioni in entrata su ufw .

Per consentire l’accesso a MongoDB sulla sua porta predefinita 27017 da qualsiasi luogo, potete utilizzare sudo ufw allow 27017. Tuttavia, abilitare l’accesso a Internet al server MongoDB su un’installazione predefinita offre a chiunque l’accesso illimitato al database  server  e ai suoi dati.

Nella maggior parte dei casi, MongoDB dovrebbe essere accessibile solo da determinate posizioni, come un altro server che ospita un’applicazione. Per eseguire questa operazione,  consentite l’accesso sulla porta predefinita di MongoDB specificando l’indirizzo IP di un altro server a cui sarà esplicitamente consentito di connettersi:

Terminale
  • sudo ufw allow from your_other_server_ip/32 to any port 27017

Verifica la modifica delle impostazioni del firewall con ufw:

Terminale
  • sudo ufw status

27017 dovrebbe essere visualizzato il traffico verso la porta 27017:

Output

Status: active

To Action From
— —— —-
OpenSSH ALLOW Anywhere
27017 ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
27017 (v6) ALLOW Anywhere (v6)

Hai consentito a un solo indirizzo IP di connettersi al server MongoDB,  anziché nell’output l’indirizzo IP verrà elencato della posizione consentita.

Puoi trovare impostazioni firewall più avanzate per limitare l’accesso ai servizi in UFW Essentials: Comandi e regole firewall comuni.

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

Apri il file di configurazione di MongoDB nel tuo editor:

Terminale
  • sudo gedit /etc/mongodb.conf

Aggiungi l’ indirizzo IP al valore del tuo server bindIP:


logappend=true

bind_ip = 127.0.0.1,your_server_ip
#port = 27017

Assicurati di inserire una virgola tra l’indirizzo IP esistente e quello che hai aggiunto.

Salvare il file, esci dall’editor e riavvia MongoDB:

Terminale
  • sudo systemctl restart mongodb

Rimuovere

rimuovere completamente MongoDB

Per rimuovere completamente MongoDB da un sistema, è necessario rimuovere le stesse applicazioni MongoDB, i file di configurazione e tutte le directory contenenti dati e registri.

Arrestare il database server

Terminale
  • sudo systemctl stop mongod.service

Rimuovi tutti i pacchetti:

Terminale
  • sudo apt purge mongodb-org*

Infine, rimuovere i database MongoDB e i file di registro:

Terminale
  • sudo rm -r /var/log/mongodb
  • sudo rm -r /var/lib/mongodb

Controlliamo

Terminale
  • dpkg -l | grep mongo

Articoli Correlati

trasmission-2-93-ubuntu
deluge-bit-torrent
installare-utorrent-su-ubuntu-20-04
ufw-firewall-ubuntu-20-04


Grazie! per l’utilizzo della Guida di Linuxiano.

Trovi questo tutorial utile? Condividi con i tuoi amici per tenerlo in vita.
Sii il primo a commentare, apprezzo i tuoi suggerimenti. Per ulteriori domande potete commentare qui sotto.