"Autenticação de peer" significa que está usando um soquete unix e espera que o usuário unix conectado tenha o mesmo nome de usuário unix que o nome de usuário postgresql.
Como seu nome de usuário local do unix é
funkdified
e você está tentando se conectar como usuário goodsounds
em um soquete de domínio unix (local
) onde seu pg_hba.conf
especifica peer
autenticação, Pg rejeita corretamente sua tentativa de conexão. Este é o comportamento padrão para muitas instalações ao usar soquetes unix.
Você pode:
- Conecte-se via TCP/IP especificando um nome de host nas configurações de conexão do banco de dados;
- editar
pg_hba.conf
para usarmd5
autenticação de senha em vez depeer
autenticação para soquetes unix (local
tipo de conexão) para que Pg aceite autenticação de senha; ou - Conecte-se com um nome de usuário do PostgreSQL igual ao seu nome de usuário unix e crie o usuário no PostgreSQL, caso ainda não exista.
Veja os documentos para
pg_hba.conf
e o restante do capítulo de autenticação do cliente da documentação. Observe que as alterações em
pg_hba.conf
não tenham efeito imediatamente, você deve reiniciar ou pelo menos recarregar o PostgreSQL para que ele releia pg_hba.conf
. Ah, também, se você tiver várias versões do PostgreSQL instaladas, você pode ter uma libpq de uma versão e um servidor de outra. Neste caso, certifique-se de que a localização do soquete unix ao qual a libpq se conecta por padrão seja a mesma do
unix_socket_directories
do servidor ou substitua-o por (por exemplo) host=/tmp
em sua cadeia de conexão.