Vous n'êtes pas identifié(e).
Pages : 1
Bonjour,
J'ai pu installer pgAgent sur le serveur cependant lors du démarrage du service, une erreur se produit:
La ligne d'installation du service:
"C:\Program Files (x86)\pgAdmin III\1.12\pgagent" INSTALL pgAgent -u postgres -p <win_usr_pwd> hostaddr=<db_serv_ip_addr> dbname=postgres user=postgres
J'ai configuré le fichier pgpass.conf, situé dans "%APPDATA%/Roaming/postgresql/", par souci de suivre les consignes de la documentation je l'ai également placé dans "%APPDATA%/postgresql/" de l'utilisateur exécutant le service.
<db_serv_ip_addr>:5432:postgres:postgres:<db_user_pass>
Lorsque je tente de démarré le service j'ai le message suivant dans l'eventlog/Application de windows serveur.
Couldn't create the primary connection (attempt 2): fe_sendauth: no password supplied
Ca fait deux jours que je cale sur ce problème et que je parcours les forums en quête de solution.
J'ai l'impression que pgAgent n'arrive pas à trouver le fichier de mot de passe...
Merci pour votre aide.
Hors ligne
Testez avec psql si vous arrivez à vous connecter sans mot de passe. Les deux outils peuvent utiliser ce fichier.
Guillaume.
Hors ligne
Merci de prendre le temps de me répondre.
Dans la CLI, lorsque je tape la commande suivante
psql -U postgres -h <db_serv_ip_adr> -d postgres
l'application me demande le mot de passe de l'utilisateur postgres. Je suppose donc que l'on peut dire que l'appli ne trouve pas le fichier.
Hors ligne
C'est pas psql qui cherche ce fichier mais la bibliothèque de PostgreSQL. Pour en revenir à votre problème, soit le fichier est au mauvais endroit soit il est mal codé.
Guillaume.
Hors ligne
Le fichier pgpass.conf est placé dans deux répertoires
Il a été créé automatiquement dans celui-ci
C:\Users\postgres\AppData\Roaming\postgresql
et je l'ai copié dans
C:\Users\postgres\AppData\postgresql
afin de correspondre a la documentation technique, qui indique %APPDATA%\postgresql
Un peu plus de précision:
Je ne sais pas si ça a un rapport, mais lors de l'installation de pg j'ai copié le .exe dans le répertoire de pgAdmin III, puis exécuté le script sql. Ensuite lorsque j'ai lancé la ligne de commande permettant l'installation du service, j'ai obtenu des erreurs m'indiquant que des librairies étaient manquantes (si mes souvenirs sont bon). J'ai trouvé sur un fofo anglais, qui indiquait cela était du au fait que pgAgent recherchait des dll 32bits et qu'il ne les trouvaient pas car celles installées étaient en 64bits. Il fallait donc récupérer les .dll 32bits d'une installation de postgres x86, et ensuite les copier dans le répertoire de pgAgent, ce que j'ai fait.
Suite à cela, pgAgent s'est installé mais ne veut toujours pas démarrer. Voyez-vous un rapport ?
Hors ligne
Non, je n'y vois pas de rapport. D'après la ligne de commande, le service utilise l'utilisateur Windows postgres. Il faut peut-être s'assurer que c'est bien le cas en allant dans les propriétés du service pgagent.
Quand vous avez lancé la commande psql, c'était en tant que quel utilisateur Windows ? postgres ? parce que suivant l'utilisateur, le fichier ne se trouve pas au même endroit.
Guillaume.
Hors ligne
L'utilisateur Windows est bien postgres et non j'étais sous une session d'administration.
Lorsque je me place sous la session postgres, la commande fonctionne sans problème... cependant le service ne veut toujours par démarrer.
J'ai modifier le fichier pgpass.conf, afin qu'il ait un mdp pour se connecter a la db. C'est pour cela que cela ne fonctionnait pas sous la session d'administration. Maintenant la commande psql fonctionne
psql -U postgres -h <serv_ip_addr> -d postgres
Dernière modification par GloReX (10/03/2011 13:18:44)
Hors ligne
Personne n'a d'idée parce que je sèche...
Hors ligne
Si la console psql fonctionne, que se passe t'il au niveau de pgagent ? Toujours le message : «Couldn't create the primary connection (attempt 2): fe_sendauth: no password supplied» ?
Il faudrait vérifier que vous arrivez à faire du psql avec l'utilisateur système postgres, qui, je présume, est celui qui va aussi faire fonctionner pgagent. Sous unix ça se fait avec un su ou sudo, sous windows, il faudra réussir à le faire avec un 'runas'
=> Essayez déjà d'ouvrir un prompt en tant que postgres, avec un runas ……… cmd.com
Je ne me souviens plus des options de runas par contre, désolé.
Marc.
Hors ligne
Bonsoir
Attention sous Windows un service, via un utilisateur système n'a pas de HOME, c'est con mais c'est comme ça, donc la manipulation du pgpass.conf ne marche pas.
il faut forcer soit les variables d'environnement sur l'utilisateur de la session, ou utiliser la notion de service que j'ai décrite ici
Cordialement,
Christophe Chauvet
Directeur Technique
Sylëam Info Services
Mon site
Hors ligne
Bonsoir,
Je n'ai pas encore eu le temps de me replonger dans ce problème...
Merci Marc et KrysKool pour vos réponses, dès que j'ai pu les tester j'informe le fofo du retour.
Hors ligne
Bonjour,
J'ai essayer votre solution, qui malheureusement chez moi ne veut pas fonctionner... En désespoir de cause et n'ayant plus de temps a perdre je vais faire le mal absolu mettre... mettre le mdp dans la chaine de connexion (Oui, c'est très très mal)
Le service démarre mais il m'indique que le schéma n'est pas à jour. Je dois être maudis
Unsupported schema version: 4445112. Version 24481452 is required - please run pgagent_upgrade.sql.
Bien entendu j'ai utilisé le fichier de création du schéma livré avec pgAgent...
Hors ligne
Bonjour,
Le service se lance et semble se connecter à la base postgres. Il s'agissait d'un simple problème de droit sur les bdd et schémas, ou oubli de GRANT USAGE.
Y a plus qu'a configuré les jobs et croiser les doigts pour qu'enfin les choses se passent bien.
Bonne journée et merci a tous.
Hors ligne
Excellente nouvelle. Merci pour le retour !
Marc.
Hors ligne
Pages : 1