Supponi di vedere questo messaggio:
FATAL: Ident authentication failed for user "..."
Quali sono le cause di questo messaggio di errore?
Supponi di vedere questo messaggio:
FATAL: Ident authentication failed for user "..."
Quali sono le cause di questo messaggio di errore?
Risposte:
Significa che Postgres sta provando ad autenticare un utente usando il protocollo Ident e non può farlo. Ident auth funziona in questo modo:
pg_hba.conf
file (in /etc/postgres-something/main
) definisce "Ident" come protocollo per connettersi al database db
per gli utenti che si connettono da determinati hostPossibili cause e soluzioni:
sudo apt-get install oidentd
.).CREATE ROLE foo
. In alternativa, aggiungi una voce a /etc/postgresql/.../main/pg_ident.conf
.Forse in realtà vuoi connetterti con una password , non con Ident. Modifica il pg_hba.conf
file in modo appropriato. Ad esempio, modifica:
host all all 127.0.0.1/32 ident
a
host all all 127.0.0.1/32 md5
Non sono sicuro delle cause, ma questo mi ha risolto:
nel pg_hba.conf
cambia in questo:
ospitare tutti i 127.0.0.1/32 md5
Errore esatto: Caused by: org.postgresql.util.PSQLException: FATAL: Ident authentication failed for user "postgres"
Su CentOS, aggiungi la seguente riga a /var/lib/pgsql/9.3/data/pg_hba.conf
:
host all all 127.0.0.1/32 trust
E commentare le altre voci.
Naturalmente, questa impostazione non è sicura, ma se stai solo scherzando su una VM di sviluppo come me, probabilmente va bene ...
Se non l'hai già provato, rivedi il tuo file pg_hba.conf. Si chiamerà qualcosa come /var/lib/pgsql/9.3/data/pg_hba.conf (Fedora 20); potresti dover usare 'find / -name pg_hba.conf' per localizzarlo.
Nella parte inferiore del file, modifica i valori "METHOD" in "trust" per i test locali (vedi i documenti di Postgres per informazioni complete). Riavviare la macchina per assicurarsi che tutto sia avviato in modo pulito e che vengano letti i nuovi parametri.
Spero che questo curerà i tuoi guai. Ha risolto i miei problemi su Fedora 20 con PostgreSQL 9.3.
pg_ctl reload
dalla console o SELECT pg_reload_conf();
quando esegui SQL come utente privilegiato.
/var/lib/psql/data