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
sudosu 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.
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 updateInstalla 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 solopostgresql.sudo apt install postgresql postgresql-contribIl pacchetto
postgresql-contribfornisce utilità e funzionalità aggiuntive.Nota: Su Debian/Ubuntu, il servizio PostgreSQL di solito si avvia automaticamente dopo l'installazione e viene creato un utente
postgrespredefinito (sia utente di sistema che del database).Verifica l'Installazione: Controlla lo stato del servizio.
sudo systemctl status postgresqlDovresti vedere un output che indica che è
active (exited)oactive (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).
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.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 postgresqlInstalla PostgreSQL: Installa il server e i pacchetti contrib. Sostituisci
16con la versione desiderata.sudo dnf install -y postgresql16-server postgresql16-contribInizializza 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 initdbRegola il percorso
/usr/pgsql-16/binepostgresql-16-setupin base alla versione installata..Avvia e Abilita il Servizio PostgreSQL: Avvia il servizio e configuralo per lanciarsi all'avvio.
sudo systemctl enable postgresql-16 sudo systemctl start postgresql-16Verifica 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.
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.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 postgresqlAvvia il Servizio PostgreSQL: Homebrew installa PostgreSQL come servizio in background.
brew services start postgresqlPer fermarlo:
brew services stop postgresqlPer riavviarlo:brew services restart postgresqlVerifica l'Installazione: Controlla se
psqlè disponibile e connesso.psql -VPer connetterti al database predefinito:
psql postgresConsiglio: 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.
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.
Esegui l'Installer: Esegui il file
.exescaricato. 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 databasepostgrespredefinito. 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.
- Directory di Installazione: Scegli dove installare PostgreSQL (es.
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 installarepgAdmin 4per un'interfaccia grafica per gestire i tuoi database.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 superutentepostgrese 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 tuoPATH. - macOS (Homebrew):
brewgestisce questo automaticamente. - Windows: Durante l'installazione EDB, c'è un'opzione per aggiungere al
PATH. Se non selezionata, puoi aggiungereC:\Program Files\PostgreSQL\16\bin(regola la versione) manualmente tramiteProprietà 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 psqlOra sei connesso al database
postgrescome utentepostgres. Digita\qper uscire.Windows: Apri
SQL Shell (psql)dal Menu Start (PostgreSQL 16 > SQL Shell (psql)). Ti chiederà i dettagli del server e la password dell'utentepostgres.
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.
Accedi come superutente
postgres(come mostrato sopra).Crea un nuovo utente (ruolo):
CREATE USER myuser WITH PASSWORD 'strong_password';Consiglio: Sostituisci
myuserestrong_passwordcon credenziali sicure.Crea un nuovo database e assegna la proprietà:
CREATE DATABASE mydatabase OWNER myuser;Concedi privilegi (se necessario, o il proprietario di
CREATE DATABASEgestisce questo per le operazioni di base):GRANT ALL PRIVILEGES ON DATABASE mydatabase TO myuser;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.confsu Debian/Ubuntu,/var/lib/pgsql/16/data/pg_hba.confsu RHEL, oC:\Program Files\PostgreSQL\16\data\pg_hba.confsu 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
myuserdi 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-256scram-sha-256è il metodo di password preferito per le distribuzioni moderne di PostgreSQL. Evita0.0.0.0/0a 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.confTrova il parametro
listen_addressese 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 inpg_hba.confe firewall.Riavvia PostgreSQL: Le modifiche a
postgresql.confrichiedono 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:
Controlla lo stato del servizio PostgreSQL (
systemctl status postgresqlobrew services listo Servizi Windows).Connettiti come tuo nuovo utente al tuo nuovo database:
psql -h localhost -U myuser -d mydatabaseTi verrà chiesta la password di
myuser. Se ha successo, vedrai il promptmydatabase=>. Digita\qper uscire.Se ti connetti da una macchina diversa, sostituisci
localhostcon 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_dumpepg_basebackupdi 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 porta5432(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.