Installare pgAdmin su Ubuntu è semplice, ma la prima connessione a PostgreSQL può creare qualche inciampo tra modalità desktop, accesso web, autenticazione e servizio attivo. Qui mostro il percorso pratico per scegliere l’edizione corretta, installarla, collegarla al database e risolvere gli errori più comuni senza configurazioni inutilmente complicate.
La configurazione corretta richiede pochi passaggi ben scelti
- Desktop o web dipende dall’uso locale oppure dalla gestione tramite browser.
- Il pacchetto consigliato è pgadmin4, con varianti specifiche per desktop e web.
- Per il primo accesso conviene usare 127.0.0.1 e la porta 5432.
- L’errore più frequente nasce dall’autenticazione peer di Ubuntu, non da pgAdmin.
- Non bisogna esporre PostgreSQL su Internet senza firewall, SSL e controllo degli utenti.

Che cosa serve davvero prima di installare pgAdmin
pgAdmin è un’interfaccia grafica per amministrare PostgreSQL. Permette di creare database, eseguire query SQL, gestire ruoli, controllare tabelle e leggere informazioni sulle prestazioni senza lavorare sempre dal terminale. Non sostituisce PostgreSQL: il server database deve essere già installato e in esecuzione.
Su Ubuntu puoi verificare rapidamente la presenza del servizio con:
sudo systemctl status postgresqlSe PostgreSQL non è ancora presente, il pacchetto standard del sistema è sufficiente per iniziare:
sudo apt update
sudo apt install postgresql postgresql-contribLa configurazione predefinita di Ubuntu usa spesso l’autenticazione peer per le connessioni locali. In pratica, PostgreSQL confronta l’utente Linux con il ruolo PostgreSQL, mentre pgAdmin normalmente lavora con una password. È una differenza piccola ma decisiva per evitare il classico errore “password authentication failed”.
Installazione del pacchetto su Ubuntu
La distribuzione ufficiale di pgAdmin mette a disposizione pacchetti APT per diverse versioni Debian e Ubuntu. La strada più pulita consiste nell’aggiungere il repository ufficiale, importare la relativa chiave di firma e poi installare il pacchetto con APT, così gli aggiornamenti restano gestibili dal sistema.
Dopo aver configurato il repository corretto per la propria versione di Ubuntu, l’installazione principale è:
sudo apt update
sudo apt install pgadmin4Se vuoi soltanto l’applicazione grafica, puoi installare il componente desktop:
sudo apt install pgadmin4-desktopPer un’installazione accessibile dal browser, invece, scegli il pacchetto web:
sudo apt install pgadmin4-webIl pacchetto completo è comodo su una workstation personale, mentre su Ubuntu Server preferisco pgadmin4-web, perché non richiede un ambiente grafico. Se APT restituisce “Unable to locate package”, quasi sempre il problema è il repository mancante, una distribuzione non supportata oppure un nome di versione errato nella configurazione delle sorgenti.
Desktop e web non sono la stessa scelta
La modalità desktop avvia pgAdmin come applicazione locale. La modalità web utilizza un browser e un servizio web, quindi è più adatta a un server amministrato da remoto o a un ambiente dove non è disponibile una sessione grafica.
| Modalità | Quando conviene | Vantaggio principale | Limite |
|---|---|---|---|
| Desktop | PC Ubuntu personale | Configurazione rapida e accesso locale | Richiede un ambiente grafico |
| Web | Ubuntu Server o gestione da browser | Accesso centralizzato | Richiede configurazione del servizio web |
| Completa | Workstation con entrambe le esigenze | Massima flessibilità | Installa componenti non sempre necessari |
Per avviare la configurazione web usa lo script fornito dal pacchetto:
sudo /usr/pgadmin4/bin/setup-web.shLo script chiede un indirizzo email e una password per l’utente amministratore di pgAdmin. Queste credenziali servono per entrare nell’interfaccia web e non coincidono necessariamente con quelle di PostgreSQL. È una distinzione utile: pgAdmin ha un proprio account applicativo, mentre il server database ha ruoli e password separati.
Come preparare il primo utente PostgreSQL
Per una prova locale puoi usare il ruolo amministrativo predefinito, ma in un progetto reale preferisco creare un utente dedicato. Limitare i privilegi riduce i danni possibili in caso di password compromessa o query eseguita sul database sbagliato.
Apri la console PostgreSQL con l’utente di sistema dedicato:
sudo -u postgres psqlDentro la console puoi creare un ruolo con accesso tramite password:
CREATE ROLE dbadmin WITH LOGIN PASSWORD 'scegli-una-password-lunga';
ALTER ROLE dbadmin CREATEDB;Il privilegio CREATEDB è utile in laboratorio, ma non equivale ai privilegi di superutente. Per applicazioni aziendali assegno soltanto i permessi necessari sulle singole basi dati, evitando di usare il ruolo postgres per ogni attività quotidiana.
Puoi anche creare un database di lavoro:
CREATE DATABASE archivio OWNER dbadmin;
\qUna password robusta dovrebbe avere almeno 16 caratteri, non essere riutilizzata e non comparire nei file di configurazione condivisi. In ambienti di test è facile trascurare questo dettaglio, ma proprio gli ambienti di test finiscono spesso esposti o copiati senza adeguate protezioni.
La prima connessione da pgAdmin
Apri pgAdmin e aggiungi un nuovo server. Nella scheda di connessione inserisci i parametri locali più comuni:
| Campo | Valore consigliato | Perché |
|---|---|---|
| Nome | PostgreSQL locale | È solo un’etichetta visibile in pgAdmin |
| Host | 127.0.0.1 | Forza una connessione TCP locale |
| Porta | 5432 | È la porta predefinita di PostgreSQL |
| Maintenance database | postgres | Database iniziale disponibile normalmente |
| Username | dbadmin | Ruolo creato per l’amministrazione |
| Password | Quella assegnata al ruolo | Serve per l’autenticazione TCP |
Uso spesso 127.0.0.1 invece di localhost perché rende più chiaro che la connessione passa dalla rete locale e aiuta a distinguere i problemi TCP da quelli del socket Unix. Se il collegamento funziona con l’indirizzo numerico ma non con il nome, il problema riguarda la risoluzione del nome e non PostgreSQL.
Una volta salvata la connessione, pgAdmin mostra database, schemi, tabelle, viste e ruoli nel pannello laterale. L’editor SQL è ideale per verificare subito l’accesso con una query semplice:
SELECT version();
SELECT current_database(), current_user;Queste due istruzioni confermano la versione del server, il database selezionato e l’utente effettivo. Sono controlli banali, ma evitano di eseguire modifiche sull’istanza sbagliata.
Gli errori più comuni e la soluzione pratica
Connection refused
Questo errore indica che PostgreSQL non risponde sulla porta indicata. Controlla il servizio:
sudo systemctl status postgresql
sudo systemctl start postgresqlSe il servizio si arresta subito, consulta i log di sistema. In genere la causa è una configurazione errata, una porta già occupata o un cluster PostgreSQL non avviato. Installare di nuovo pgAdmin non risolve un servizio database fermo.
Password authentication failed
Il ruolo esiste, ma la password non è corretta oppure il metodo di autenticazione non consente quel tipo di accesso. Puoi reimpostare la password entrando come amministratore di sistema:
sudo -u postgres psql
ALTER ROLE dbadmin WITH PASSWORD 'nuova-password-sicura';
\qControlla anche di aver scelto il nome utente giusto nella finestra di pgAdmin. Il nome dell’account Linux e quello del ruolo PostgreSQL possono essere diversi.
Role does not exist
Il server risponde, ma il ruolo indicato nella connessione non è stato creato. Verifica gli utenti disponibili dalla console:
sudo -u postgres psql
\du
\qSe il ruolo manca, crealo con LOGIN e una password. Non confondere il nome del database con il nome del ruolo: sono oggetti diversi e possono avere nomi completamente differenti.
Leggi anche: JSON in SQL Server, come usarlo senza rallentare le query
Il pacchetto non viene trovato
Quando APT non trova pgAdmin, verifica prima la versione di Ubuntu e la sorgente configurata. Eviterei pacchetti scaricati da siti casuali: per uno strumento amministrativo è importante mantenere firma del pacchetto e aggiornamenti verificabili. La documentazione ufficiale di pgAdmin indica i pacchetti compatibili e le modalità di installazione aggiornate.
Sicurezza e gestione quotidiana
Su una macchina locale, lasciare PostgreSQL in ascolto soltanto sull’interfaccia locale è spesso la scelta più prudente. Non aprire la porta 5432 verso Internet solo perché vuoi raggiungere pgAdmin da un altro computer: per l’accesso remoto servono rete privata o VPN, regole firewall, ruoli limitati e, quando necessario, connessioni cifrate con SSL.
Per controllare quali porte sono in ascolto puoi usare:
sudo ss -ltnp | grep 5432Se amministri più server, assegna nomi riconoscibili alle connessioni e usa colori o gruppi in pgAdmin. Questo piccolo accorgimento riduce il rischio di lanciare una query distruttiva sul database di produzione, un errore molto più comune di quanto sembri.
Per il lavoro quotidiano consiglio inoltre di separare tre attività: amministrazione, sviluppo e applicazione. Un ruolo usato dall’applicazione non dovrebbe avere permessi per creare ruoli o cancellare database, mentre l’account amministrativo non dovrebbe essere inserito nei file dell’applicazione.
Una configurazione Ubuntu ordinata evita quasi tutti gli inciampi
La combinazione più equilibrata per un computer personale è pgadmin4-desktop con PostgreSQL locale, un ruolo dedicato e una connessione verso 127.0.0.1. Su un server senza interfaccia grafica scegli invece la modalità web, proteggendo l’accesso con credenziali solide e controlli di rete.
La parte che richiede più attenzione non è l’installazione grafica, ma il rapporto tra servizio PostgreSQL, ruolo database, metodo di autenticazione e porta di ascolto. Quando questi quattro elementi sono coerenti, pgAdmin su Ubuntu diventa uno strumento rapido e affidabile per lavorare con database locali e remoti.