PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

PostgreSQL:FATAL - Autenticazione peer non riuscita per l'utente (PG::ConnectionBad)

"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 usare md5 autenticazione tramite password invece di peer 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.