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=#
palyginti kainas