"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.confper usaremd5autenticazione tramite password invece dipeerautenticazione per socket Unix (localtipo 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.