Ricerca nel sito web

Come installare e utilizzare PostgreSQL 13 su Rocky Linux


Questo tutorial esiste per queste versioni del sistema operativo

  • Rocky Linux 9
  • Rocky Linux 8.4

Su questa pagina

  1. Prerequisiti
  2. Aggiunta del repository PostgreSQL
  3. Installazione di PostgreSQL 13 su Rocky Linux
  4. Inizializzazione del database PostgreSQL
  5. Protezione del deployment di PostgreSQL
  6. Cambia metodo di autenticazione
  7. Creazione di un nuovo utente e database per la tua applicazione
  8. Crea tabella e inserisci dati
  9. Conclusione

PostgreSQL è un sistema di gestione di database gratuito e open source incentrato sull'estensibilità e sulla conformità SQL. PostgreSQL è un RDBMS (Relational Database Management System) avanzato e di classe enterprise che supporta query SQL (relazionali) e JSON (non relazionali).

È un sistema di gestione del database altamente stabile supportato da oltre 20 anni di sviluppo da parte della comunità open source e gode di una solida reputazione tra gli sviluppatori e gli amministratori di sistema per la sua affidabilità, flessibilità, solidità delle funzionalità e prestazioni.

PostgreSQL è utilizzato come database primario per applicazioni web, applicazioni mobili e applicazioni analitiche. Alcuni importanti utenti di PostgreSQL in tutto il mondo sono Reddit, Skype, Instagram, Disqus, The Guardian, Yandex, Bloomberg, Nokia, BMW, ecc.

In questa guida imparerai come installare il database PostgreSQL su Rocky Linux, proteggere la distribuzione del database PostgreSQL e l'utilizzo di base delle query PostgreSQL per la gestione di utenti e database.

Prerequisiti

  • Un sistema Rocky Linux.
  • Un utente con privilegi root o sudo. Questo utente verrà utilizzato per installare nuovi pacchetti e apportare modifiche a livello di sistema.

Aggiunta del repository PostgreSQL

Per questa guida, installerai l'ultima versione stabile di PostgreSQL v13.4. Questa versione è disponibile sul repository PostgreSQL ufficiale, quindi devi aggiungere il repository PostgreSQL al tuo sistema Rocky Linux.

1. Aggiungi il repository PostgreSQL ufficiale per il sistema Rocky Linux eseguendo il seguente comando.

sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm

2. Successivamente, esegui il comando seguente per verificare che il repository PostgreSQL sia disponibile sul tuo sistema.

sudo dnf -qy repolist

Se il repository PostgreSQL è disponibile sul tuo sistema, vedrai più versioni di repository PostgreSQL come lo screenshot qui sotto.

Installazione di PostgreSQL 13 su Rocky Linux

Per poter installare PostgreSQL dal repository PostgreSQL ufficiale (non dal repository Rocky Linux), è necessario disabilitare il modulo del repository PostgreSQL integrato.

1. Eseguire il comando seguente per disabilitare il repository di moduli PostgreSQL integrato.

sudo dnf module -qy disable postgresql

Il comando eseguirà il comando DNF in modalità silenziosa e accetterà tutte le chiavi gpg (opzione -qy) per i repository PostgreSQL.

2. Successivamente, installa l'ultima versione di PostgreSQL 13.4 dal repository PostgreSQL utilizzando il comando dnf di seguito.

sudo dnf install postgresql13-server

Digita y e premi Invio per installare PostgreSQL 13.x.

Quindi attendi l'installazione di PostgreSQL.

Inizializzazione del database PostgreSQL

Successivamente, al termine dell'installazione di PostgreSQL, è necessario inizializzare la configurazione di PostgreSQL, quindi avviare e abilitare il servizio PostgreSQL.

1. Eseguire il seguente comando per inizializzare la configurazione del database PostgreSQL.

sudo /usr/pgsql-13/bin/postgresql-13-setup initdb

2. Successivamente, avvia e abilita il servizio PostgreSQL utilizzando il comando seguente.

sudo systemctl enable postgresql-13
sudo systemctl start postgresql-13

Ora il servizio PostgreSQL è attivo e in esecuzione e verrà eseguito automaticamente a ogni avvio.

3. Ora esegui il comando seguente per verificare il servizio PostgreSQL.

sudo systemctl status postgresql-13

Se il tuo servizio PostgreSQL è in esecuzione, vedrai l'output verde come \attivo(in esecuzione)\ come di seguito. Altrimenti, vedrai l'output rosso come \failed\ seguito dai log dei messaggi di errore.

Protezione della distribuzione di PostgreSQL

Durante l'installazione, PostgreSQL creerà un nuovo utente di sistema e un nome utente del database come \postgres\. E per questa fase, imposterai una nuova password per l'utente \postgres\, sia per l'utente di sistema che per l'utente del database.

1. Cambia la password per l'utente di sistema predefinito \postgres\ utilizzando il seguente comando.

passwd postgres

Ora digita la nuova password per l'utente di sistema \postgres\.

2. Successivamente, per modificare la password per l'utente del database \postgres\, è necessario accedere alla shell PostgreSQL.

Innanzitutto, accedi come utente di sistema \postgres\ utilizzando il seguente comando.

su - postgres

Ora accedi alla shell PostgreSQL usando il comando psql di seguito.

psql

Esegui la seguente query per creare una nuova password per l'utente predefinito del database \postgres\.

ALTER USER postgres WITH PASSWORD 'strongpostgrespassword';

Ora digita exit e premi \Ctrl+d\ per uscire e disconnetterti dalla shell utente postgres.

Cambia metodo di autenticazione

Per impostazione predefinita, gli utenti PostgreSQL locali si connetteranno alla shell PostgreSQL utilizzando il metodo peer. Il metodo di autenticazione peer funzionerà solo per le connessioni locali. Nell'ambiente di sviluppo è possibile utilizzare questo tipo di autenticazione, ma per la produzione è consigliabile utilizzare il metodo di autenticazione basato su password.

Per questa fase, imparerai come modificare il metodo di autenticazione peer predefinito in autenticazione tramite password utilizzando scram-sha-256.

1. Innanzitutto, accedi alla shell PostgreSQL utilizzando il seguente comando.

sudo -u postgres psql

Ora esegui la seguente query per controllare la posizione della configurazione di PostgreSQL pg_hba.conf.

SHOW hba_file;
SHOW password_encryption;

Vedrai l'output come di seguito.

Noterai che la configurazione di PostgreSQL \pg_hba.conf\ si trova nella directory /var/lib/pgsql/13/data e la crittografia della password predefinita per PostgreSQL su un sistema operativo basato su RHEL è scram-sha-256.

Ora digita \q per uscire ed esci dalla shell PostgreSQL.

2. Successivamente, modificare la directory di lavoro in /var/lib/pgsql/13/data e modificare la configurazione pg_hba.conf utilizzando nano editor.

cd /var/lib/pgsql/13/data/
nano pg_hba.conf

In fondo alla riga, cambia il metodo di autenticazione locale in scram-sha-256 come di seguito.

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     scram-sha-256
# IPv4 local connections:
host    all             all             127.0.0.1/32            scram-sha-256
# IPv6 local connections:
host    all             all             ::1/128                 scram-sha-256

Ora premi Ctrl+x, digita y e premi \Invio\ per salvare e uscire.

Usando questa configurazione, ti verrà richiesta la password per accedere alla shell PostgreSQL.

3. Successivamente, applica la nuova configurazione riavviando il servizio PostgreSQL utilizzando il seguente comando.

sudo systemctl restart postgresql-13

Ora ogni volta che vuoi accedere alla shell PostgreSQL, devi digitare la password per l'autenticazione.

4. Per verificare la configurazione dell'autenticazione della password, accedere alla shell PostgreSQL utilizzando il seguente comando.

su - postgres
psql

Ora ti verrà chiesta una password per l'utente predefinito postgres.

Digita la password per l'utente del database postgres e premi Invio. Se la tua password è corretta, vedrai la shell PostgreSQL come segue. Altrimenti, vedrai l'errore FATAL perché la password non è corretta.

Inoltre, puoi utilizzare il comando a una riga per accedere alla shell PostgreSQL come di seguito.

# Log in as default "postgres" user
sudo -u postgres psql

# Log in as another user
sudo -u postgres psql -U username

Creazione di un nuovo utente e database per la tua applicazione

In questa fase imparerai come creare un nuovo utente e database su PostgreSQL.

1. Accedi alla shell PostgreSQL eseguendo il comando seguente.

sudo -u postgres psql

Ora digita la password per l'utente PostgreSQL postgres.

2. Eseguire la query PostgreSQL riportata di seguito per creare un nuovo utente johndoe con la password johndoestrongpassword e concedere all'utente i privilegi per la creazione di un nuovo database e ruolo.

CREATE USER johndoe WITH 
CREATEDB
CREATEROLE
PASSWORD 'johndoestrongpassword';

Successivamente, verifica il nuovo utente utilizzando la seguente query.

\du

Ora vedrai il nuovo utente johndoe con l'elenco dei ruoli Crea ruolo e Crea DB come di seguito.

3. Successivamente, per creare un nuovo database utente su PostgreSQL, esegui la seguente query.

CREATE DATABASE johndoe OWNER johndoe;

Ora verifica il nuovo database utilizzando la seguente query.

\l

E vedrai il nuovo database johndoe con il proprietario johndoe come lo screenshot qui sotto.

Crea tabella e inserisci dati

Dopo aver creato un nuovo database e un nuovo utente, imparerai come creare una tabella, inserire i dati e mostrare i dati dal database.

1. Ora accedi alla shell PostgreSQL come utente johndoe usando il seguente comando.

su - postgres
psql -U johndoe

Oppure puoi usare il comando a una riga come di seguito.

sudo -u postgres psql -U johndoe

Ora digita la password per l'utente PostgreSQL johndoe e premi Invio per accedere.

Come puoi vedere nello screenshot, ora sei connesso alla shell PostgreSQL nel database johndoe=>.

2. Ora esegui la seguente query per creare una nuova tabella utenti con alcune colonne id, nome, età, indirizzo e stipendio.

CREATE TABLE users (
   id INT PRIMARY KEY     NOT NULL,
   name           TEXT    NOT NULL,
   age            INT     NOT NULL,
   address        CHAR(50),
   salary         REAL
);

Per visualizzare le tabelle disponibili nel database corrente, utilizzare la query \d come descritto di seguito.

\d

Per visualizzare le colonne nella tabella, puoi utilizzare la stessa query seguita dal nome della tabella come di seguito.

\d users

Di seguito è riportato l'output simile che otterrai.

3. Successivamente, aggiungi nuovi dati alla tabella utilizzando la query di inserimento come di seguito.

INSERT INTO users (id,name,age,address,salary) VALUES (1, 'Paul', 32, 'California', 20000.00);
INSERT INTO users (id,name,age,address,salary) VALUES (2, 'Jesse', 35, 'Mexico', 30000.00);
INSERT INTO users (id,name,age,address,salary) VALUES (3, 'Linda', 27, 'Canada', 40000.00);

4. Successivamente, puoi mostrare tutti i dati disponibili utilizzando la query di selezione come di seguito.

SELECT * FROM users;

L'opzione * scaricherà tutte le colonne all'interno della tabella.

Per specificare la colonna, puoi utilizzare la query di selezione come di seguito.

SELECT name,age,salary FROM users;

Vedrai un output simile a quello di seguito.

Conclusione

Congratulazioni! Ora hai imparato come installare PostgreSQL su Rocky Linux. Inoltre, hai imparato come distribuire PostgreSQL in modo sicuro (minimo) e l'utilizzo di base delle query PostgreSQL per la gestione di utenti, database e tabelle.