Torna al blog
Gennaio 27, 2026Guide

Come installare PostgreSQL su un server Linux

Guida completa sull'installazione, configurazione e protezione del server database PostgreSQL su Ubuntu e CentOS.

Come installare PostgreSQL su un server Linux

PostgreSQL è un potente sistema di gestione database relazionale open-source, noto per la sua affidabilità, ricchezza di funzionalità e conformità agli standard. Questa guida ti aiuterà a installare e configurare PostgreSQL sul tuo server Linux Hiddence.

Installazione di PostgreSQL su Ubuntu/Debian

PostgreSQL è disponibile nei repository predefiniti. Installa l'ultima versione:

bash
sudo apt update
sudo apt install postgresql postgresql-contrib -y

# Avvia e abilita PostgreSQL
sudo systemctl start postgresql
sudo systemctl enable postgresql

# Verifica l'installazione
sudo systemctl status postgresql
psql --version

Installazione di PostgreSQL su RHEL / CentOS / AlmaLinux / Rocky Linux

Per le distribuzioni basate su RHEL, devi prima aggiungere il repository PostgreSQL:

bash
# Installa il repository PostgreSQL
sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-9-x86_64/pgdg-redhat-repo-latest.noarch.rpm

# Per CentOS 8/Rocky Linux 8, usa:
# sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm

# Installa PostgreSQL
sudo dnf install -y postgresql15-server postgresql15

# Inizializza il database
sudo /usr/pgsql-15/bin/postgresql-15-setup initdb

# Avvia e abilita PostgreSQL
sudo systemctl start postgresql-15
sudo systemctl enable postgresql-15

# Verifica l'installazione
sudo systemctl status postgresql-15
psql --version

Verifica dell'installazione

bash
# Controlla lo stato di PostgreSQL
sudo systemctl status postgresql

# Controlla la versione di PostgreSQL
psql --version

# Connettiti a PostgreSQL (Ubuntu/Debian)
sudo -u postgres psql

# Connettiti a PostgreSQL (CentOS/RHEL)
sudo -u postgres psql -d postgres

Protezione di PostgreSQL

Imposta una password per l'utente postgres:

bash
# Connettiti a PostgreSQL
sudo -u postgres psql

# Imposta la password per l'utente postgres
ALTER USER postgres PASSWORD 'tua_password_forte';

# Esci da PostgreSQL
\q

Creazione di database e utente

bash
# Connettiti come utente postgres
sudo -u postgres psql

# Crea il database
CREATE DATABASE myapp_db;

# Crea l'utente
CREATE USER app_user WITH PASSWORD 'password_forte';

# Concedi i privilegi
GRANT ALL PRIVILEGES ON DATABASE myapp_db TO app_user;

# Esci
\q

Gestione degli utenti

bash
# Connettiti a PostgreSQL
sudo -u postgres psql

# Elenca tutti gli utenti
\du

# Crea un nuovo utente
CREATE USER newuser WITH PASSWORD 'password';

# Concedi i privilegi
GRANT ALL PRIVILEGES ON DATABASE myapp_db TO newuser;

# Revoca i privilegi
REVOKE ALL PRIVILEGES ON DATABASE myapp_db FROM newuser;

# Elimina l'utente
DROP USER newuser;

Abilitazione delle connessioni remote

Per consentire connessioni remote, modifica i file di configurazione PostgreSQL:

bash
# Modifica pg_hba.conf (Ubuntu/Debian)
sudo nano /etc/postgresql/15/main/pg_hba.conf

# Modifica pg_hba.conf (CentOS/RHEL)
sudo nano /var/lib/pgsql/15/data/pg_hba.conf

# Aggiungi la riga:
host    all             all             0.0.0.0/0               md5

# Modifica postgresql.conf (Ubuntu/Debian)
sudo nano /etc/postgresql/15/main/postgresql.conf

# Modifica postgresql.conf (CentOS/RHEL)
sudo nano /var/lib/pgsql/15/data/postgresql.conf

# Cambia:
listen_addresses = '*'

# Riavvia PostgreSQL
sudo systemctl restart postgresql

Comandi PostgreSQL di base

bash
# Connettiti al database
psql -U app_user -d myapp_db

# Elenca i database
\l

# Connettiti al database
\c database_name

# Elenca le tabelle
\dt

# Descrivi la tabella
\d table_name

# Esegui un file SQL
psql -U app_user -d myapp_db -f script.sql

# Backup del database
pg_dump -U app_user myapp_db > backup.sql

# Ripristina il database
psql -U app_user -d myapp_db < backup.sql

Consigli utili

  • Usa sempre password forti per gli utenti del database
  • Limita l'accesso remoto a indirizzi IP specifici in pg_hba.conf
  • Esegui regolarmente il backup dei tuoi database usando pg_dump
  • Monitora i log di PostgreSQL: /var/log/postgresql/ (Ubuntu) o /var/lib/pgsql/15/data/log/ (CentOS)
  • Usa il connection pooling (pgBouncer) per applicazioni ad alto traffico
  • Mantieni PostgreSQL aggiornato all'ultima versione stabile per le patch di sicurezza