sql >> Base de Datos >  >> RDS >> PostgreSQL

PostgreSQL:FATAL:la autenticación de pares falló para el usuario (PG::ConnectionBad)

"Autenticación de pares" significa que está usando un socket de Unix y espera que el usuario de Unix que se conecta tenga el mismo nombre de usuario de Unix que el nombre de usuario de Postgresql.

Dado que su nombre de usuario local de Unix es funkdified y estás intentando conectarte como usuario goodsounds sobre un socket de dominio unix (local ) conexión donde su pg_hba.conf especifica peer autenticación, Pg rechaza correctamente su intento de conexión.

Este es el comportamiento predeterminado para muchas instalaciones cuando se usan sockets de Unix.

Puedes:

  • Conéctese a través de TCP/IP especificando un nombre de host en la configuración de conexión de su base de datos;
  • editar pg_hba.conf usar md5 autenticación de contraseña en lugar de peer autenticación para sockets unix (local tipo de conexión) por lo que Pg acepta la autenticación de contraseña; o
  • Conéctese con un nombre de usuario de PostgreSQL igual que su nombre de usuario de Unix y cree el usuario en PostgreSQL si aún no existe.

Consulte los documentos para pg_hba.conf y el resto del capítulo de autenticación del cliente de la documentación.

Tenga en cuenta que los cambios en pg_hba.conf no surta efecto de inmediato, debe reiniciar o al menos recargar PostgreSQL para que vuelva a leer pg_hba.conf .

Ah, también, si tiene varias versiones de PostgreSQL instaladas, es posible que tenga una libpq de una versión y un servidor de otra. En este caso, asegúrese de que la ubicación del socket de Unix al que se conecta libpq de manera predeterminada sea la misma que la de los unix_socket_directories del servidor. o anularlo con (p. ej.) host=/tmp en su cadena de conexión.