Estou tentando configurar o PostgreSQL em um novo computador (Linux Mint). Tudo funciona perfeitamente até eu tentar acessar o banco de dados. Quando o faço, como meu próprio usuário, recebo o seguinte erro (esperado):
$ psql
psql: error: connection to server on socket "/var/run/postgresql/.s.PGSQL.5432" failed: FATAL: role "me" does not exist
Isso faz sentido, porque no Linux há um postgres
usuário separado com acesso ao banco de dados. Tentei usá-lo:
$ sudo su postgres
[sudo] password for me:
$ psql
Password for user postgres: psql: error: connection to server on socket "/var/run/postgresql/.s.PGSQL.5432" failed: fe_sendauth: no password supplied
Nesse ponto, fiquei confuso: o postgres
usuário deveria ter acesso sem senha a todos os bancos de dados PostgreSQL. Além disso, tentei configurar meu pg_hba.conf
arquivo para permitir acesso local a todos os usuários:
# IPv4 local connections:
host all all 127.0.0.1/32 trust
# IPv6 local connections:
host all all ::1/128 trust
Entretanto, mesmo depois de reiniciar o PostgreSQL (com /etc/init.d/postgresql reload
), ainda fui solicitado a fornecer uma senha de banco de dados para o usuário postgres
.
Alguém pode me ajudar a entender:
- Por que estou sendo solicitado a digitar uma senha quando tento acessar meu banco de dados como
postgres
usuário (em uma nova instalação)? - Por que ainda recebo a solicitação mesmo depois de definir conexões locais IPv4/IPv6 como
trust
? - Como posso corrigir meu
postgres
usuário para que fique igual a outras máquinas Linux (ou seja, não tenha nenhuma senha de banco de dados, mas ainda consiga acessar todos os bancos de dados)?
Você alterou as linhas para conexões TCP do host local, mas não alterou a linha para conexões de soquete Unix locais. Isso deve ficar assim: