Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 01/11/2019, à 16:12

vince2corte

[RESOLU] Impossible de se connecter à PostgreSQL 12

Bonjour à tous,
Je suis sous Ubuntu 18.04 64bit. J'ai installé PostgreSQL à partir du dépôt officiel. À chaque nouvelle version publiée, celle-ci m'est proposée automatiquement, et s'installe sans problème. J'ai donc maintenant 3 versions installée : la 10, la 11 et la 12.
J'ai configuré les postgresql.conf pour qu'il utilisent respectivement les ports 5433, 5432 et 5434.
Les trois versions semblent tourner correctement (les lignes retournées sont en vert) :

$ pg_lsclusters 
Ver Cluster Port Status Owner    Data directory              Log file
10  main    5433 online postgres /var/lib/postgresql/10/main /var/log/postgresql/postgresql-10-main.log
11  main    5432 online postgres /var/lib/postgresql/11/main /var/log/postgresql/postgresql-11-main.log
12  main    5434 online postgres /var/lib/postgresql/12/main /var/log/postgresql/postgresql-12-main.log

Avant d'installer la version 12, j'avais créé un super-utilisateur postgresql avec mot de passe qui me permet d'accéder à toutes les bases via PgAdmin 4 et mes développements avec Apache/PHP.
Bien entendu, j'ai modifié les fichiers pg_hba.conf pour que la méthode md5 soit utilisée sur les connexion utilisées :

# "local" is for Unix domain socket connections only
local   all             all                                     md5
# IPv4 local connections:
host    all             all             127.0.0.1/32            md5

Tout cela fonctionnait (et fonctionne toujours) parfaitement pour les version 10 et 11. Par contre, impossible de me connecter à la version 12. Ni en utilisant PgAdmin 4, ni en ligne de commande :

postgres=# \conninfo
Vous êtes connecté à la base de données « postgres » en tant qu'utilisateur « XXXX » sur l'hôte « localhost » (adresse « 127.0.0.1 ») via le port « 5432 ».
Connexion SSL (protocole : TLSv1.3, chiffrement : TLS_AES_256_GCM_SHA384, bits : 256, compression : désactivé)
postgres=# \c postgres XXXX localhost 5433
Mot de passe pour l'utilisateur XXXX : 
psql (12.0 (Ubuntu 12.0-2.pgdg18.04+1), serveur 10.10 (Ubuntu 10.10-1.pgdg18.04+1))
Connexion SSL (protocole : TLSv1.3, chiffrement : TLS_AES_256_GCM_SHA384, bits : 256, compression : désactivé)
Vous êtes maintenant connecté à la base de données « postgres » en tant qu'utilisateur « XXXX » sur l'hôte « localhost » (adresse « 127.0.0.1 » ) via le port « 5433 ».
postgres=# \c postgres XXXX localhost 5434
Mot de passe pour l'utilisateur XXXX : 
FATAL:  authentification par mot de passe échouée pour l'utilisateur  « XXXX »
FATAL:  authentification par mot de passe échouée pour l'utilisateur  « XXXX »
Connexion précédente conservée

Comme vous pouvez le constater ci-dessus, la connexion fonctionne pour les version 10 et 11 mais pas pour la version 12.

Voici un extrait du ficher de log de la version 12 :

2019-11-01 15:20:20.794 CET [23817] LOG:  starting PostgreSQL 12.0 (Ubuntu 12.0-2.pgdg18.04+1) on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0, 64-bit
2019-11-01 15:20:20.794 CET [23817] LOG:  en écoute sur IPv4, adresse « 127.0.0.1 », port 5434
2019-11-01 15:20:20.796 CET [23817] LOG:  écoute sur la socket Unix « /var/run/postgresql/.s.PGSQL.5434 »
2019-11-01 15:20:20.805 CET [23818] LOG:  le système de bases de données a été arrêté à 2019-11-01 15:19:08 CET
2019-11-01 15:20:20.809 CET [23817] LOG:  le système de bases de données est prêt pour accepter les connexions
2019-11-01 15:26:29.967 CET [24417] XXXX@postgres FATAL:  authentification par mot de passe échouée pour l'utilisateur  « XXXX »
2019-11-01 15:26:29.967 CET [24417] XXXX@postgres DÉTAIL:  Le rôle « XXXX » n'existe pas
	La connexion correspond à la ligne 92 du pg_hba.conf : « host    all             all             127.0.0.1/32            md5 »
2019-11-01 15:26:29.976 CET [24422] XXXX@postgres FATAL:  authentification par mot de passe échouée pour l'utilisateur  « XXXX »
2019-11-01 15:26:29.976 CET [24422] XXXX@postgres DÉTAIL:  Le rôle « XXXX » n'existe pas
	La connexion correspond à la ligne 92 du pg_hba.conf : « host    all             all             127.0.0.1/32            md5 »
2019-11-01 15:26:29.978 CET [24423] XXXX@postgres FATAL:  authentification par mot de passe échouée pour l'utilisateur  « XXXX »
2019-11-01 15:26:29.978 CET [24423] XXXX@postgres DÉTAIL:  Le rôle « XXXX » n'existe pas
	La connexion correspond à la ligne 92 du pg_hba.conf : « host    all             all             127.0.0.1/32            md5 »
2019-11-01 15:28:02.140 CET [24551] XXXX@postgres FATAL:  authentification par mot de passe échouée pour l'utilisateur  « XXXX »
2019-11-01 15:28:02.140 CET [24551] XXXX@postgres DÉTAIL:  Le rôle « XXXX » n'existe pas
	La connexion correspond à la ligne 92 du pg_hba.conf : « host    all             all             127.0.0.1/32            md5 »
2019-11-01 15:28:02.149 CET [24554] XXXX@postgres FATAL:  authentification par mot de passe échouée pour l'utilisateur  « XXXX »
2019-11-01 15:28:02.149 CET [24554] XXXX@postgres DÉTAIL:  Le rôle « XXXX » n'existe pas
	La connexion correspond à la ligne 92 du pg_hba.conf : « host    all             all             127.0.0.1/32            md5 »
2019-11-01 15:28:02.151 CET [24555] XXXX@postgres FATAL:  authentification par mot de passe échouée pour l'utilisateur  « XXXX »
2019-11-01 15:28:02.151 CET [24555] XXXX@postgres DÉTAIL:  Le rôle « XXXX » n'existe pas
	La connexion correspond à la ligne 92 du pg_hba.conf : « host    all             all             127.0.0.1/32            md5 »

J'ai aussi tenté de créer un nouveau super utilisateur de test. Il a très bien fonctionné pour les version 10 et 11 mais toujours pas la 12.

J'ai comparé les fichiers de configuration pg_ctl.conf, pg_hba.conf, pg_ident.conf, postgresql.conf et start.conf et n'ai rien remarqué qui pourrait expliquer le problème.

Là, je ne sais plus trop quoi faire.

Auriez-vous une idée ou une piste ? Merci d'avance !

Dernière modification par vince2corte (Le 30/05/2021, à 00:36)


La liberté commence où l'ignorance finit  - Victor Hugo
i7 2600k - P8Z77-V - NVidia GTX 680 2Go - EXSYS EX-16415 - RAM 24Go - SSD 120Go & 250Go - HD 1To - Moniteur 27'' S27A850D en 2560x1440 - Ubuntu 18.04 LTS 64 bits & 12.04 LTS 64 bits - NAS Synology DS211+ 2x2To RAID 1
Plein de Raspberry 3 B/B+ pour faire des serveurs de données qui dépotent !

Hors ligne

#2 Le 02/11/2019, à 16:10

bruno

Re : [RESOLU] Impossible de se connecter à PostgreSQL 12

Bonjour,

La seule version des dépôts officiels (ceux d'Ubuntu) est la 10.
Je ne comprends pas l’intérêt d'avoir trois versions de PostgreSQL sur la même machine, mais il y a probablement eu des modifications importantes dans la version 12 qui provoquent ce problème d’authentification : https://www.postgresql.org/docs/12/release-12.html
Et j'ai un gros doute sur la validité d'une méthode d'authentification md5… cf. https://www.postgresql.org/docs/12/auth-password.html

En ligne

#3 Le 02/11/2019, à 18:41

vince2corte

Re : [RESOLU] Impossible de se connecter à PostgreSQL 12

Bonjour,
Ben en fait, à l'origine, ce n'est pas moi qui voulais avoir plusieurs versions. Comme c'était installé d'origine en utilisant les dépôts officiel de PostgreSQL pour Ubuntu, je l'ai laissé. Et puis finalement ça m'a été très utile : je développe une très grosse base de donnée et certaines fonctions avancées de Postgis ne sont disponibles que pour la version 11 de Postgresql (soit la version 2.5.2 de Postgis si je me souviens bien). Et puis avec plusieurs versions, je peux facilement tester le portage de cette base vers des environnements plus récents. Pour info, je l'ai commencée avec Postgresql 9.6 / PHP 5.3 (Ubuntu 12.04) puis elle avec évolué vers PostgreSQL 10 / PHP 7.2 (Ubuntu 18.04) et elle est maintenant à la fois sur ma machine de dev  PostgreSQL 11 / PHP 7.2 (Ubuntu 18.04) et le serveur en ligne qui l'héberge de façon officielle avec PostgreSQL 11 / PHP 7.3. (Ubuntu Server 18.04), le tout sans aucun warning ni notice de PHP (avec le signalement de toutes les erreurs activé).

Merci pour le lien, mais je l'avais déjà consulté, ainsi que la doc officielle sur sur l’authentification dans la version 12 et je n'y ait pas compris grand chose. C'est un peu trop velu pour moi. J'ai juste remarqué que la version 11 et 12 étaient identiques, d'où désaroi.

Pour le coté sécure, les données traitées ne sont ni confidentielles ni stratégiques. Elles ne présentent aucun intérêt pour des pirates chevronnés. Mais il est vrai qu'il faudra que je me penche sur la question un jour. En attendant, md5 fait le job.

Dernière modification par vince2corte (Le 02/11/2019, à 18:56)


La liberté commence où l'ignorance finit  - Victor Hugo
i7 2600k - P8Z77-V - NVidia GTX 680 2Go - EXSYS EX-16415 - RAM 24Go - SSD 120Go & 250Go - HD 1To - Moniteur 27'' S27A850D en 2560x1440 - Ubuntu 18.04 LTS 64 bits & 12.04 LTS 64 bits - NAS Synology DS211+ 2x2To RAID 1
Plein de Raspberry 3 B/B+ pour faire des serveurs de données qui dépotent !

Hors ligne

#4 Le 30/05/2021, à 00:35

vince2corte

Re : [RESOLU] Impossible de se connecter à PostgreSQL 12

J'ai enfin trouvé la réponse à ce problème, et ça permet d'affiner la config. En fait, quand on définit un user, il n'est pas valide pour tous les serveurs du cluster, mais uniquement pour le port par défaut (5432) si on ne précise rien. Donc, on le voit, il est utilisable sur le port 5432, mais ne peut être utilisé pour les autres serveur. La solution est très simple : préciser le port (par exemple pour moi la version 12 est sur le port 5434) :

sudo su postgres
createuser --superuser --port=5434 XXXX
psql -p 5434
\password XXXX
YYYY
YYYY
\q
exit
sudo pg_ctlcluster 12 main restart

C'est tout. À partir de là, la version 12 est totalement accessible avec Pgadmin4 et mes serveurs WEB par exemple.
Je fais ce retour car je n'ai pas trouvé de doc à ce sujet. J'ai juste tenté un truc en me servant de l'aide intégrée.
Si ça peut aider un autre dev en galère...


La liberté commence où l'ignorance finit  - Victor Hugo
i7 2600k - P8Z77-V - NVidia GTX 680 2Go - EXSYS EX-16415 - RAM 24Go - SSD 120Go & 250Go - HD 1To - Moniteur 27'' S27A850D en 2560x1440 - Ubuntu 18.04 LTS 64 bits & 12.04 LTS 64 bits - NAS Synology DS211+ 2x2To RAID 1
Plein de Raspberry 3 B/B+ pour faire des serveurs de données qui dépotent !

Hors ligne