La autenticación de contraseña de Postgres falla

36

He instalado PostgreSQL 9.1 y pgadmin3 en Ubuntu Server 13.10.

Configuré postgresql.conf con: listen_addresses = '*'

También configuré ph_hba.conf cambiando las conexiones de pares a md5

Además restablezco la contraseña de postgres por: sudo password postgres

luego reinició el servicio con sudo /etc/init.d/postgresql restart

después de eso intenté conectarme a la base de datos de plantilla PostgreSQL predeterminada:

sudo -u postgres psql template1

pero el inicio de sesión falló con este mensaje de error:

psql: FATAL:  password authentication failed for user "postgres"

Luego intenté iniciar sesión desde pgadmin, lo que me dio el mismo error.

He leído aquí que podría ser un error de fechas de caducidad de contraseña El usuario de PostgreSQL no puede conectarse al servidor después de cambiar la contraseña

pero no pude resolverlo porque no puedo iniciar sesión con psql. ¿Alguien ahora cómo resolver este problema?

EDITAR

archivo ph_hba:

aquí

Captura de pantalla:

ingrese la descripción de la imagen aquí

Shadin
fuente
77
Estoy bastante irritado por el hecho de que hayas clonado esta publicación. Acabo de escribir una respuesta a esto, solo para descubrir que también publicó una pregunta idéntica en stackoverflow.com que ya tenía una respuesta aceptada. No copie y pegue respuestas entre sitios, está desperdiciando el tiempo de todos y dificultando la búsqueda de información. Si insiste en hacer esto, establezca vínculos entre ellos.
Craig Ringer
Enlace SO: stackoverflow.com/q/21483540/398670
fossfreedom

Respuestas:

67

Está confundiendo la contraseña para el usuario de unix "postgres" con la contraseña de la base de datos para el usuario de la base de datos "postgres". Estos no son lo mismo.

Se ha bloqueado porque habilitó la md5autenticación para el usuario de la base de datos postgressin establecer una contraseña para el usuario de la base de datos postgres.

Agregue una nueva línea al principio de pg_hba.conf:

local    postgres     postgres     peer

luego reinicie / vuelva a cargar PostgreSQL y:

sudo -u postgres psql

Desde el mensaje resultante:

ALTER USER postgres PASSWORD 'my_postgres_password';

luego elimine la línea que agregó pg_hba.confy reinicie Pg nuevamente. Ahora puede usar la contraseña que configuró anteriormente para conectarse a PostgreSQL como postgresusuario.

Para obtener más información, lea el capítulo "autenticación del cliente" del manual del usuario y los documentos enpg_hba.conf .

Craig Ringer
fuente
1
Probar un nuevo pg9.6.6 en un servidor UBUNTU 16 LTS ... Y me sorprendieron todos estos "problemas de principiante". Llegue aquí con la solución ... Paso a paso ... La gran sorpresa: ¡no funciona! psql -W postgresql://postgres:postgres@localhostproduciendo nuevamente el mismo "FATAL: la autenticación de contraseña falló para el usuario 'postgres'"
Peter Krauss
Solución: todas las líneas de confianza están funcionando ...
Peter Krauss
Estoy usando ssh ... Después de volver a poner todo en md5, uno por uno (local, local, host ...), solo la línea "host all 127.0.0.1/32 trust" no puede cambiar, se conservó con " confianza". Entonces, nueva pregunta: ¿por qué?
Peter Krauss
El pg_hba.confarchivo es propiedad del usuario del sistema postgres. Solo conozco la contraseña de la base de datos del usuario de la base de datos postgres. Entonces, la pregunta es ¿cómo edito este archivo de configuración sin cambiar su propiedad?
Shailen
¿Puedes decir por favor, para qué local postgres postgres peernecesita realmente la línea pg_hba.conf? Todo funciona bien sin él
MaxCore
3

Intente modificar la contraseña de la base de datos template1 usando esto:

$ psql -c "ALTER USER postgres WITH PASSWORD 'yourPassword'" -d template1
pfugazza
fuente
Me dio el mismo error pero con el usuario "root" en lugar del usuario "postgres"
Shadin
¿Puedes explicar por qué esto puede ayudar?
xliiv
2

en tu pg_hba.conf

# IPv4 local connections:
# TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD
host    all         all         127.0.0.1/32         trust

si no funciona, intente con

host    all         all         your_ip/32         trust

luego reinicie su base de datos, funcionará bien ... si confía, no hay necesidad de contraseña si crea MD5, entonces le pedirá contraseña ...

smn_onrocks
fuente
3
no use este enfoque en ningún lugar, siempre debe restringir el acceso de los usuarios a sus datos
Most Wanted
a menos que esté ejecutando un servidor CTF.
Pathfinder