Digamos que estás viendo este mensaje:
FATAL: Ident authentication failed for user "..."
¿Cuáles son las causas de este mensaje de error?
Digamos que estás viendo este mensaje:
FATAL: Ident authentication failed for user "..."
¿Cuáles son las causas de este mensaje de error?
Respuestas:
Significa que Postgres está intentando autenticar a un usuario usando el protocolo Ident, y no puede. Ident auth funciona así:
pg_hba.conf
archivo (in /etc/postgres-something/main
) define 'Ident' como el protocolo para conectarse a la base db
de datos para los usuarios que se conectan desde ciertos hostsPosibles causas y soluciones:
sudo apt-get install oidentd
).CREATE ROLE foo
. Alternativamente, agregue una entrada a /etc/postgresql/.../main/pg_ident.conf
.Tal vez realmente quieras conectarte con una contraseña , no con Ident. Edite el pg_hba.conf
archivo adecuadamente. Por ejemplo, cambiar:
host all all 127.0.0.1/32 ident
a
host all all 127.0.0.1/32 md5
No estoy seguro de las causas, pero esto me lo arregló:
en pg_hba.conf
cambiar a esto:
host todos todos 127.0.0.1/32 md5
Error exacto: Caused by: org.postgresql.util.PSQLException: FATAL: Ident authentication failed for user "postgres"
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 es segura, pero si solo estás jugando en una VM de desarrollo como yo, entonces probablemente esté bien ...
Si aún no lo ha intentado, revise su archivo pg_hba.conf. Se llamará algo así como /var/lib/pgsql/9.3/data/pg_hba.conf (Fedora 20); puede que tenga que usar 'find / -name pg_hba.conf' para ubicarlo.
Al final del archivo, cambie los valores de 'MÉTODO' a 'confianza' para las pruebas locales (consulte los documentos de postgres para obtener información completa). Reinicie la máquina para asegurarse de que todo esté limpio y se lean los nuevos parámetros.
Esperemos que esto cure tus problemas. Resolvió mis problemas en Fedora 20 con PostgreSQL 9.3.
pg_ctl reload
desde la consola o SELECT pg_reload_conf();
cuando ejecute SQL como un usuario privilegiado.
/var/lib/psql/data