web-dev-qa-db-fra.com

FATAL: l'authentification par mot de passe a échoué pour l'utilisateur "postgres" (postgresql 11 avec pgAdmin 4)

J'ai récemment installé Postgresql 11, lors de l'installation, il n'y a aucune étape pour mettre le mot de passe et le nom d'utilisateur pour Postgres. Maintenant, dans pgAdmin 4, je voulais connecter la base de données au serveur et il me demande d'entrer un mot de passe, et je n'en ai pas mis en premier lieu. Tout le monde sait ce qui se passe. Je vous remercie!

10
Michelley

Vous pouvez accéder à votre pgpass.conf via pgAdmin -> Files -> open pgpass.conf

enter image description here

Cela vous donnera le chemin de pgpass.conf en bas de la fenêtre ( documentation officielle ).

Si vous ouvrez ensuite ce fichier et le modifiez à votre guise.

Si cela ne fonctionne pas, vous pouvez:

  • Recherchez votre pg_hba.conf, généralement dans C:\Program Files\PostgreSQL\9.1\data\pg_hba.conf
  • Si nécessaire, définissez les autorisations sur celui-ci afin de pouvoir le modifier; votre compte d'utilisateur pourrait ne pas être en mesure de le faire jusqu'à ce que vous utilisiez l'onglet de sécurité dans la boîte de dialogue des propriétés pour vous accorder ce droit en utilisant un remplacement administrateur.
  • Alternativement, recherchez notepad/notepad ++ dans votre menu de démarrage, faites un clic droit, choisissez "Exécuter en tant qu'administrateur", puis utilisez Fichier-> Ouvrir pour ouvrir pg_hba.conf de cette façon.
  • Modifiez-le pour définir la ligne "Host" pour l'utilisateur "postgres" sur l'hôte "127.0.0.1/32" sur "trust". Vous pouvez ajouter la ligne si elle n'est pas là; insérez simplement:

Host all postgres 127.0.0.1/32 trust

avant toute autre ligne. (Vous pouvez ignorer les commentaires, les lignes commençant par #).

  • Redémarrez le service PostgreSQL à partir du panneau de configuration Services (start-> run-> services.msc)

  • se connecter en utilisant psql ou pgAdmin4 ou ce que vous préférez

  • et courir ALTER USER postgres PASSWORD 'fooBarEatsBarFoodBareFoot'
  • supprimez la ligne que vous avez ajoutée à pg_hba.conf ou modifiez-la
  • redémarrez PostgreSQL à nouveau.
4
iLuvLogix

Remarque: CREATE USER est identique à CREATE ROLE, sauf qu'il implique la CONNEXION.

$ psql postgres
postgres=# create user postgres with superuser password 'postgres';
1
user1575148

Je sais que c'est une vieille question, mais j'ai eu le même problème, par ex. aucune boîte de dialogue pour définir le mot de passe pour Postgres lors de l'installation avec Postgresql 11.

Au lieu de faire toutes les manipulations de fichiers suggérées dans les autres réponses, j'ai supprimé Postgresql 11 et installé Postgresql 12, où j'ai été invité à définir un mot de passe lors de l'installation.

1
Drublic

Suivez les étapes ci-dessous si vous utilisez pgAdmin4 et que vous rencontrez une erreur lors de la mise à jour du mot de passe:

1] Ouvrez le fichier "pg_hba.conf" et recherchez "Connexions locales IPv4"

2] Voir la valeur dans la colonne "Méthode", elle doit être réglée sur "md5" car vous l'avez sélectionnée lors de l'installation.

3] Rendez la valeur "md5" vide et enregistrez le fichier. Redémarrez l'application pgAdmin4.

4] Maintenant, redéfinissez la valeur sur "md5" et entrez votre mot de passe dans l'application pgAdmin.

Vous devriez pouvoir le faire avec succès.

0

Pour la variante Windows - J'ai également rencontré ce méchant bogue à cause de pgAdmin pour mon installation Windows x64 de la version 9.2. Cela a laissé ma production paralysée.

Dans le dossier C:\Program Files\PostgreSQL\9.2\data ou C:\Program Files (x86)\PostgreSQL\9 .x\data, vous trouverez le fichier texte pg_hba.conf.

Trouvez les lignes suivantes:

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# IPv4 local connections:
Host    all             all             127.0.0.1/32            md5
# IPv6 local connections:
Host    all             all             ::1/128                 md5

et changez la MÉTHODE md5 en "confiance" comme ceci:

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# IPv4 local connections:
Host    all             all             127.0.0.1/32            trust
# IPv6 local connections:
Host    all             all             ::1/128                 trust

Depuis Windows> Exécutez le type "services.msc" et enter trouvez la bonne instance PostgreSQL et redémarrez-la.

Votre sécurité DB est maintenant complètement ouverte! Tenez compte de l'avertissement pour le renvoyer à md5 après avoir modifié l'heure d'expiration du mot de passe utilisateur pour indiquer l'année 2099 pour tous les utilisateurs concernés.

0
Pavan Patel