Installazione di PostgreSQL: Una Guida Completa Passo Dopo Passo

Installa PostgreSQL su Linux, macOS o Windows, poi crea un utente, verifica l'accesso e configura connessioni di rete sicure.

Installazione di PostgreSQL: Guida Dettagliata Passo Dopo Passo

L'installazione di PostgreSQL è solitamente semplice, ma i dettagli differiscono tra Linux, macOS e Windows. L'obiettivo non è solo avviare il servizio; hai anche bisogno di un utente del database utilizzabile, un modo pulito per connetterti e impostazioni predefinite sicure per l'accesso alla rete.

Usa questa guida per installare PostgreSQL per lo sviluppo o una configurazione server di piccole dimensioni, poi adatta i percorsi e i numeri di versione ai pacchetti correnti del tuo sistema operativo.

Prerequisiti

Prima di iniziare il processo di installazione, assicurati che il tuo sistema soddisfi questi requisiti di base:

  • Privilegi Amministrativi: Avrai bisogno di privilegi sudo su Linux/macOS o diritti di amministratore su Windows per installare software e configurare i servizi di sistema.
  • Connessione Internet: Necessaria per scaricare i pacchetti di installazione.
  • Spazio su Disco Sufficiente: Sebbene l'installazione iniziale sia relativamente piccola, il tuo database crescerà. Assicurati di avere spazio su disco adeguato per i tuoi dati.

Installazione su Linux

Le distribuzioni Linux offrono tipicamente PostgreSQL attraverso i loro repository di pacchetti predefiniti, rendendo l'installazione semplice.

Debian/Ubuntu

Per sistemi basati su Debian come Ubuntu, puoi installare PostgreSQL usando apt.

  1. Aggiorna le Liste dei Pacchetti: Inizia sempre aggiornando le liste del tuo gestore di pacchetti per assicurarti di ottenere i pacchetti più recenti disponibili.

    sudo apt update
    
  2. Installa PostgreSQL: Installa il pacchetto postgresql, che spesso include il server, gli strumenti client e la documentazione. Puoi specificare una versione (es. postgresql-16) o installare la versione predefinita usando solo postgresql.

    sudo apt install postgresql postgresql-contrib
    

    Il pacchetto postgresql-contrib fornisce utilità e funzionalità aggiuntive.

    Nota: Su Debian/Ubuntu, il servizio PostgreSQL di solito si avvia automaticamente dopo l'installazione e viene creato un utente postgres predefinito (sia utente di sistema che del database).

  3. Verifica l'Installazione: Controlla lo stato del servizio.

    sudo systemctl status postgresql
    

    Dovresti vedere un output che indica che è active (exited) o active (running). exited è normale per l'unità di servizio principale se gestisce più cluster che girano come processi separati.

RHEL/CentOS/Fedora

Per sistemi basati su Red Hat, usa dnf (o yum per versioni precedenti di CentOS/RHEL).

  1. Installa il Repository PostgreSQL: PostgreSQL fornisce il proprio repository per versioni più recenti rispetto a quelle disponibili nei repository OS predefiniti. È consigliato usare questo per le ultime versioni stabili.

    sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm
    # Per EL-9, usa: sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-9-x86_64/pgdg-redhat-repo-latest.noarch.rpm
    # Sostituisci EL-8-x86_64 con la versione specifica del tuo OS e architettura se necessario.
    
  2. Disabilita il Modulo PostgreSQL Predefinito (se applicabile): Alcune versioni di RHEL/CentOS hanno un modulo PostgreSQL predefinito. Disabilitalo per evitare conflitti con il repository PGDG.

    sudo dnf -qy module disable postgresql
    
  3. Installa PostgreSQL: Installa il server e i pacchetti contrib. Sostituisci 16 con la versione desiderata.

    sudo dnf install -y postgresql16-server postgresql16-contrib
    
  4. Inizializza il Cluster del Database: A differenza di Debian/Ubuntu, sui sistemi basati su RHEL, spesso devi inizializzare manualmente il cluster del database.

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

    Regola il percorso /usr/pgsql-16/bin e postgresql-16-setup in base alla versione installata..

  5. Avvia e Abilita il Servizio PostgreSQL: Avvia il servizio e configuralo per lanciarsi all'avvio.

    sudo systemctl enable postgresql-16
    sudo systemctl start postgresql-16
    
  6. Verifica l'Installazione: Controlla lo stato del servizio.

    sudo systemctl status postgresql-16
    

Installazione su macOS

Su macOS, Homebrew è il metodo consigliato e più semplice per installare PostgreSQL.

  1. Installa Homebrew (se non lo hai già fatto):

    /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
    

    Segui le istruzioni sullo schermo, inclusa l'aggiunta di Homebrew al tuo PATH.

  2. Installa PostgreSQL: Usa Homebrew per installare PostgreSQL. Puoi specificare una versione (es. postgresql@16) o installare l'ultima versione stabile per impostazione predefinita.

    brew install postgresql
    
  3. Avvia il Servizio PostgreSQL: Homebrew installa PostgreSQL come servizio in background.

    brew services start postgresql
    

    Per fermarlo: brew services stop postgresql Per riavviarlo: brew services restart postgresql

  4. Verifica l'Installazione: Controlla se psql è disponibile e connesso.

    psql -V
    

    Per connetterti al database predefinito:

    psql postgres
    

    Consiglio: Per un'esperienza visiva basata su app, considera Postgres.app, che fornisce un modo semplice per eseguire e gestire PostgreSQL senza la riga di comando.

Installazione su Windows

Per Windows, l'installer grafico EnterpriseDB (EDB) è il metodo più comune per una configurazione locale di PostgreSQL.

  1. Scarica l'Installer: Visita la pagina di download ufficiale di PostgreSQL (www.postgresql.org/download/windows/) e scarica l'ultimo installer EDB per la tua versione di Windows.

  2. Esegui l'Installer: Esegui il file .exe scaricato. La procedura guidata ti guiderà attraverso il processo.

    • Directory di Installazione: Scegli dove installare PostgreSQL (es. C:\Program Files\PostgreSQL\16).
    • Directory dei Dati: Seleziona una posizione per i file del tuo database (es. C:\Program Files\PostgreSQL\16\data). Questo è cruciale e dovrebbe idealmente essere su un disco veloce e affidabile.
    • Password per il Superutente postgres: Imposta una password forte per il superutente del database postgres predefinito. Ricorda questa password poiché ti servirà per connetterti inizialmente.
    • Porta: La porta predefinita di PostgreSQL è 5432. Di solito è sicuro lasciarla come predefinita a meno che non ci siano conflitti.
    • Locale: Scegli il locale predefinito per il tuo cluster di database.
  3. Stack Builder: Dopo l'installazione, l'installer EDB potrebbe avviare Stack Builder. Questo strumento aiuta a installare driver, strumenti ed estensioni aggiuntivi (come pgAdmin 4). È altamente consigliato installare pgAdmin 4 per un'interfaccia grafica per gestire i tuoi database.

  4. Verifica l'Installazione: Dopo l'installazione, puoi aprire pgAdmin 4 (di solito si trova nel Menu Start sotto "PostgreSQL 16" o simile) e provare a connetterti al tuo server locale usando il superutente postgres e la password che hai impostato.

Configurazione Iniziale e Passaggi Post-Installazione

Una volta installato PostgreSQL, questi passaggi sono essenziali per una configurazione funzionale e sicura.

1. Imposta la Variabile d'Ambiente PATH (Opzionale, principalmente per Windows/macOS se psql non viene trovato)

Per eseguire facilmente psql e altri binari di PostgreSQL da qualsiasi posizione del terminale, aggiungi la directory bin di PostgreSQL al PATH del tuo sistema.

  • Linux: Spesso gestito dal gestore di pacchetti, ma se non lo è, aggiungi /usr/pgsql-X.Y/bin (RHEL) o /usr/lib/postgresql/X.Y/bin (Debian/Ubuntu) al tuo PATH.
  • macOS (Homebrew): brew gestisce questo automaticamente.
  • Windows: Durante l'installazione EDB, c'è un'opzione per aggiungere al PATH. Se non selezionata, puoi aggiungere C:\Program Files\PostgreSQL\16\bin (regola la versione) manualmente tramite Proprietà del Sistema > Variabili d'Ambiente.

2. Accedi al Terminale psql

psql è l'interfaccia a riga di comando per PostgreSQL, cruciale per l'amministrazione e le interrogazioni.

  • Linux/macOS: Passa all'utente di sistema postgres (creato durante l'installazione).

    sudo -i -u postgres
    psql
    

    Ora sei connesso al database postgres come utente postgres. Digita \q per uscire.

  • Windows: Apri SQL Shell (psql) dal Menu Start (PostgreSQL 16 > SQL Shell (psql)). Ti chiederà i dettagli del server e la password dell'utente postgres.

3. Crea un Nuovo Utente del Database e un Nuovo Database

È buona pratica non usare il superutente postgres per l'uso quotidiano delle applicazioni. Crea un nuovo utente e database dedicati.

  1. Accedi come superutente postgres (come mostrato sopra).

  2. Crea un nuovo utente (ruolo):

    CREATE USER myuser WITH PASSWORD 'strong_password';
    

    Consiglio: Sostituisci myuser e strong_password con credenziali sicure.

  3. Crea un nuovo database e assegna la proprietà:

    CREATE DATABASE mydatabase OWNER myuser;
    
  4. Concedi privilegi (se necessario, o il proprietario di CREATE DATABASE gestisce questo per le operazioni di base):

    GRANT ALL PRIVILEGES ON DATABASE mydatabase TO myuser;
    
  5. Esci da psql:

    \q
    

4. Configura pg_hba.conf per l'Accesso alla Rete

Il file pg_hba.conf controlla l'autenticazione del client. Per impostazione predefinita, PostgreSQL potrebbe consentire solo connessioni da localhost (127.0.0.1).

  • Posizione: Questo file si trova tipicamente nella directory dei dati di PostgreSQL (es. /var/lib/postgresql/16/main/pg_hba.conf su Debian/Ubuntu, /var/lib/pgsql/16/data/pg_hba.conf su RHEL, o C:\Program Files\PostgreSQL\16\data\pg_hba.conf su Windows).

  • Modifica il file (come root/amministratore):

    sudo nano /etc/postgresql/16/main/pg_hba.conf
    

    (Regola il percorso per il tuo OS e versione).

    Per permettere a myuser di connettersi da una sottorete affidabile usando l'autenticazione tramite password, aggiungi una riga come questa:

    # TYPE DATABASE  USER            ADDRESS                 METHOD
    host  mydatabase  myuser          192.168.1.0/24          scram-sha-256
    

    scram-sha-256 è il metodo di password preferito per le distribuzioni moderne di PostgreSQL. Evita 0.0.0.0/0 a meno che il server non sia anche protetto da regole firewall rigorose e tu abbia veramente bisogno di un accesso ampio.

  • Ricarica PostgreSQL: Dopo aver modificato pg_hba.conf, devi ricaricare il servizio PostgreSQL affinché le modifiche abbiano effetto.

    sudo systemctl reload postgresql # Linux
    # Per Homebrew su macOS:
    # brew services restart postgresql
    # Per Windows, riavvia il servizio PostgreSQL tramite Services.msc
    

5. Configura postgresql.conf (Ascolto di Rete)

Per impostazione predefinita, PostgreSQL spesso ascolta solo su localhost. Per accettare connessioni da altre macchine, devi modificare postgresql.conf.

  • Posizione: Questo file si trova tipicamente nella stessa directory di pg_hba.conf.

  • Modifica il file:

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

    Trova il parametro listen_addresses e cambialo solo se i client remoti devono connettersi:

    #listen_addresses = 'localhost' # su quali indirizzi IP ascoltare;
    listen_addresses = 'localhost,192.168.1.10'
    

    Usa l'indirizzo IP privato reale del server invece di 192.168.1.10. listen_addresses = '*' funziona anche, ma dovrebbe essere abbinato a regole restrittive in pg_hba.conf e firewall.

  • Riavvia PostgreSQL: Le modifiche a postgresql.conf richiedono un riavvio completo del servizio.

    sudo systemctl restart postgresql # Linux
    # brew services restart postgresql # macOS
    # Per Windows, riavvia il servizio PostgreSQL tramite Services.msc
    

Verifica della Tua Installazione

Dopo tutte le configurazioni, esegui una verifica finale:

  1. Controlla lo stato del servizio PostgreSQL (systemctl status postgresql o brew services list o Servizi Windows).

  2. Connettiti come tuo nuovo utente al tuo nuovo database:

    psql -h localhost -U myuser -d mydatabase
    

    Ti verrà chiesta la password di myuser. Se ha successo, vedrai il prompt mydatabase=>. Digita \q per uscire.

    Se ti connetti da una macchina diversa, sostituisci localhost con l'indirizzo IP del server.

Consigli e Migliori Pratiche

  • Password Forti: Usa sempre password forti e uniche per tutti gli utenti del database, specialmente per il superutente postgres.
  • Directory Dati Dedicata: Per la produzione, considera di posizionare la directory dei dati su un volume dedicato o un array RAID per prestazioni e affidabilità.
  • Backup Regolari: Implementa una strategia di backup robusta dal primo giorno. Le utilità pg_dump e pg_basebackup di PostgreSQL sono strumenti eccellenti per questo.
  • Mantieniti Aggiornato: Mantieni aggiornata la tua installazione di PostgreSQL per beneficiare di correzioni di bug, patch di sicurezza e nuove funzionalità. Usa il gestore di pacchetti del tuo sistema o segui il processo di aggiornamento dell'installer EDB.
  • Configurazione del Firewall: Se permetti connessioni remote, assicurati che il firewall del tuo sistema (es. ufw, firewalld, Windows Firewall) sia configurato per permettere il traffico in entrata sulla porta 5432 (o la porta che hai scelto).

Conclusione

Una volta installato PostgreSQL, verifica il servizio, connettiti con psql, crea un ruolo per l'applicazione e mantieni ristretto l'accesso remoto. Per la produzione, il tuo prossimo passo dovrebbe essere backup e monitoraggio prima che il database inizi a contenere dati importanti.