- J'ai installé
PostgreSQL
sur laEC2
machine et maintenant je veux changer le mot de passe de l'utilisateurpostgres
- je fais
$ sudo -u postgres psql psql (9.1.5) Type "help" for help. postgres=# ALTER USER postgres WITH PASSWORD 'newpasswd'; ALTER ROLE
- Ensuite, je quitte le shell et essaie de me connecter avec un nouveau mot de passe
$ psql -U postgres -W Password for user postgres: psql: FATAL: Peer authentication failed for user "postgres"
Ma PostgreSQL
version 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 pg_hba.conf
et voici à quoi cela 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
Ensuite, j'ai 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"
postgresql
postgresql-9.1
rêveur
la source
la source
pg_hba.conf
est configuré de telle manière qu'il n'accepte pas l'authentification par mot de passe.pg_hba.conf
Réponses:
Comme l'a dit willglynn, c'est probablement votre fichier pg_hba.conf.
Si vous avez la ligne suivante:
puis changez-le en:
Cela devrait alors vous permettre de vous connecter avec votre nouveau mot de passe (en supposant que vous le fournissez correctement) :)
la source
peer
ligne qui s'applique aux connexions locales (sockets de domaine UNIX) de l'postgres
utilisateur. Cela échouera à moins que l'extrémité distante ne s'exécute en tantpostgres
qu'utilisateur du système d' exploitation . Voir la documentation de pg_hba.conf pour une meilleure compréhension.django manage.py syncdb
, je continuerai à lire lapg_hba.conf
documentation que vous avez mentionnée, merci beaucoup pour votre aide-h localhost
Je voulais juste ajouter cela en plus de changer le
pg_hba.conf
fichier deà
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.J'espère que cela aidera quelqu'un à l'avenir. Ça me rendait fou!
la source
Tu as ceci...
changer par ceci:
et redémarrez le service postgresql en
ce travail pour moi
la source
pg_hba.conf
vous n'avez pas besoin de redémarrer Postgres. Recharger la configuration suffit. par exemplepg_ctl ... reload
ouselect pg_reload_conf()
Pour les gens qui deviennent fous après avoir changé de mot de passe plusieurs fois et essayé tout ce qui est mentionné ici, n'oubliez pas de vérifier l'expiration de la validité de l'utilisateur. Vous pouvez le régler sur 'jamais expirer' comme ça dans psql 9.x:
la source