Saltar al contenido

psycopg2.OperationalError: FATAL: la autenticación de contraseña falló para el usuario “”

Por fin después de tanto batallar hemos hallado la respuesta de esta interrogante que muchos de nuestros lectores de este sitio presentan. Si deseas compartir algún dato no dejes de dejar tu información.

Según el error, está claro que la falla es cuando su aplicación está tratando de hacer postgres y la parte importante para concentrarse es la autenticación.

Realice estos pasos para comprender y reproducir primero el problema. Lo asumo como un Servidor Linux y recomiendo estos pasos.

Paso 1:

$ pitón3

>>>import psycopg2
>>>psycopg2.connect("dbname=postgres user=postgres host=localhost password=oracle port=5432")
>>>connection object at 0x5f03d2c402d8; dsn: 'host=localhost port=5432 dbname=postgres user=postgres password=xxx', closed: 0

Deberías recibir ese mensaje. Este es un mensaje de éxito.

Cuando uso una contraseña incorrecta, aparece este error.

>>>psycopg2.connect("dbname=postgres user=postgres host=localhost password=wrongpassword port=5432")
>>>Traceback (most recent call last):
File "", line 1, in 
File "/usr/local/lib/python3.5/dist-packages/psycopg2/__init__.py", line 130, in connect conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
psycopg2.OperationalError: FATAL:  password authentication failed for user "postgres"
FATAL:  password authentication failed for user "postgres"

Cuando no hay ninguna entrada en el archivo pg_hba.conf, aparece el siguiente error.

>>> psycopg2.connect("dbname=postgres user=postgres host=localhost password=oracle port=5432 ")
>>> Traceback (most recent call last):
File "", line 1, in 
File "/usr/local/lib/python3.5/dist-packages/psycopg2/__init__.py", line 130, in connect
conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
psycopg2.OperationalError: FATAL:  no pg_hba.conf entry for host "::1", user "postgres", database "postgres", SSL on
FATAL:  no pg_hba.conf entry for host "::1", user "postgres", database "postgres", SSL off

Entonces, el problema es con la contraseña. Compruebe si su contraseña contiene caracteres especiales o espacios. si su contraseña tiene espacios o caracteres especiales, use comillas dobles como las que usé a continuación.

>>> psycopg2.connect(dbname="postgres", user="postgres", password="passwords with spaces", host="localhost", port ="5432")

Si todo está bien con los pasos anteriores y recibió mensajes de éxito, está muy claro que el problema está en su dsn. Imprime los valores pasados ​​a estas variables.

BASES DE DATOS =

'default': 
    'ENGINE': 'django.db.backends.postgresql_psycopg2',
    'NAME': config ('NAME'),
    'USER': config ('USER'),
    'PASSWORD': config ('PASSWORD'),
    'HOST': 'localhost',
    'PORT': '',

Valide si todos los valores se están sustituyendo adecuadamente. Es posible que tenga la contraseña correcta para el usuario, pero el dsn no selecciona la contraseña correcta para el usuario. Mira si puedes imprimir el dsn y validar si la conexión string se está generando perfectamente. Obtendrá la solución allí.

Así que estaba atascado en este problema y pensé que salvaría a quien se encontrara con esta publicación en algún momento publicando los comandos reales. Esto fue hecho en mi raspberry pi.

  1. sudo su - postgres
  2. [email protected]:~$ psql
  3. postgres=# CREATE DATABASE websitenamehere
  4. postgres=# CREATE USER mywebsiteuser WITH PASSWORD 'Password';
  5. postgres=# GRANT ALL PRIVILEDGES ON DATABASE websitenamehere to
    mywebsiteuser;
  6. postgres=# q

Listo, ahora has creado un usuario.

¿Qué es la configuración como usuario en la configuración (‘USUARIO’). Siguiendo el error:

FATAL: la autenticación de contraseña falló para el usuario “myportfolio”

el usuario es mi portafolio, por lo que deberá crear ese usuario si no existe.

Comentarios y puntuaciones de la guía

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags :

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *