Significa que Postgres está intentando autenticar a un usuario usando el protocolo Ident, y no puede. Ident auth funciona así:
- Tiene el rol de base de datos 'foo' en la base de datos 'db'
- Su
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 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 ningún servidor Ident ejecutándose en la máquina desde la que intenta conectarse. Pruebe esto intentando conectarse a él en el puerto 113. Si eso falla, instale un servidor Ident (por ejemplo,
sudo apt-get install oidentd
).
- Hay un servidor Ident, pero no hay una función de base de datos que coincida con el nombre con el que está intentando conectarse ('foo' en el ejemplo anterior). Así que créelo conectándose de alguna manera a la base de datos con derechos de superusuario y hágalo
CREATE ROLE foo
. Alternativamente, agregue una entrada a /etc/postgresql/.../main/pg_ident.conf
.
- Quizás el nombre de usuario del shell no coincida con 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 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
/var/lib/psql/data
No estoy seguro de las causas, pero esto me lo arregló:
en
pg_hba.conf
cambiar a esto:
Error exacto:
Caused by: org.postgresql.util.PSQLException: FATAL: Ident authentication failed for user "postgres"
fuente
En CentOS, agregue la siguiente línea a
/var/lib/pgsql/9.3/data/pg_hba.conf
: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 ...
fuente
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.
fuente
pg_ctl reload
desde la consola oSELECT pg_reload_conf();
cuando ejecute SQL como un usuario privilegiado.