Solución 1:
Significa que Postgres está intentando autenticar a un usuario mediante el protocolo Ident y no puede. La autenticación de identidad funciona así:
- Tiene el rol de base de datos 'foo' en la base de datos 'db'
- Tu
pg_hba.conf
archivo (en/etc/postgres-something/main
) define 'Ident' como el protocolo para conectarse a la base de datosdb
para usuarios que se conectan desde ciertos hosts - El nombre de usuario de Unix que hace la conexión es 'foo'
- Un servidor Ident que se ejecuta en la máquina desde la que se conecta el usuario confirma que su nombre de usuario realmente es 'foo'
Posibles causas y soluciones:
- No hay servidor de identidad ejecutándose en la máquina desde la que intenta conectarse. Pruébelo intentando conectarse a él en el puerto 113. Si eso falla, instale un servidor Ident (p. ej.,
sudo apt-get install oidentd
). -
Hay un servidor Ident, pero no hay función de base de datos coincidiendo con el nombre con el que está tratando de conectarse ('foo' en el ejemplo anterior). Así que créalo conectándote de alguna manera a la base de datos con derechos de superusuario y haz
CREATE ROLE foo
. Alternativamente, agregue una entrada a/etc/postgresql/.../main/pg_ident.conf
(o/var/lib/pgsql/12/data
o donde sea). -
Tal vez el nombre de usuario de shell no coincida el rol de la base de datos. Puede probar esto conectándose al servidor Ident mientras se realiza una conexión y pasando los números de puerto correctos.
-
Tal vez realmente quieras conectarte con una contraseña , no Ident. Edite el
pg_hba.conf
archivar adecuadamente. Por ejemplo, cambie:host all all 127.0.0.1/32 ident
a
host all all 127.0.0.1/32 md5
Solución 2:
No estoy seguro de las causas, pero esto me lo solucionó:
en pg_hba.conf
cambiar a esto:
alojar todos todos 127.0.0.1/32 md5
Error exacto:Caused by: org.postgresql.util.PSQLException: FATAL: Ident authentication failed for user "postgres"
Solución 3:
En CentOS, agregue la siguiente línea a /var/lib/pgsql/9.3/data/pg_hba.conf
:
host all all 127.0.0.1/32 trust
Y comentar las otras entradas.
Por supuesto, esta configuración no seguro, pero si solo estás jugando con una VM de desarrollo como yo, probablemente esté bien...