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)?