"Autenticazione peer" significa che sta usando un socket unix e si aspetta che l'utente unix connesso abbia lo stesso nome utente unix del nome utente postgresql.
Poiché il tuo nome utente unix locale è funkdified
e stai tentando di connetterti come utente goodsounds
su un socket di dominio unix (local
) connessione in cui il tuo pg_hba.conf
specifica peer
autenticazione, Pg rifiuta correttamente il tuo tentativo di connessione.
Questo è il comportamento predefinito per molte installazioni quando si utilizzano socket Unix.
Puoi:
- Connettiti tramite TCP/IP specificando un nome host nelle impostazioni di connessione al database;
- modifica
pg_hba.conf
per usaremd5
autenticazione tramite password invece dipeer
autenticazione per socket Unix (local
tipo di connessione) quindi Pg accetta l'autenticazione tramite password; o - Connettiti con un nome utente PostgreSQL uguale al tuo nome utente unix e crea l'utente in PostgreSQL se non esiste ancora.
Vedi i documenti per pg_hba.conf
e il resto del capitolo della documentazione sull'autenticazione del client.
Nota che cambia in pg_hba.conf
non ha effetto immediato, devi riavviare o almeno ricaricare PostgreSQL per farlo rileggere pg_hba.conf
.
Oh, inoltre, se hai più versioni di PostgreSQL installate potresti avere una libpq da una versione e un server da un'altra. In questo caso assicurati che la posizione del socket unix a cui libpq si connette per impostazione predefinita sia la stessa delle unix_socket_directories
del server o sovrascrivilo con (ad es.) host=/tmp
nella stringa di connessione.