MongoDB-database-nosql DBMS orientato a documenti | Linuxiano.it
Privacy Policy

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.

Sviluppato inizialmente dalla società di software 10gen (ora diventata MongoDB Inc.) nell’ottobre 2007 come un componente di un prodotto di platform as a service, l’azienda si è spostata verso un modello di sviluppo open source nel 2009, con 10gen in grado di offrire un supporto commerciale e altri servizi.Da allora, MongoDB è stato adottato come backend da un alto numero di grandi siti web e societa di servizi come Craigslist, eBay, Foursquare, SourceForge e il New York Times, tra gli altri. MongoDB è il più popolare database NoSQL.

Installazione

Prerequisiti

Per seguire questo tutorial, avrai bisogno di:

Un server Ubuntu 18.04 impostato seguendo questa esercitazione iniziale sulla configurazione del server, incluso un utente sudo non root e un firewall.

Installazione di MongoDB-database

aggiungere il repository dei pacchetti MongoDB su Ubuntu

Per ottenere l’ultima versione di MongoDB, dobbiamo aggiungere il suo repository a Ubuntu, per farlo, 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 MongoDB. Il server database viene avviato automaticamente dopo l’installazione.

Controllo del servizio e del database

Il processo di installazione ha avviato MongoDB automaticamente, ma verificiamo 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 MongoDB è attivo e funzionante.mongodb-database-nosql

Possiamo verificarlo ulteriormente collegandoci effettivamente al server di database ed eseguendo un comando diagnostico:mongodb-database-nosql

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

Ciò genererà la versione corrente del database, l’indirizzo e 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 di sistema in 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 si desidera disabilitare l’avvio automatico, digitare:

Terminale
  • sudo systemctl disable mongodb

È altrettanto facile riattivarlo con:

Terminale
  • sudo systemctl enable mongodb

Connettere MongoDB ua 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, eseguire i comandi per creare un nuovo utente amministratore dopo aver effettuato l’accesso al server MongoDB.

Terminale
  • > use admin

Quindi esegui i comandi seguenti per creare un nuovo utente amministratore:

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

Dovresti vedere la creazione di un utente 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 evidenziata per assomigliare a quella qui sotto e 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

Riavvia MongDB per applicare le modifiche:

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

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

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 essere in grado di connetterti al tuo server MongoDB da Internet, devi consentire le connessioni in entrata in ufw .

Per consentire l’accesso a MongoDB sulla sua porta predefinita 27017 da qualsiasi luogo, è possibile 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 server di database e ai suoi dati.

Nella maggior parte dei casi, MongoDB dovrebbe essere accessibile solo da determinate posizioni attendibili, come un altro server che ospita un’applicazione. Per eseguire questa attività, è possibile consentire 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, invece che 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 server database

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

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.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.

Iscriviti al sito

Il tuo nome (richiesto)

La tua email (richiesto)

Oggetto

Il tuo messaggio


Ho letto

l’informativa Privacy

e autorizzo il trattamento dei miei dati personali per le finalità ivi indicate.

Risolvi il reCAPTCHA per dimostrare che non sei un robot:
[recaptcha]

clicca qui per tornare a Linuxiano