miércoles, 4 de febrero de 2009

psql: FATAL: la autentificación Ident falló para el usuario

ERROR AL CREAR USUARIO E INTENTAR ACCEDER A POSTGRESQL
Si creamos un usuario en postgreSQL e intenamos acceder, nos da el siguiente error:

//Creamos el usuario dentro de psql (también podriamos crearlo fuera)
postgres=# create user usuario22 with password 'usuario22';
CREATE ROLE

//Salimos de psql, e intentamos entrar.
El -W es para que nos pida la contraseña.
El -d es para especificarle el nombre de la base de datos.

postgres@debian:/home/dani$ psql -U usuario22 -W -d alumnos;
Contraseña para usuario usuario22:

2 tipos de errores

//ERROR 1

psql: FATAL: la autentificación Ident falló para el usuario «usuario22»;

Este error es porque no existe ningun usuario en el archivo pg_hba.conf

También puede ser porque el método de cifrado de contraseña es erróneo.

//ERROR 2

psql: FATAL: No se encuentra pg_hba.conf o el archivo es incorrecto
HINT: Vea el registro del servidor para obtener más detalles.

Este error es porque aún existiendo usuario en pg_hba.conf no se encuentra usuario22.


SOLUCION

Debemos editar el pg_hba.conf

debian:/home/dani# gedit /etc/postgresql/8.1/main/pg_hba.conf

Y en él, debemos incluir a los usuarios que queramos que puedan acceder desde psql.

local all user22 md5
# TYPE DATABASE USER CIDR-ADDRESS METHOD
local all user22 127.0.0.1/32 md5

Reiniciamos el servicio y debe funcionar!.
debian:/home/dani# /etc/init.d/postgresql-8.1 restart

INTENTAMOS ACCEDER

postgres@debian:/etc/postgresql/8.1/main$ psql -U user22 -W -d alumnos;
Contraseña para usuario user1:
Bienvenido a psql 8.1.11, la terminal interactiva de PostgreSQL.

Digite: \copyright para ver los términos de distribución
\h para ayuda de comandos SQL
\? para ayuda de comandos psql
\g o or termine con punto y coma para ejecutar una consulta
\q para salir

alumnos=#

7 comentarios:

  1. a mi me suele dar problemas a veces si no le especifico el host,

    es decir, si en pg_hba tengo una línea que indique la conexión por el host 127.0.0.1, y trato conectarme:

    psql -U postgres -W
    >> me pide clave, la coloco y me da error de ident

    pero si hago:

    psql -U postgres -W -h 127.0.0.1
    >> me pide la clave, pero esta vez si entra.

    ResponderEliminar
  2. Muchas gracias! a mí en su día me funcionó así, pero te agradezo que hayas publicado esa diferencia por si alguien tiene el mismo problema.

    Un saludo!.

    ResponderEliminar
  3. no eso no me funciona.... porfa deverias ser mas brebe con ese asunto a mi tansolo me tira ese error y ni con cambiar la clave me deja entrar porfa ayudame con eso el error es el siguiente

    ResponderEliminar
  4. Error connecting to the server: FATAL: la autentificación «password» falló para el usuario «postgres»

    ResponderEliminar
  5. y la verda si me heces el fa y me respondes pronto te lo agradeceria... mi correo es yfreldragon@hotmail.com hagale q es bn

    ResponderEliminar
  6. Realmente no es el mismo error, y yo no tuve ese problema, puede ser que cuando has introducido en el pg_hba.conf tu usuario, no has puesto el cifrado de contraseña correcto, a mí me funciona con MD5.

    También puede ser que estas utilizando el usuario postgres y estas poniendo de manera errónea la contraseña. Lo que deberias hacer es crearte un usuario nuevo y seguir los pasos que dice arriba. A ver si con el usuario nuevo puedes entrar!.

    De todas formas prueba a entrar simplemente con psql....y se entrará directamente con el usuario postgres!.

    ResponderEliminar
  7. A 2012 con centos 6.2 y postgres 9.1 existe el mismo inconveniente, procuren utilizar la dirección en lugar de localhost.

    ResponderEliminar

palyginti kainas