PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Come installare PostgreSQL 12 su Ubuntu 20.04 DigitalOcean

Caratteristiche e casi d'uso di PostgreSQL

PostgreSQL è un DBMS (Database Management System) relazionale a oggetti open source. È un sistema avanzato di gestione e analisi del database utilizzato principalmente per piattaforme di eCommerce, transazioni di pagamento e varie soluzioni di data warehousing. È in circolazione da oltre 30 anni e viene aggiornato regolarmente ogni anno, supporta varie funzioni SQL come trigger, tipi e funzioni definiti dall'utente, sottoquery, ecc.

PostgreSQL è uno dei database open source più avanzati al mondo. È adatto per diversi casi d'uso di produzione e sviluppo. Offre numerosi vantaggi come il partizionamento migliorato e le prestazioni delle query (in particolare su set di dati di grandi dimensioni), miglioramenti dell'albero B per un utilizzo ottimale dello spazio, statistiche MCV (Multi-Column Most Common Value), espressioni di tabelle comuni con integrazione delle query e controllo del checksum.

Qualche parola su Ubuntu 20.04 su DigitalOcean

Ubuntu è un popolare sistema operativo desktop open source. Ubuntu 20.04 include numerose funzionalità all'avanguardia, come uno strumento per gestire gli snapshot ZFS, un importante aumento del kernel e miglioramenti della sicurezza. La piattaforma cloud di DigitalOcean fornisce un'infrastruttura solida e una disponibilità globale per sviluppare, gestire e scalare le applicazioni nel cloud. Con i suoi prodotti di elaborazione, archiviazione, database e networking, gli sviluppatori possono creare applicazioni Web e mobili, servizi di streaming, giochi, soluzioni SaaS e altro ancora. Offrendo funzionalità come reti private condivise, strumenti DevOps con un clic e dischi rigidi SSD, DigitalOcean è una scelta flessibile, sicura e semplice per soluzioni mission-critical.

Questo tutorial fornisce istruzioni dettagliate su come installare PostgreSQL su DigitalOcean Ubuntu 20.04. Senza ulteriori indugi, iniziamo!

Vuoi configurare PostgreSQL automaticamente in pochi clic?

Scopri di più su come ScaleGrid può aiutarti a distribuire PostgreSQL su DigitalOcean in pochi minuti e completa l'intero processo di installazione, configurazione e installazione! Dai un'occhiata alla nostra pagina PostgreSQL su DigitalOcean per vedere come ScaleGrid ti consente di concentrarti maggiormente sullo sviluppo del tuo prodotto e meno sulla gestione dei database. Oppure segui semplicemente la nostra semplice guida su come iniziare a utilizzare PostgreSQL su DigitalOcean con ScaleGrid e prova tu stesso con la nostra prova gratuita di 30 giorni!

Prerequisiti per l'installazione di PostgreSQL

Prima di addentrarci nell'effettiva installazione di PostgreSQL 12 su DigitalOcean Ubuntu 20.04, devi assicurarti che il tuo sistema soddisfi i seguenti prerequisiti.

  • Il server dovrebbe avere almeno un firewall UFW di base per garantire che siano consentite solo le connessioni a determinati servizi.
  • Il sistema dovrebbe essere aggiornato per una nuova istanza del server e riavviato. Per farlo, usa i seguenti comandi:
    • sudo apt update && sudo apt upgrade –y
    • sudo reboot

Installazione di PostgreSQL su Ubuntu 20.04 DigitalOcean

Puoi installare PostgreSQL 12 usando i repository ufficiali/predefiniti di Ubuntu 20.04 usando il sistema di gestione dei pacchetti apt. Prima di farlo, dovresti già aver aggiornato l'indice del pacchetto locale del tuo server (vedi prerequisiti sopra).

Il repository contiene diversi pacchetti (inclusi componenti aggiuntivi di terze parti) come:

  • client postgresql
  • postgresql
  • libpq-dev
  • postgresql-server-dev
  • pacchetti pgadmin

Quindi installa il pacchetto PostgreSQL 12 completo insieme al modulo postgresql-contrib che fornisce utilità e funzionalità aggiuntive. Questo può essere installato eseguendo il seguente comando:

sudo apt install postgresql postgresql-contrib –y

Quindi avvia il servizio PostgreSQL al riavvio del sistema eseguendo il comando seguente:

sudo systemctl start postgresql

Per avviare automaticamente il servizio PostgreSQL all'avvio del sistema, eseguire:

sudo systemctl enable postgresql

Verifica che il servizio PostgreSQL sia in esecuzione come previsto eseguendo systemctl status postgresql:

sudo systemctl status postgresql

Questo dovrebbe restituire lo stato del servizio PostgreSQL e dovrebbe essere attivo, in modo simile allo screenshot qui sotto.

Personalizzazione dell'inizializzazione di PostgreSQL

Dopo l'installazione, è possibile creare un cluster di database con l'aiuto del comando initdb. Il comando initdb deve essere eseguito dall'utente del database e non dall'utente root. L'utente root può creare una directory vuota che può essere chown (comando cambia proprietario) dall'utente postgres. Questa directory conterrà i dati come un modello, che verrà copiato in tutti i database per impostazione predefinita. Dall'utente postgres, il seguente comando può essere invocato con l'opzione appropriata e il nome della directory.

initdb [option...] [ --pgdata | -D ] directory

Il comando initdb può essere eseguito come utente autenticato con i diversi flag per creare un modello db in una determinata directory.

Di seguito è riportato un elenco di flag specifici come mostrato nello screenshot qui sopra:

  • --encoding UTF8 (può essere qualsiasi in base alle impostazioni internazionali).
    • Il flag di codifica imposta la codifica del modello di database. Tutti i database creati utilizzando quel modello utilizzeranno anche lo stesso metodo di codifica, a meno che non sia specificato separatamente. Sono disponibili molti metodi di codifica per diverse lingue.
  • --pgdata test (questo flag crea una directory denominata "test" per memorizzare i dati del database).
    • Specifica la directory in cui il cluster di database salva i propri dati.
  • -A peer (questo specifica il metodo di autenticazione utilizzato nel file pg_hba.conf).
    • Specifica il metodo di autenticazione predefinito per gli utenti locali utilizzato in pg_hba.conf (linee host e locali). initdb prepopolare le voci pg_hba.conf utilizzando il metodo di autenticazione specificato per le connessioni non di replica e di replica.
  • -k (usa il checksum dei dati per controllare gli errori di I/O)
    • Specifica il checksum dei dati su tutte le pagine di dati per rilevare il danneggiamento del sistema di I/O. Tuttavia, questo rallenta la velocità di elaborazione del database).

Protezione del database PostgreSQL

Durante l'installazione, per impostazione predefinita, viene creato automaticamente un nuovo utente chiamato postgres. Questo utente dispone dei privilegi di sistema completi, quindi è importante proteggere l'account utente con una password complessa.

sudo passwd postgres

Ora passa all'account utente postgres. L'utente dovrebbe disporre dei privilegi sudo.

sudo su – postgres

La versione di PostgreSQL può essere confermata eseguendo

psql -c "SELECT version();"

Per cambiare la password di postgres comando di utilizzo dell'utente:

psql -c "ALTER USER postgres WITH PASSWORD 'MyNewPassword'";

Nota:questa password si applica solo quando il postgres l'utente si connette a PostgreSQL tramite la rete.

Per accedere al database Postgres puoi accedere al database PostgreSQL con:

psql postgres

Per impostazione predefinita, PostgreSQL non richiede l'autenticazione tramite password da parte degli utenti del sistema locale per accedere al database. Questo è chiamato "autenticazione peer". Tuttavia, l'autenticazione della password può essere abilitata da pg_hba.conf file.

Per modificare questo pg_hba.conf file, usa \q comando per uscire dalla shell postgres ed entrare nella shell di Linux. Dall'interno della shell di Linux, modifica il pg_hba.conf file. Assicurati di eseguire un backup prima di modificare il file.

sudo cp /etc/postgresql/12/main/pg_hba.conf /etc/postgresql/12/main/pg_hba.conf.bak

Quindi modifica il file utilizzando l'editor nano,

nano /etc/postgresql/12/main/pg_hba.conf

Trova la linea locale in "Solo connessioni socket di dominio Unix" e cambia il METHOD attributo da peer a md5 .

Ricarica il servizio PostgreSQL per applicare le nuove impostazioni.

sudo systemctl reload postgresql

Si prega di notare qui che ci sono due utenti con il nome postgres; uno è l'utente Linux per connettersi e accedere al database e l'altro è l'utente del database utilizzato per svolgere ruoli amministrativi all'interno del database.

Configurazione del database PostgreSQL

PostgreSQL può essere configurato manualmente per gli indirizzi di ascolto e le porte modificando i parametri richiesti nel file postgresql.conf.

Per impostazione predefinita, viene utilizzata la porta PostgreSQL 5432 e rimane in ascolto su localhost. Questo può essere modificato modificando il file di configurazione.

sudo nano /etc/postgresql/12/main/postgresql.conf

Il servizio verrà riavviato dopo aver apportato eventuali modifiche.

sudo systemctl restart postgresql

Creazione di un nuovo ruolo in PostgreSQL 12

L'autenticazione e l'autorizzazione in PostgreSQL 12 avvengono tramite il concetto di "ruolo". Qui, ruolo è un termine flessibile che si riferisce sia agli utenti che ai gruppi.

Accedi all'utente postgres utilizzando il seguente comando:

sudo su postgres

Nuovi ruoli possono essere creati interattivamente dalla riga di comando con il comando createrole –interactive. Qui, l'uso del flag –interactive creerà una richiesta per il nome del nuovo ruolo e se a questo ruolo devono essere assegnate le autorizzazioni di superutente.

Un nuovo utente può essere creato con un nuovo ruolo al di fuori della shell postgresql dell'utente come:

createuser –interactive

L'output del nuovo comando utente dovrebbe essere simile a questo.

Creazione ed eliminazione di un database nel tuo server PostgreSQL

In PostgreSQL 12, quando viene creato un nuovo ruolo, deve esistere un nuovo database con lo stesso nome poiché il ruolo tenta di connettersi al database per impostazione predefinita. Quindi, come nella sezione precedente, in cui viene creato l'utente liam, è possibile creare un database con quel nome utilizzando il seguente comando:

createdb liam

All'interno di PostgreSQL 12, ci sono più percorsi per la creazione di database come richiesto:

  • Dopo aver effettuato l'accesso dall'account postgres:postgres@server:~$ createdb liam
  • Usa sudo , sudo –u postgres created liam

Per eliminare il database, possiamo utilizzare

dropdb liam

Apertura di un prompt Postgres con il nuovo ruolo

È possibile creare un utente Linux con lo stesso nome del database e del ruolo Postgres per accedere con l'autenticazione basata sull'identità.

Un utente Linux può essere creato (se non esiste già) dalla riga di comando digitando:

sudo adduser noah

Dopo che l'utente è stato creato, è possibile accedere utilizzando il comando seguente;

sudo -u noah psql

È possibile accedere al database corrente e alle informazioni sull'utente utilizzando;

\conninfo

Gestione PostgreSQL

Creazione ed eliminazione di tabelle

Il comando SQL CREATE TABLE può essere utilizzato per creare qualsiasi tabella all'interno di un database. Nel comando è necessario specificare un elenco di colonne e un tipo di dati per ciascuna colonna.

CREATE TABLE customers (customer_id int, first_name varchar(80), last_name varchar(80));

Questo comando creerà una tabella denominata "clienti". La prima colonna conterrà l'ID cliente di tipo intero. La seconda e la terza colonna sono di tipo carattere e conterranno il nome e il cognome dei clienti con una lunghezza massima di 80 caratteri.

Questa nuova tabella può essere visualizzata digitando \d .

La tabella può essere eliminata digitando:

DROP TABLE customers;

Inserimento, selezione ed eliminazione di dati in una tabella

I dati vengono aggiunti alle tabelle PostgreSQL sotto forma di righe. Ogni riga rappresenta un insieme separato di dati. I dati possono essere inseriti nella riga utilizzando il comando INSERT INTO. Il nome del comando è seguito dal “nome tabella” (nell'esempio seguente, clienti), dalla parola chiave VALUES, un elenco di valori separati da una virgola.

INSERT INTO customers VALUES (1, 'Owen', 'Buyer');

INSERT INTO customers VALUES (2, 'Luke', 'Seller');

Il contenuto della tabella può essere visualizzato utilizzando il comando SELECT.

SELECT * FROM customers;

Una riga può essere eliminata utilizzando DELETE comando. Il WHERE la parola chiave viene utilizzata per selezionare le righe in modo condizionale.

DELETE FROM customers WHERE last_name = 'Seller';

Per eliminare tutte le righe, digita:

SELECT * FROM customers;

Aggiunta e eliminazione di colonne da una tabella

PostgreSQL 12 offre la possibilità di aggiungere o eliminare facilmente colonne dalle tabelle esistenti.

Il ALTER TABLE il comando viene utilizzato insieme a ADD parola chiave per aggiungere una colonna a una tabella esistente. Questo campo è vuoto per le righe esistenti nella tabella.

ALTER TABLE customers ADD branch_id int;

Lo stesso comando è usato con DROP parola chiave per eliminare la colonna specificata dalla tabella.

ALTER TABLE customers DROP first_name;

Aggiornamento dei dati in una tabella

Oltre ad aggiungere ed eliminare record all'interno di una tabella, possiamo anche modificarli. Questo può essere fatto usando il UPDATE comando. Dobbiamo specificare le colonne che devono essere modificate con i nuovi valori.

UPDATE customers SET last_name= 'Buyer' WHERE customer_id = '1';

Considerazioni per l'ambiente di produzione

PostgreSQL 12 può essere utilizzato in sicurezza in un ambiente di produzione. Questo database è così stabile che non si dovrebbero avere problemi a implementarlo su larga scala. Per ulteriori informazioni, fare riferimento al nostro precedente articolo qui.

Conclusione

Questo tutorial ti ha mostrato come configurare PostgreSQL 12 su un server Ubuntu 20.04 in esecuzione su DigitalOcean. PostgreSQL 12 è un'applicazione complessa con molte funzionalità nuove e avanzate, come una migliore gestione dello spazio degli indici B-tree standard e supporto per la ricostruzione simultanea dell'indice e la copertura della creazione dell'indice. La versione 12 supporta anche le query in linea WITH e le regole di confronto fornite dall'ICU, migliora il partizionamento e fornisce un'interfaccia di archiviazione delle tabelle collegabile per creare e utilizzare metodi diversi per l'archiviazione delle tabelle.

Ora che conosci le basi della configurazione e dell'utilizzo di un server PostgreSQL, perché non provare un'alternativa gestita? Con un servizio gestito come ScaleGrid, puoi completare l'intero processo di configurazione, installazione e configurazione con un semplice clic. Inizia oggi la tua prova gratuita di 30 giorni e verifica di persona! Non è richiesta la carta di credito e puoi configurare il tuo primo database in pochi minuti.

Abbiamo trattato le basi dell'installazione qui e fornito anche alcune istruzioni per l'amministrazione generale del database. Ci auguriamo che questa guida ti sia stata utile.