Vous n'êtes pas identifié(e).
Pages : 1
Bonjour,
J'ai un serveur sous Windows 10 Pro avec un serveur de production PG13 qui fonctionne nickel. J'ai fais un backup (pg_dumpall) du cluster pour faire des tests sous PG14.
J'installe PG14 et j'essaie de faire un restore avec psql.
Impossible de m'y connecter...
psql -U postgres -p 5433 -W
Mot de passe :
psql: erreur : la connexion au serveur sur « localhost » (::1), port 5433 a échoué : FATAL: authentification par mot de passe échouée pour l'utilisateur « postgres »
Je fais toujours comme cela pour tester les nouvelles versions...cela a toujours fonctionner...
Je n'ai touché à aucun fichier de configuration après l'installation et suis en direct sur le serveur.
Une idée ?
Merci d'avance.
Hors ligne
Il faut commençer par regarder le pg_hba.conf en vigueur avec l'instance PostgreSQL 14.
Au passage, ne pas utiliser l'option -W avec psql. Sans l'option -W, s'il y a besoin d'un mot de passe, psql va le demander et s'il n'y en a pas besoin, il ne va pas le demander. Avec -W il va le demander même s'il n'est pas nécessaire.
@DanielVerite
http://blog-postgresql.verite.pro/
Hors ligne
Dans le fichier pg_hba.conf, il y a ceci.
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all scram-sha-256
# IPv4 local connections:
host all all 127.0.0.1/32 scram-sha-256
# IPv6 local connections:
host all all ::1/128 scram-sha-256
# Allow replication connections from localhost, by a user with the
# replication privilege.
local replication all scram-sha-256
host replication all 127.0.0.1/32 scram-sha-256
host replication all ::1/128 scram-sha-256
Sans l'option -W, psql va cherche le mot de passe dans le fichier %appdata%/postgresql/pgpass.conf
J'ai vérifié dans le fichier, le mot de passe est correct...Et j'ai utiliser l'option -W pour forcer la demande.
Je ne comprends pas ce qui se passe ...
Avec PG13 le mot de passe était en md5 par défaut et avec PG14 c'est scram-sha-256... Ce serait lié à mon problème ?
Dernière modification par genamiga (05/10/2021 15:01:23)
Hors ligne
La cause la plus probable est effectivement le scram-sha-256 dans pg_hba.conf (qui est un choix de l'installeur).
Avec scram-sha-256 requis dans pg_hba.conf, si les mots de passe sont encodés avec md5 dans la base, il me semble que la connexion n'est pas autorisée.
Or quand on fait un pg_dumpall d'une instance avec les mots de passe au format md5, le rechargement de ce dump recréé des mots de passe en md5.
Ce qu'il faudrait faire:
1) mettre trust dans pg_hba.conf pour pouvoir se connecter à l'instance sans MDP.
2) une fois connecté, changer le(s) mot(s) de passe quitte à remettre les mêmes (\password sous psql). Là ils vont être encodés en scram-sha-256 dans la base.
3) remettre scram-sha-256 dans pg_hba
Dernière modification par dverite (05/10/2021 15:14:04)
@DanielVerite
http://blog-postgresql.verite.pro/
Hors ligne
ça ne fonctionnait pas...
Voici ce que j'ai fais :
- déinstallation de PG14
- installation PG14
- avant de me connecter j'ai remplacé le scram-sha-256 par md5 dans le fichier pg_hba.conf
- restoration de mon backup de cluster PG14 (fait avec pg_dump_all)
Et la tout fonctionne parfaitement.
Hors ligne
Pages : 1