Andesi - forum

Forum francophone pour Debian

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

#1 22/11/2009 16:41:03

ustilago
Membre
Lieu : Charente-Maritime
Inscription : 14/08/2004
Messages : 1 540
Site Web

[Réglé] postgreSQL : exécuter un script

Hello,

Comme je ne veux pas mourir bête, j'essaie d'utiliser cette base de données pour mettre en place un outil de suivi de flux rss (pour les curieux, ttrss).

J'ai réussi à créer un utilisateur ttrss, une base de données ttrss, mais je n'arrive pas à exécuter un script sur cette base. J'essaie avec cette commande :

$ psql -h localhost -d ttrss -U ttrss -f ttrss_schema_pgsql.sql -W

Mais il refuse mon mot de passe sad

J'essaie avec les différents utilisateurs existants, et toujours la même réponse :

psql: FATAL:  authentification par mot de passe échouée pour l'utilisateur  « ttrss »

La documentation de postgreSQL n'est pas très explicite, et je n'y trouve pas vraiment mon bonheur à ce niveau.

Quelqu'un aurait-il une heureuse idée ? wink

Usti

Dernière modification par ustilago (24/11/2009 22:09:02)


Faut pas énerver un tigre ...

Hors ligne

#2 22/11/2009 17:42:58

armen
Membre
Lieu : 48°03'03" N - 04°59'55" W
Inscription : 09/03/2004
Messages : 1 937

Re : [Réglé] postgreSQL : exécuter un script

Bonjour,

As-tu essayé de mettre le mot de passe dans le fichier ~/.pgpass* et de voir du côté de l'option --no-password (ou -w pour faire court).

Armen content de prendre de vitesse l'expert pg du forum

*) les lignes du fichier .pgpass sont de la forme

hostname:port:database:username:password

"La grandeur d'un métier est peut-etre, avant tout, d'unir des hommes : il n'est qu'un luxe véritable, et c'est celui des relations humaines." Antoine de Saint-Exupéry

Hors ligne

#3 22/11/2009 23:11:47

ustilago
Membre
Lieu : Charente-Maritime
Inscription : 14/08/2004
Messages : 1 540
Site Web

Re : [Réglé] postgreSQL : exécuter un script

Re-Bonsoir,

Merci de ton aide Armen.

La première solution (--no_password ou -w) ne fonctionne pas, option inconnue hmm

La seconde ne donne pas plus de résultats, j'ai toujours la même erreur de mot de passe invalide. sad

Diantre, il doit bien y avoir un moyen autre que de passer par un clickodrome ! Je continue mes recherches de mon côté, le temps que le Spécialiste Andésien passe dans le coin smile

Usti


Faut pas énerver un tigre ...

Hors ligne

#4 23/11/2009 02:07:59

ioguix
Administrator
Lieu : Paris
Inscription : 25/04/2003
Messages : 3 945

Re : [Réglé] postgreSQL : exécuter un script

Salut,

Je trouve la doc de postgres très bien faite moi smile

Pour répondre à ta question, as-tu bien précisé le mot de passe de ton utilisateur lorsque tu l'a créé ?
As-tu configuré ton /etc/postgresql/<version>/main/ph-hba.conf à ton goût ?
ttrss as-t-il les droits pour créer une base et as-tu créé la base avec cet utilisateur ? Si non, ttrss as-t-il les droits de se connecter à cette base (normalement oui par défaut) ?

Bref, je te propose de re-créer le mot de passe de ton utilisateur et de réessayer :

$ su -c "su postgres -c psql ttrss"
ttrss=# ALTER ROLE ttrss ENCRYPTED PASSWORD 'tonPassUtilisateur';
ttrss=# \q
$ psql -U ttrss -h localhost ttrss
Mot de passe pour l'utilisateur ttrss :
ttrss=>

Et vérifie bien que t as ces deux ligne dans ton pg_hba:

host    all         all         127.0.0.1/32          md5
host    all         all         ::1/128               md5

Si ça marche pas, on creusera encore un peu wink

++


[email protected]
"Contrairement aux chasseurs qui, eux, ne sont pas des lapins, les pollueurs, eux sont des ordures. - Philippe Geluck, Le chat"
gpg: 0828C222

Hors ligne

#5 24/11/2009 22:08:29

ustilago
Membre
Lieu : Charente-Maritime
Inscription : 14/08/2004
Messages : 1 540
Site Web

Re : [Réglé] postgreSQL : exécuter un script

Re,

J'ai tenté pas mal de choses ce midi avec Ioio sur irc, et mon serveur n'a rien voulu entendre sad

Comme j'utilise un mot de passe généré aléatoirement avec : ou ", je me suis dit que ça pouvait venir de là.

Je viens de supprimer la base et l'utilisateur, et de tout recréer (ustilago est superutilisateur) avec un mot de passe conventionnel (genre meuhmeuh wink ):

$ createuser -U ustilago -P
Saisissez le nom du rôle à ajouter : ttrss
Saisissez le mot de passe pour le nouveau rôle : 
Saisissez-le à nouveau : 
Le nouveau rôle est-il super-utilisateur ? (o/n) n
Le nouveau rôle est-il autorisé à créer des bases de données ? (o/n) n
Le nouveau rôle est-il autorisé à créer de nouveaux rôles ? (o/n) n
$ createdb -U ustilago -h localhost -O ttrss ttrss
Mot de passe : 
$ psql -d ttrss -h localhost -U ttrss
Mot de passe pour l'utilisateur ttrss : 
Bienvenue dans psql 8.3.8, l'interface interactive de PostgreSQL.
[...]

smile

Je viens de passer mon script, avec la commande citée dans mon premier message, et mis à part quelques avertissements, il est passé au poil !

Merci Ioguix, comme ça je vais pouvoir persévérer avec psql big_smile

Usti


Faut pas énerver un tigre ...

Hors ligne

#6 02/12/2009 20:47:32

ioguix
Administrator
Lieu : Paris
Inscription : 25/04/2003
Messages : 3 945

Re : [Réglé] postgreSQL : exécuter un script

Salut,

Je reviens une dernière fois là dessus.

On peut utiliser tout plein de caractères bizarre dans les mots de passes avec postgresql. J'en avais fait la démonstration pdt notre conversation sur IRC.

Je ne sais plus la méthode que tu avais utilisé pour renseigner ton mot de passe, mais à mon avis, ça vient de là.

Voilà, fallait tout de même le préciser smile

/me en train de perdre sa voix


[email protected]
"Contrairement aux chasseurs qui, eux, ne sont pas des lapins, les pollueurs, eux sont des ordures. - Philippe Geluck, Le chat"
gpg: 0828C222

Hors ligne

Pied de page des forums