PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 15/01/2021 12:47:46

Leehan
Membre

mot de passe et restauration d'une base de PostgreSQL 11 vers 13

Bonjour,

Je pensais maitriser un tant soit peu la restauration d'une bdd d'une instance vers une autre et je me trompais. (C'est dingue on a beau écrire des protocoles bien documentés qui fonctionnent lorsqu'on les écrit, et ben non toujours un truc qui m...e);
Bref...
J'ai sauvegardé les globales à plat et une base de données (pg_dump)  du serveur sous PostgreSQL11 (méthode Dalibo).
J'ai installé un serveur PostgreSQL 13 avec l'installateur Entreprisedb.
Les deux instances sont sous windows server 2012.
Après une première installation laborieuse de la nouvelle instance avec un souci de mot de passe pour l'utilisateur postgres (pas compris pourquoi mais c'est reglé après une reinstallation), tout est rentré dans l'ordre avec une connexion via pgadmin4 utilisant l'utilisateur postgres.
Je restaure les globales sauvegardées avec

psql -h localhost -p 5413 -U postgres -f c:\...

la restauration se passe sans message d'erreur.
Depuis, plus possible de se connecter depuis pgadmin4 : problème de mot de passe avec postgres. Qu'à cela ne tienne, j'essaie d'utiliser un compte restauré : impossible problème de mot de passe également.
- J'ose espérer que la sauvegarde et la restauration ds globales se fait avec les mots de passe ??? D'ailleurs je ne vois pas pourquoi postgres ne fonctionne plus alors que j'ai vérifié le mot de passe sur le serveur initial qui est le même sur la nouvelle instance.

Plus étrange, je peux me connecter en psql à avec postgres après restauration des globales. En revanche, si j'essaie de me connecter avec un autre utilisateur

psql - h localhost -U autre 

erreur =

"database "autre" n'existe pas

Plait-il ? -U c'est pour USER monsieur psql...

J'ai bien un dumpall de l'instance, complète donc, mais je souhaite éviter cela pour le moment.
Avez-vous quelques remarques, conseils ou expériences qui me permettraient de comprendre et résoudre ?
Merci,

Cette semaine est un cauchemar.

Dernière modification par Leehan (15/01/2021 14:52:30)

Hors ligne

#2 15/01/2021 14:34:52

gleu
Administrateur

Re : mot de passe et restauration d'une base de PostgreSQL 11 vers 13

Depuis, plus possible de se connecter depuis pgadmin4 : problème de mot de passe avec postgres. Qu'à cela ne tienne, j'essaie d'utiliser un compte restauré : impossible problème de mot de passe également.
- J'ose espérer que la sauvegarde et la restauration ds globales se fait avec les mots de passe ??? D'ailleurs je ne vois pas pourquoi postgres ne fonctionne plus alors que j'ai vérifié le mot de passe sur le serveur initial qui est le même sur la nouvelle instance.

Vous n'indiquez pas le système d'exploitation. Plus problématique, vous n'indiquez pas le véritable message d'erreur. Du coup, ça nous force de jouer aux devinettes. Il y a fort à parier que la valeur du paramètre password_encryption des deux serveurs soit différente. Ce serait le premier point à vérifier. S'il y a toujours un problème, merci d'indiquer le message d'erreur, histoire qu'on ne perde pas trop de temps.

"database "autre" n'existe pas

Normal, vous n'avez pas indiqué le nom de la base. À parrie du moment où vous n'indiquez pas le nom de la base à la commande psql, il la déduit à partir du nom de l'utilisateur PostgreSQL utilisé pour se connecter. Il est possible que ça ne soit pas ça, vu que la commande indiquée est évidemment fausse... il manque le h entre - et localhost...


Guillaume.

Hors ligne

#3 15/01/2021 15:04:56

Leehan
Membre

Re : mot de passe et restauration d'une base de PostgreSQL 11 vers 13

Désolé.

J'ai complété le message intial avec le système d'exploitation Windows : Server 2012.

il manque le h entre - et localhost

juste une faute de frappe, c'est corrigé dans le message initial itou.

Je vais tâcher de retrouver le message d'erreur qui stipulait la nécessité d'un mot de passe. Car j'ai dû passer à autre chose entre -temps, mais je vais y revenir.

Merci

Dernière modification par Leehan (15/01/2021 15:05:21)

Hors ligne

#4 15/01/2021 15:32:13

Leehan
Membre

Re : mot de passe et restauration d'une base de PostgreSQL 11 vers 13

le message d'erreur est

psql: erreur : FATAL : authentification par mot de passe échouée pour l'utilisateur postgres

Et ce après la restauration des globales.

la valeur du paramètre password_encryption des deux serveurs soit différente

sur le 11 : md5
sur le 13 : scram-sha-256

J'ai benoitement, changer cette dernière en md5, relancé le service postgres13 et tenter la connexion : échec psql comme pgadmin. Je cherche donc dans cette direction.
Merci

Hors ligne

#5 15/01/2021 15:56:11

gleu
Administrateur

Re : mot de passe et restauration d'une base de PostgreSQL 11 vers 13

Et quel est le contenu du fichier pg_hba.conf du nouveau serveur ?


Guillaume.

Hors ligne

#6 15/01/2021 16:05:04

Leehan
Membre

Re : mot de passe et restauration d'une base de PostgreSQL 11 vers 13

du changement à venir également coté method j'imagine ?

# 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

Hors ligne

#7 15/01/2021 17:13:31

gleu
Administrateur

Re : mot de passe et restauration d'une base de PostgreSQL 11 vers 13

En fait, avec la version 9.5, vos mots de passe ont eu droit à un hachage MD5. Pour ça, vous devez utiliser la méthode MD5 dans votre pg_hba.conf. Après avoir modifié ce fichier, vous devez simplement recharger la configuration.


Guillaume.

Hors ligne

#8 18/01/2021 10:21:15

Leehan
Membre

Re : mot de passe et restauration d'une base de PostgreSQL 11 vers 13

vous devez utiliser la méthode MD5 dans votre pg_hba.conf

le changement de méthode en md5 a permis de me connecter après la restauration des globales (et même pas besoin de sans recharger la config même).
Merci

Hors ligne

Pied de page des forums