Vous n'êtes pas identifié(e).
Pages : 1
Résolu !
Merci beaucoup, c'était donc celà. Pour info, l''autre serveur (8.4) n'existe plus, il a été supprimé au passage de squeezy à sid.
J'ai mis le port 5433, celui par défaut et cela fonctionne.
Maintenat j'attaque les soucis du passge de la version 2 à 3 de gtk...
J'ai deux fichiers dans /var/log/postgresql
-L'un pour la version 8.4 qui n'a pas d'entrée posterieure au 18/06
-L'autre pour la version 9.0 (celui qui ne se remplit pas)
Y en a-t-il d'autres qui soient pertinents ?
Ou bien, y a-t-il une fonction pour demarrer postgresql 9 pour les programmes c ? (/etc/init.d/postgresql start a été fait)
/etc/postgresql/9.0/main/start.conf contient des commentaires et "auto".
Oui, je suis sous debian.
Le fichier log est bien là.
Je l'ai affiché avec sudo cat /var/log/postgresql/postgresql-9.0-main.log
Si je me connecte avec psql sur une base qui n'existe pas, iil me refuse la connexion et il se remplit :
"la base de donn?es << toto >> n'existe pas"
Si je lance mon programme, il refuse aussi mais il ne se remplit pas.
En tout cas merci, il y a plein de fichiers log ici, je n'ai jamais regardé dans le répértoire /var/log, ca a l'air pratique.
eh bien merci pour la vitesse de réponse.
Le mot de passe ne semble pas poser de problème, :
PQconnectionNeedsPassword() renvoie 0.
Comment puis-je regarder les messages sur le serveur ?
Je remarque aussi que dans /etc/postgresql, j'ai 2 dossiers : 8.4 et 9.0. Peut-il y avoir un conflit ? Surtout que postgresql-client 8.4 n'est plus installé.
EDIT : je ne pense pas qu'il s'agisse d'un conflit
pg_config.libpq-dev et pg_config ne me retournent que des chemins vers 9.0. par exemple :
SHAREDIR = /usr/share/postgresql/9.0
bojour,
Ils ne sont pas affichés. Y a t'il une façon de les afficher ?
J'ai essayé de récuperer les messages avec :
PQsetNoticeProcessor(me,
PrintDbError,
NULL);
juste apres la connection et la fonction PrintDbError :
static void PrintDbError(void * UNUSED(arg), const char * message)
{
printf("DB : %s", message);
}
rien ne s'affiche, appeler PQsetNoticeProcessor avant la connection ne change rien non plus.
merci.
EDIT :
Je n'ai rien positionné de spécial, j'ai voulu créer le langage plpgsql mais il existe déjà.
Dans mon programme, je fais
setlocale(LC_ALL, "C");
Mais avec ou sans, il n'y a aucune différence.
Bonjour,
Le principale est dans le titre, je n'arrive pas à me connecter avec un programme en c alors qu'avec psql, il n'y a aucun problème.
en c :
static PGconn* me;
bool DBInit(void)
{
const char *keywords[3] = {"dbname", "user", NULL};
const char* values[3] = {"probe", "mika", NULL};
me = PQconnectdbParams(keywords, values, 0);
if (PQstatus(me) != CONNECTION_OK)
{
printf("failed to connect to database with %s = %s and %s = %s\n", keywords[0], values[0], keywords[1], values[1]);
exit(EXIT_FAILURE);
}
...
}
me retourne :
failed to connect to database with dbname = probe and user = mika
alors que
psql -d probe -U mika
me retourne :
psql (9.0.4)
Saisissez « help » pour l'aide.
probe=#
À noter que je viens de réinstaller mon système récemment et que sous postgres 8.4, cela fonctionnait très bien (avec PQconnectdb).
J'ai essayé plusieurs combinaisons, sans succès. Google n'est pas très bavard non plus.
configuration : postgresql 9.0.4, debian sid, cheveux foncés.
Une idée ?
merci d'avance
Pages : 1