In questo articolo, ti mostreremo come installare MongoDB, gestirne i servizi e consentire connessioni remote su un VPS Ubuntu 18.04.
MongoDB è un sistema di gestione di database open source che appartiene a una famiglia di NoSQL. NoSQL è diverso dai tradizionali database SQL basati su tabelle (MySQL e PostgreSQL):i dati sono archiviati in documenti flessibili simili a JSON senza uno schema predefinito, che consente di apportare grandi modifiche ai database senza tempi di inattività. Iniziamo con l'installazione.
Fase 1:connettiti al tuo server
Prima di iniziare, devi connetterti al tuo server tramite SSH come utente root. Per fare ciò, usa il seguente comando:
ssh root@IP_Address -p port_number
Dovrai sostituire IP_Address e port_number con il tuo attuale indirizzo IP del server e numero di porta SSH. Se non hai accesso all'account root, puoi invece utilizzare un account con privilegi sudo.
Una volta effettuato l'accesso, assicurati che il tuo server sia aggiornato eseguendo i seguenti comandi:
sudo apt update sudo apt upgrade
Fase 2:installazione di MongoDB
I repository dei pacchetti software ufficiali di Ubuntu vengono forniti con la versione 3.6.3 di MongoDB, ma in questo articolo installeremo MongoDB 4.0 che è l'ultima versione disponibile. Tuttavia, puoi sempre verificare se è disponibile una nuova versione di MongoDB sul loro sito Web ufficiale.
Per installare MongoDB 4.0 Community Edition su Ubuntu, è necessario importare la chiave pubblica utilizzata dal sistema di gestione dei pacchetti. Possiamo farlo con il seguente comando:
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4
Poiché ora abbiamo importato la chiave, possiamo aggiungere il repository MongoDB con questa riga successiva:
sudo add-apt-repository 'deb [arch=amd64] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.0 multiverse'
Quindi aggiorniamo l'elenco dei pacchetti:
sudo apt update
A questo punto, il repository è abilitato e l'elenco dei pacchetti viene aggiornato:ora possiamo continuare con l'installazione del pacchetto MongoDB CE immettendo il seguente comando:
sudo apt install mongodb-org
I pacchetti mongodb-org-server, mongodb-org-mongos, mongodb-org-shell e mongodb-org-tools verranno installati sul tuo sistema come parte del pacchetto mongodb-org.
La MongoDB 4.0 Community Edition è ora installata sul server. Dobbiamo quindi avviare il servizio MongoDB e abilitarlo per l'avvio all'avvio.
sudo systemctl start mongod sudo systemctl enable mongod
Per verificare l'installazione di MongoDB, possiamo verificare lo stato della connessione digitando il comando:
mongo --eval 'db.runCommand({ connectionStatus: 1 })'
Dovresti avere un output simile a questo:
MongoDB shell version v4.0.6 connecting to: mongodb://127.0.0.1:27017/?gssapiServiceName=mongodb Implicit session: session { "id" : UUID("c806e0e1-ab30-4d41-b882-026c09d2893f") } MongoDB server version: 4.0.6 { "authInfo" : { "authenticatedUsers" : [ ], "authenticatedUserRoles" : [ ] }, "ok" : 1 }
Congratulazioni, hai installato con successo MongoDB sul tuo server. Il passaggio successivo riguarderà la configurazione del server MongoDB.
Fase 3:configurazione di MongoDB
Possiamo configurare l'istanza MongoDB modificando il mongod.conf
file, che si trova in /etc/
. Useremo Nano per modificare il file, ma puoi usare il tuo editor di testo preferito, se lo desideri.
sudo nano /etc/mongod.conf
Al fine di consentire connessioni remote e proteggere meglio MongoDB, apporteremo alcune modifiche al file di configurazione. MongoDB per impostazione predefinita ascolta solo le connessioni sulla porta 27017 su localhost (IP 127.0.0.1). Per consentire una connessione MongoDB remota, è necessario aggiungere l'indirizzo IP del server al file di configurazione di MongoDB. Questo è mostrato come esempio di seguito:
bind_ip = 127.0.0.1, your_server_ip #port = 27017 security: authorization: enabled
Abbiamo anche incluso un'opzione di autorizzazione che regolerà l'accesso degli utenti ai database MongoDB. Se l'opzione di autorizzazione non è abilitata, ogni utente avrà accesso a tutti i database MongoDB e potrà eseguire qualsiasi azione, il che rappresenta un rischio per la sicurezza. Dopo aver salvato le modifiche nel file di configurazione di MongoDB, è necessario riavviare il servizio MongoDB con il seguente comando affinché le modifiche abbiano effetto:
sudo systemctl restart mongod
Fase 4:creazione di un utente amministrativo MongoDB
Poiché abbiamo configurato il server MongoDB e abilitato l'opzione di autenticazione, ora dobbiamo creare un account utente MongoDB amministrativo che verrà utilizzato per gestire l'istanza MongoDB.
Per accedere alla mongo shell, digita:
mongo
Successivamente, utilizzeremo il seguente comando per connetterci al database dell'amministratore:
use admin
Uscita:
switched to db admin
Eseguiremo il seguente comando per creare un nuovo utente amministrativo chiamato mongo_admin con il ruolo userAdminAnyDatabase:
db.createUser( { user: "mongo_admin", pwd: "Strong_Pas$w0rd", roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] } )
E otterremo questo come output:
Successfully added user: { "user" : "mongo_admin", "roles" : [ { "role" : "userAdminAnyDatabase", "db" : "admin" } ] }
Non dimenticare di sostituire "Strong_Pas$w0rd" con una password efficace. Ora possiamo uscire da mongo shell:
quit()
Fase 5:verifica dell'accesso dell'utente amministrativo
Per confermare le modifiche, accederemo alla mongo shell utilizzando l'utente mongo_admin che abbiamo creato:
mongo -u mongo_admin -p --authenticationDatabase admin use admin show users
E se hai seguito tutti i passaggi finora, dovresti avere il seguente output:
Uscita:
> use admin switched to db admin > show users { "_id" : "admin.mongo_admin", "user" : "mongo_admin", "db" : "admin", "roles" : [ { "role" : "userAdminAnyDatabase", "db" : "admin" } ], "mechanisms" : [ "SCRAM-SHA-1", "SCRAM-SHA-256" ] }
Puoi anche provare a elencare gli utenti quando accedi alla shell mongo (senza argomenti) e utilizzare gli stessi comandi che usavamo prima.
Fase 6:consenti l'accesso remoto a MongoDB nel firewall
In questo passaggio, forniremo l'accesso remoto al nostro MongoDB consentendolo nel nostro firewall. Se non utilizzi alcun firewall sul tuo server, puoi saltare questo passaggio. La porta predefinita di MongoDB è 27017, quindi nei nostri esempi ti mostreremo come consentire questa porta attraverso il tuo firewall.
Se stai utilizzando UFW (Uncomplicated Firewall), puoi utilizzare i seguenti suggerimenti su come consentire a MongoDB di essere accessibile in remoto.
Per consentire l'accesso a MongoDB sulla sua porta predefinita (27017) da qualsiasi luogo, puoi utilizzare il seguente comando:
sudo ufw allow 27017
Per consentire l'accesso a MongoDB sulla sua porta predefinita 27017 solo da un indirizzo IP specifico, puoi utilizzare il comando:
sudo ufw allow from allowed_IP_address/32 to any port 27017
Dovrai modificare l'indirizzo IP consentito con l'indirizzo IP effettivo che desideri utilizzare.
Puoi confermare la modifica alle impostazioni del firewall con:
sudo ufw status
Uscita:
Status: active To Action From -- ------ ---- 27017 ALLOW Anywhere OpenSSH ALLOW Anywhere 27017 (v6) ALLOW Anywhere (v6) OpenSSH (v6) ALLOW Anywhere (v6)
Fase 7:connettiti a MongoDB
Ora che abbiamo installato e configurato MongoDB, dobbiamo menzionare alcuni modi diversi su come connettersi ad esso. Dobbiamo assicurarci che la nostra configurazione MongoDB funzioni prima di tentare di accedere alla shell Mongo.
Istanza MongoDB locale su porta predefinita
La connessione più basilare alla mongo shell è semplicemente eseguire il comando mongo senza alcun argomento:
mongo
Istanza MongoDB locale su una porta non predefinita
Se vogliamo connetterci alla shell Mongo su una porta specifica, possiamo usare:
mongo --port port_number
Sostituisci port_number con il tuo numero di porta effettivo.
Istanza MongoDB su un host remoto
Se dobbiamo connetterci a una macchina host remota con l'istanza MongoDB, possiamo utilizzare i seguenti modi:
Possiamo specificare una stringa di connessione.
mongo mongodb://your_domain_name.com:port_number
Possiamo usare l'opzione della riga di comando –host
mongo --host your_domain_name.com:port_number
oppure possiamo usare –host
mongo --host your_domain_name.com --port port_number
Istanza MongoDB con autenticazione
Utilizzeremo questi esempi per mostrarti come connetterti a un'istanza MongoDB che richiede l'autenticazione.
Possiamo definire il nome utente, il database di autenticazione e il numero di porta nella nostra stringa di connessione. Inoltre, possiamo definire la password (che è facoltativa) nella nostra stringa di connessione. Se la password non è definita nella nostra stringa di connessione, la shell richiederà la password.
mongo --host mongodb://user@your_domain_name.com:port_number/?authSource=admin
Possiamo usare le opzioni della riga di comando –username
mongo --username user --password --authenticationDatabase admin --host your_domain_name.com --port port_number
Connettiti a un set di repliche MongoDB
Possiamo specificare il nome del set di repliche e i membri nella stringa di connessione.
mongo mongodb://your_domain_name.com.local:port_number,mongodb1.your_domain_name.com.local:port_number,mongodb2.your_domain_name.com.local:port_number/?replicaSet=replA
Se stai utilizzando il formato di connessione seedlist DNS, puoi specificare la stringa di connessione:
mongo "mongodb+srv://server.your_domain_name.com/"
È possibile specificare il nome del set di repliche e i membri da –host
mongo --host replA/your_domain_name.com.local:port_number,mongodb1.your_domain_name.com.local:port_number,mongodb2.your_domain_name.com.local:port_number
Connessione TLS/SSL
Possiamo specificare l'opzione ssl=true nella stringa di connessione.
mongo mongodb://your_domain_name.com.local:port_number,mongodb1.your_domain_name.com.local:port_number,mongodb2.your_domain_name.com.local:port_number/?replicaSet=replA&ssl=true
oppure possiamo specificare –ssl nella riga di comando e utilizzare l'esempio precedente su come connettersi al set di repliche denominato replA:
mongo --ssl --host replA/your_domain_name.com.local:port_number,mongodb1.your_domain_name.com.local:port_number,mongodb2.your_domain_name.com.local:port_number
Se desideri utilizzare i comandi precedenti, non dimenticare di sostituire i valori come tuo_nome_dominio.com, nome_host, utente e replA nei comandi con i valori effettivi.
Fase 8:disinstalla MongoDB
Se per qualsiasi motivo non ti piace MongoDB e devi rimuoverlo dal tuo sistema, puoi seguire questi comandi:
sudo service mongod stop sudo apt purge mongodb-org* sudo rm -r /var/log/mongodb sudo rm -r /var/lib/mongodb
In questo articolo, ti abbiamo mostrato come installare MongoDB, personalizzare il firewall, creare un utente amministratore, abilitare l'accesso remoto, connettersi a MongoDB e come disinstallare e rimuovere MongoDB. Ora puoi utilizzare questa conoscenza e iniziare a costruire i tuoi progetti in questa meravigliosa applicazione.
Ovviamente, se sei uno dei nostri clienti di hosting Ubuntu o se hai uno dei nostri piani di hosting MongoDB gestito, non devi installare MongoDB sul tuo VPS Ubuntu 18.04:chiedi semplicemente ai nostri amministratori, siediti e rilassati. I nostri amministratori installeranno immediatamente MongoDB su Ubuntu 18.04 per te.
PS . Se ti è piaciuto questo post su come installare MongoDB su un VPS Ubuntu 18.04 , condividilo con i tuoi amici sui social network utilizzando i pulsanti qui sotto, o lascia semplicemente un commento nella sezione commenti. Grazie.
Nuova versione disponibile qui:Come installare MongoDB su Ubuntu 20.04 e CentOS 8.