PostgreSQL
sur EC2
machine et maintenant je veux changer le mot de passe de l'utilisateur postgres
$ Sudo -u postgres psql psql (9.1.5) Type "help" for help. postgres=# ALTER USER postgres WITH PASSWORD 'newpasswd'; ALTER ROLE
$ psql -U postgres -W Password for user postgres: psql: FATAL: Peer authentication failed for user "postgres"
Ma version PostgreSQL
est
$ psql --version
psql (PostgreSQL) 9.1.5
contains support for command-line editing
Qu'est-ce que je fais mal?
Je vous remercie
MISE À JOUR J'ai apporté des modifications dans pg_hba.conf
et voici à quoi ça ressemble maintenant
# 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
J'ai ensuite redémarré le postgres
$ Sudo /etc/init.d/postgresql restart
* Restarting PostgreSQL 9.1 database server [ OK ]
J'ai essayé de me reconnecter, mais j'ai échoué
$ psql -U postgres -W
Password for user postgres:
psql: FATAL: Peer authentication failed for user "postgres"
Comme l'a dit willglynn, c'est probablement votre fichier pg_hba.conf.
Si vous avez la ligne suivante:
local all all peer
puis changez-le en:
local all all md5
Cela devrait alors vous permettre de vous connecter avec votre nouveau mot de passe (en supposant que vous le fournissez correctement) :)
Je voulais juste ajouter cela en plus de changer pg_hba.conf
fichier de
local all all peer
à
local all all md5
Selon la réponse acceptée, la seule façon de me connecter après avoir fait la même chose que l'OP était de passer le -h
drapeau lors de la tentative de connexion.
$ psql -U postgres -h localhost
J'espère que cela aidera quelqu'un à l'avenir. Ça me rendait fou!
Tu as ceci...
# 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
changer par ceci:
# Database administrative login by Unix domain socket
local all postgres md5
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all peer
#local all all md5
et redémarrez le service postgresql en
Sudo /etc/init.d/posgresql restart
ce travail pour moi