- Instalei
PostgreSQL
naEC2
máquina e agora quero alterar a senha do usuáriopostgres
- Eu faço
$ sudo -u postgres psql psql (9.1.5) Type "help" for help. postgres=# ALTER USER postgres WITH PASSWORD 'newpasswd'; ALTER ROLE
- Então eu saio do shell e tento fazer login com nova senha
$ psql -U postgres -W Password for user postgres: psql: FATAL: Peer authentication failed for user "postgres"
Minha PostgreSQL
versão é
$ psql --version
psql (PostgreSQL) 9.1.5
contains support for command-line editing
O que é que estou fazendo de errado?
obrigada
ATUALIZAÇÃO
Fiz alterações pg_hba.conf
e é assim que parece agora
# Database administrative login by Unix domain socket
local all postgres peer
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
#local all all peer
local all all md5
# IPv4 local connections:
host all all 127.0.0.1/32 md5
# IPv6 local connections:
host all all ::1/128 md5
Então reiniciei opostgres
$ sudo /etc/init.d/postgresql restart
* Restarting PostgreSQL 9.1 database server [ OK ]
Tentei fazer login novamente, mas não consegui
$ psql -U postgres -W
Password for user postgres:
psql: FATAL: Peer authentication failed for user "postgres"
Como willglynn disse, provavelmente é o seu arquivo pg_hba.conf.
Se você tiver a seguinte linha:
então mude para:
Isso deve permitir que você faça login com sua nova senha (supondo que você a forneça corretamente) :)
Eu só queria adicionar isso, além de alterar
pg_hba.conf
o arquivo depara
De acordo com a resposta aceita, a única maneira de fazer login depois de fazer a mesma coisa que o OP estava fazendo era passar o
-h
sinalizador ao tentar fazer login.Espero que isso ajude alguém no futuro. Estava me deixando louco!
Você tem isto...
mude por isso:
e reinicie o serviço postgresql por
este trabalho para mim
No meu caso, isso ocorreu devido à variável env POSTGRES_PASSWORD no contêiner docker.
Para a galera, que está enlouquecendo depois de trocar a senha várias vezes e tentar tudo que foi citado aqui, lembre-se de verificar a validade do usuário. Você pode configurá-lo para 'nunca expirar' assim no psql 9.x: