Soluzione 1:
Significa che Postgres sta tentando di autenticare un utente utilizzando il protocollo Ident e non può. Ident auth funziona così:
- Hai il ruolo del database 'foo' nel database 'db'
- Il tuo
pg_hba.conf
file (in/etc/postgres-something/main
) definisce 'Ident' come il protocollo per connettersi al databasedb
per gli utenti che si connettono da determinati host - Il nome utente unix che effettua la connessione è 'foo'
- Un server Ident in esecuzione sulla macchina da cui l'utente si sta connettendo conferma che il suo nome utente è davvero 'foo'
Possibili cause e soluzioni:
- Non c'è nessun server Ident in esecuzione sulla macchina da cui stai tentando di connetterti. Prova questo provando a connetterti ad esso sulla porta 113. Se fallisce, installa un server Ident (ad esempio,
sudo apt-get install oidentd
). -
C'è un server Ident, ma non c'è nessun ruolo del database corrispondente al nome con cui stai tentando di connetterti ("foo" nell'esempio precedente). Quindi crealo collegandoti in qualche modo al database con i diritti di superutente e fai
CREATE ROLE foo
. In alternativa, aggiungi una voce a/etc/postgresql/.../main/pg_ident.conf
(o/var/lib/pgsql/12/data
o dovunque). -
Forse il nome utente della shell non corrisponde il ruolo del database. Potresti essere in grado di verificarlo collegandoti al server Ident mentre è in corso una connessione e passando i numeri di porta corretti.
-
Forse vuoi davvero connetterti con una password , non ident. Modifica il
pg_hba.conf
archiviare 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
Soluzione 2:
Non sono sicuro delle cause, ma questo l'ha risolto per me:
in pg_hba.conf
modificare in questo:
ospita tutti i 127.0.0.1/32 md5
Errore esatto:Caused by: org.postgresql.util.PSQLException: FATAL: Ident authentication failed for user "postgres"
Soluzione 3:
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 commenta le altre voci.
Ovviamente questa impostazione non sicuro, ma se stai solo scherzando su una VM di sviluppo come me, allora probabilmente va bene...