Postgresql: échec de l'authentification par mot de passe pour l'utilisateur "postgres"

j'ai installé PostgreSQL 8.4, Postgres client et Pgadmin 3. Échec de l'authentification de l'utilisateur "postgres" pour le client console et Pgadmin. J'ai tapé utilisateur comme "postgres" et mot de passe "postgres", parce que cela a fonctionné avant. Mais maintenant l'authentification est un échec. Je l'ai fait quelques fois sans ce problème. Que dois-je faire? Et ce qui se passe?

psql -U postgres -h localhost -W
Password for user postgres: 
psql: FATAL:  password authentication failed for user "postgres"
FATAL:  password authentication failed for user "postgres"
281
demandé sur I159 2011-10-08 13:37:43

12 réponses

si je me souviens bien, l'utilisateur postgres n'a pas de DB mot de passe défini sur Ubuntu par défaut. Cela signifie que vous pouvez vous connecter à ce compte uniquement en utilisant le compte postgres OS user .

en supposant que vous avez root accès sur la boîte que vous pouvez faire:

sudo -u postgres psql

si cela échoue avec une erreur database "postgres" does not exists , alors vous n'êtes probablement pas sur une Ubuntu ou Debian serveur: -) dans ce cas, il suffit d'ajouter template1 à la commande:

sudo -u postgres psql template1

si l'une de ces commandes échoue avec une erreur psql: FATAL: password authentication failed for user "postgres" alors vérifiez le fichier /etc/postgresql/8.4/main/pg_hba.conf : il doit y avoir une ligne comme celle-ci que la première ligne de non-commentaire:

local   all         postgres                          ident

Pour les nouvelles versions de PostgreSQL ident effectivement peut-être peer . C'est OK aussi.

à L'intérieur du psql shell vous pouvez donner le Utilisateur DB postgres un mot de passe:

ALTER USER postgres PASSWORD 'newPassword';

vous pouvez quitter le shell psql en tapant Ctrl D ou avec la commande \q .

Maintenant, vous devriez être en mesure de donner à pgAdmin un mot de passe valide pour le super-utilisateur DB et il sera heureux aussi. :- )

549
répondu A.H. 2016-11-14 05:07:47

la réponse du personnel est correcte, mais si vous voulez automatiser plus peut faire:

$ sudo -u postgres psql -c "ALTER USER postgres PASSWORD 'postgres';"

fait! Vous avez enregistré User = postgres et password = postgres.

Si vous n'avez pas de mot de passe pour l'Utilisateur postgres ubuntu:

$ sudo passwd postgres

112
répondu Diego 2012-12-24 19:33:07

c'était frustrant, la plupart des réponses ci-dessus sont correctes, mais ils omettent de mentionner que vous devez redémarrer le service de base de données avant les changements dans le pg_hba.fichier conf prennent effet.

donc si vous faites quelque chose comme ce qui précède

local all postgresident

puis redémarrer comme root ( sur centos c'est quelque chose comme service postgresql-9.2 redémarrer ) maintenant, vous devriez être en mesure d'accéder à la db comme l'utilisateur postgres

$ psql psql (9.2.4) Tapez "help" pour obtenir de l'aide.

postgres=#

Espère que cela ajoute de l'info pour les nouveaux utilisateurs postgres

30
répondu Miguel Pereira 2013-08-05 18:17:40

éditer le pg_hba.fichier conf, p.ex. avec sudo emacs /etc/postgresql/9.3/main/pg_hba.conf

remplacer toutes les méthodes d'authentification par trust . Changer le mot de passe Unix pour l'utilisateur" postgres". Redémarrer Le Serveur. Connectez-vous avec psql -h localhost -U postgres et utilisez le mot de passe Unix juste défini. Si cela fonctionne, vous pouvez réinitialiser pg_hba.fichier conf pour les valeurs par défaut.

12
répondu nottinhill 2014-07-10 15:43:43

si vous essayez de connecter Postgres shell en tant qu'utilisateur postgres, alors vous pouvez utiliser les commandes suivantes.

basculer vers l'utilisateur postgres

# su - postgres

se connecter à psql

# psql

L'espoir qui aide

10
répondu geekgugi 2015-02-16 13:32:11

essayez de ne pas utiliser le paramètre-W et laissez le mot de passe en blanc. Parfois, l'utilisateur est créé sans mot de passe.

si ça ne marche pas, réinitialisez le mot de passe. Il y a plusieurs façons de le faire, mais cela fonctionne sur de nombreux systèmes:

$ su root
$ su postgres
$ psql -h localhost
> ALTER USER postgres with password 'YourNewPassword';
8
répondu Francisco Puga 2011-10-08 10:03:43

en règle générale: vous ne devez jamais définir un mot de passe pour L'utilisateur POSTGRES .

si vous avez besoin d'un accès super-utilisateur de pgAdmin, faites un autre super-utilisateur. De cette façon, si les informations d'identification de ce superutilisateur sont compromises, vous pouvez toujours SSH dans la base de données hôte réelle et supprimer manuellement le superutilisateur en utilisant

sudo -u postgres -c "DROP ROLE superuser;"
3
répondu ardilgulez 2016-10-20 10:27:51

je voulais juste ajouter que vous devriez également vérifier si votre mot de passe est expiré.

Voir Postgres mot de passe de l'authentification échoue pour plus de détails.

0
répondu Jörg 2017-05-23 12:34:37

voici quelques combinaisons que j'ai essayé de connecter:

# login via user foo
psql -Ufoo -h localhost

sudo -u postgres psql postgres

# user foo login to postgres db
psql -Ufoo -h localhost -d postgres
0
répondu tokhi 2014-12-10 10:16:24

j'ai eu un problème similaire. Ubuntu m'a laissé me connecter dans la console avec n'importe quel mot de passe pour superuser. Sauf quand je me suis connecté avec-H localhost dans la commande psql line.

j'ai également observé que" localhost:8080/MyJSPSiteLogIn "- a montré: Fatal: une erreur d'autentication avec l'utilisateur"utilisateur".

pg_hba.conf était ok.

j'ai remarqué que deux versions de postgres fonctionnaient dans le même service.

résolu - désinstallation inutil de version.

0
répondu David Uvm 2018-03-30 19:51:54

pour ceux qui l'utilisent pour la première fois et n'ont aucune information sur ce qu'est le mot de passe, ils peuvent suivre les étapes ci-dessous(en supposant que vous êtes sur ubuntu):

  1. ouvrir le fichier pg_hba.conf dans /etc/postgresql/9.x/main

     sudo vi pg_hba.conf 
    

    2.modifier la ligne ci-dessous

     local   all             postgres                                peer
    

    à

     local   all             postgres                                trust
    
  2. redémarrer le serveur

      sudo service postgresql restart
    
  3. enfin vous pouvez vous connecter sans avoir besoin d'un mot de passe comme le montre la figure Finally you can login without need of a password as shown in the figure

Réf ici pour plus d'info

0
répondu Jose Kj 2018-08-16 08:21:19

j'espère que cela vous aidera à court de temps. Vous pouvez changer le mot de passe de Postgres sql en utilisant la commande bellow.

commande

sudo-u postgres psql

et ensuite vous pouvez mettre à jour le mot de passe

commande

Alter user postgres password "YOUR_NEW_PASSWORD";

-1
répondu Sonu patel 2018-07-02 10:58:46