banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Mon 12 April 2021 20:42

Loulaco
Juste Inscrit !
Date d'inscription: 12 Apr 2021
Messages: 6

QGIS 3.18: Fichier pgpass.conf

Bonjour,

Nous rencontrons un problème de reconnaissance de fichier pgpass.conf avec QGis sur Windows (version 3.18).

Ce fichier respecte bien les critères de configuration et d'enregistrement demandés par Postgresql car il fonctionne sous Linux.
Pourtant, malgré nos tentatives, QGis persiste à ne pas reconnaître ce fichier comme si nous ne l'avions pas créé.

Ainsi, nous comprenons que le problème provient de Windows mais ne parvenons pas à en trouver la source exacte. Serait-ce lié à ce bug ?

Le nom de mon compte Windows est identique à celui du serveur PostgreSQL, à une majuscule près.

Merci par avance pour toute piste de réponse.

Hors ligne

 

#2 Mon 12 April 2021 21:59

ThomasG
Membre
Lieu: Nantes
Date d'inscription: 9 Sep 2005
Messages: 947
Site web

Re: QGIS 3.18: Fichier pgpass.conf

Bonsoir,


Où avez vous mis votre fichier pgpass.conf? Normalement, il doit être situé dans %APPDATA%\postgresql\pgpass.conf
Est-ce le cas?

Pour rapidement tester que votre fichier pgpass.conf fonctionne, vous pouvez simplement ouvrir une invite de commande puis tapez

Code:

psql service=votre_nom_de_service

Si la connexion est établie, c'est que le problème n'est pas au niveau de votre configuration du fichier de service mais bien au niveau de QGIS sinon relisez https://docs.postgresql.fr/13/libpq-pgpass.html Vous devrez potentiellement utiliser la variable d'environnement PGPASSFILE


Cordialement

Thomas

Hors ligne

 

#3 Tue 13 April 2021 10:43

Loulaco
Juste Inscrit !
Date d'inscription: 12 Apr 2021
Messages: 6

Re: QGIS 3.18: Fichier pgpass.conf

Bonjour,

Nous vous remercions pour votre réponse. Le fichier pgpass.conf est bien enregistré à cet endroit et nous utilisons également une variable d'environnement PGPASSFILE supplémentaire au cas où, mais rien n'y fait, QGis nous demande toujours nos identifiants de connexion...

De plus, nous rencontrons un second problème avec psql. L'invite de commande Windows nous affiche le message d'erreur suivant : 'psql' n'est pas reconnu en tant que commande interne ou externe, un programme exécutable ou un fichier de commandes.

Notre installation de PostgreSQL dans Windows comprend PgAdmin et Command Line Tools mais pas de serveur.
Encore une fois, cette manipulation fonctionne correctement sur Linux.

Merci d'avance,

Hors ligne

 

#4 Tue 13 April 2021 12:44

jmarsac
Participant assidu
Lieu: NICE
Date d'inscription: 26 Oct 2005
Messages: 572
Site web

Re: QGIS 3.18: Fichier pgpass.conf

Loulaco a écrit:

De plus, nous rencontrons un second problème avec psql. L'invite de commande Windows nous affiche le message d'erreur suivant : 'psql' n'est pas reconnu en tant que commande interne ou externe, un programme exécutable ou un fichier de commandes.


Bonjour,

Vous devez vérifier que le chemin contenant l'exécutable psql (psql.exe) est bien dans la variable %PATH% du poste.


Jean-Marie
Azimut

Hors ligne

 

#5 Tue 13 April 2021 12:57

jmarsac
Participant assidu
Lieu: NICE
Date d'inscription: 26 Oct 2005
Messages: 572
Site web

Re: QGIS 3.18: Fichier pgpass.conf

ThomasG a écrit:

Bonsoir,


Où avez vous mis votre fichier pgpass.conf? Normalement, il doit être situé dans %APPDATA%\postgresql\pgpass.conf
Est-ce le cas?

Pour rapidement tester que votre fichier pgpass.conf fonctionne, vous pouvez simplement ouvrir une invite de commande puis tapez

Code:

psql service=votre_nom_de_service

Si la connexion est établie, c'est que le problème n'est pas au niveau de votre configuration du fichier de service mais bien au niveau de QGIS sinon relisez https://docs.postgresql.fr/13/libpq-pgpass.html Vous devrez potentiellement utiliser la variable d'environnement PGPASSFILE


Cordialement

Thomas


Thomas a mélangé les fichier pgpass et pg_service (que j'utilise de préférence)  :

exemple :

Code:

[nom_du_service]
host=nom_host
port=port
user=nom_utilisateur
password=mot_de_passe
dbname=nom_bd
application_name=nom_application

NB: le nom de l'application est facultatif et enregistré dans les logs de PostgreSQL

pour l'utiliser, il faut définir la variable %PGSYSCONFDIR% (au niveau Système ou Utilisateur) avec l'emplacement du fichier (généralement %APPDATA%\postgresql\)

et indiquer le nom du service avec QGIS ou psql :

Code:

psql "service=nom_du_service"

Voir https://www.postgresql.org/docs/13/libpq-pgservice.html

Dernière modification par jmarsac (Tue 13 April 2021 12:59)


Jean-Marie
Azimut

Hors ligne

 

#6 Tue 13 April 2021 13:26

ThomasG
Membre
Lieu: Nantes
Date d'inscription: 9 Sep 2005
Messages: 947
Site web

Re: QGIS 3.18: Fichier pgpass.conf

Salut,

Méa culpa sur le mélange .pgpass et pg_service.conf et merci pour la correction Jean Marie.

Concernant l'absence de psql, soit il n'est pas dans le chemin mais présent et il faut changer le path, soit s'il n'est pas présent et vous devez l'installer avec l'installeur PostgreSQL https://stackoverflow.com/a/60369228/768440 qui permet d'installer psql sans installer le reste de PostgreSQL (cocher uniquement Command line tools)

Cordialement

Thomas

Hors ligne

 

#7 Tue 13 April 2021 16:50

Loulaco
Juste Inscrit !
Date d'inscription: 12 Apr 2021
Messages: 6

Re: QGIS 3.18: Fichier pgpass.conf

Bonjour,

Merci pour cette solution. Le fichier pg_service a fonctionné immédiatement sous Windows pour l'accès à la base de donnée.

Nous avons donc créé un fichier pg_service.conf avec les informations suivantes :

Code:

[mon_service]
host=mon_hote
port=mon_port
user=utilisateur
password=mot_de_passe
dbname=base_de_donnees

Puis une variable PGSYSCONFDIR a été créée dans les variables d'environnement de Windows (au niveau utilisateur) avec le chemin d'accès à ce fichier, en l'occurence : C:\Users\Utilisateur\AppData\Roaming\postgresql\

Dans QGis, il s'agit de passer par le gestionnaire de sources de données (onglet PostgreSQL) ou ajouter des couches PostGis, puis de créer une nouvelle connexion en renseignant le nom et uniquement le service.

Dans psql, il suffit de taper, comme vous l'avez indiqué : psql service=mon_service et ça fonctionne immédiatement.

Quant à psql qui n'était pas reconnu comme une application par l'invite de commande, nous avons ajouté son chemin d'accès dans la variable %Path% des variables d'environnement de Windows : C:\Program Files\PostgreSQL\13\bin

Tout fonctionne parfaitement désormais, mais il reste à comprendre pourquoi pgpass.conf n'est pas reconnu sous Windows, y compris en indiquant son chemin d'accès dans la variable %PGPASSFILE% dans QGis ou dans les variables d'environnement de Windows.

En vous remerciant pour l'aide apportée.

Dernière modification par Loulaco (Tue 13 April 2021 16:52)

Hors ligne

 

Pied de page des forums

Powered by FluxBB