PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

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

#1 10/08/2010 15:16:20

sophonie
Membre

Test de connexion basique

Bonjour à toutes et à tous,

Ma base de données PostgreSQL est active sur le serveur localhost port 5432, via PHP j'ai conçu
un script permettant de tester la connection au serveur de Base de données.
Je n'arrive pas à me connecter à la Base de données, voici le script PHP permettant de tester
la connection :

--- fichier connection.inc.php ---
<?php
$connection = pg_connect("host=localhost port=5432 dbname=jogstore")
     or die ("Nao consegui conectar ao PostGres --> " . pg_last_error($conn)); 
?>
--- fichier accueil.php ---
<div id="container">
            <h5>Fiche article</h5>
                <?php include('connection.inc.php'); 

                $result=pg_exec("SELECT COUNT(*) FROM articles;");
                $fetch = pg_fetch_row($result); 

                pg_close($connection); 
                ?> 
</div>

Dans l'affichage du fichier accueil.php, j'ai le message Nao consegui conectar ao PostGres -->
La connection ne semble pas se faire ....

Merci d'avance.
Sophonie.

Dernière modification par sophonie (10/08/2010 15:16:43)

Hors ligne

#2 10/08/2010 15:23:02

Marc Cousin
Membre

Re : Test de connexion basique

- C'est normal qu'il n'y ait même pas de nom d'utilisateur à la chaine de connexion ?
- Ça serait bien de regarder dans la log de postgresql. Il est très probable qu'il dise pourquoi il a rejeté la connexion.


Marc.

Hors ligne

#3 10/08/2010 15:45:17

sophonie
Membre

Re : Test de connexion basique

- C'est normal qu'il n'y ait même pas de nom d'utilisateur à la chaine de connexion ?

J'ai rajouté un nom d'utilisateur et un mot de passe, mais cela ne change rien.

Ou se trouve le fichier du log des erreurs de PostgreSQL, j'ai regardé dans /var/log et je ne trouve rien!

Hors ligne

#4 10/08/2010 15:51:16

Marc Cousin
Membre

Re : Test de connexion basique

Ça dépend de beaucoup de paramètres, dont la distribution et le package postgresql utilisé.


Marc.

Hors ligne

#5 10/08/2010 15:54:13

sophonie
Membre

Re : Test de connexion basique

C'est vrai autant pour moi, j'utilise une distribution Linux F12, j'ai fais l'installation de PostgreSQL
via le repo pgdg84 en utilisant yum.

Hors ligne

#6 10/08/2010 16:07:30

sophonie
Membre

Re : Test de connexion basique

Le fichier de log de PostgreSQL se trouve dans le répertoire suivant :
/var/lib/pgsql/data/pg_log
pour ma distribution

Hors ligne

#7 10/08/2010 16:10:34

Marc Cousin
Membre

Re : Test de connexion basique

La log est probablement dans un sous répertoire pg_log du répertoire où se trouve l'instance PostgreSQL.

Sinon vous pouvez toujours rechercher sur toute votre arborescence :

find / -name 'p*.log'

Ça ne devrait pas vous retourner des centaines d'entrées, et le fichier sera vraisemblablement dans la liste.


Marc.

Hors ligne

#8 10/08/2010 16:12:08

sophonie
Membre

Re : Test de connexion basique

Il s'agit du fichier postgresql-Tue.log mais il n'y a rien concernant l'echec de la connexion à la
Base de données.

Hors ligne

#9 10/08/2010 16:45:25

Marc Cousin
Membre

Re : Test de connexion basique

C'est étrange. Cela laisserait supposer que vous n'arrivez même pas à vous y connecter. Pouvez-vous essayer de vous y connecter via psql, avec la commande suivante (équivalente):

psql -h localhost -U votre_utilisateur -p 5432 jogstore

Et voir quel message vous récupérez.


Marc.

Hors ligne

#10 11/08/2010 09:18:25

sophonie
Membre

Re : Test de connexion basique

J'obtiens le message d'erreur suivant :

psql: FATAL:  authentification Ident échouée pour l'utilisateur « joachim »

par contre si je tape la commande suivante dans le login de shell de joachim :

psql jogstore

je  me connecte directement sans aucun message d'erreur.

Dernière modification par sophonie (11/08/2010 09:19:29)

Hors ligne

#11 11/08/2010 10:43:28

gleu
Administrateur

Re : Test de connexion basique

Le problème se trouve donc dans la configuration du fichier pg_hba.conf. La méthode d'authentification pour les connexions "local" (socket unix) est différente de la méthode pour les connexions TCP/IP. Il vaudrait mieux passer par la méthode md5.


Guillaume.

Hors ligne

#12 11/08/2010 10:49:35

sophonie
Membre

Re : Test de connexion basique

Bonjour gleu,

Dans le fichier pg_hba quel ligne dois-je modifier pour permettre la connection à la Base de données?
J'ai modifié la partie concernant la méthode d'identification, en mettant md5 à la place de ident mais
j'ai toujours le même mesage d'erreur, ou soit lorsque je tente de lancer le serveur postgres ce dernier
ne se lance pas.

Merci d'avance.
Sophonie.

Dernière modification par sophonie (11/08/2010 10:52:44)

Hors ligne

#13 11/08/2010 10:58:29

gleu
Administrateur

Re : Test de connexion basique

J'espère que vous avez sauvegardé votre fichier avant de faire votre modification. Revenez à la configuration précédente et indiquez nous ce qui se trouve dans ce fichier.


Guillaume.

Hors ligne

#14 11/08/2010 11:09:16

sophonie
Membre

Re : Test de connexion basique

La sauvegarde des fichiers est la première opération mise en oeuvre avant toute autre ...

# TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD

# "local" is for Unix domain socket connections only
local   all         all                               md5
# IPv4 local connections:
host    all         all         127.0.0.1/32         ident
host    inventaire  all         127.0.0.1       255.255.255.255      ident map=audit
host    jogstore    all         127.0.0.1       255.255.255.255      ident map=audit
# IPv6 local connections:
host    all         all         ::1/128               ident

Hors ligne

#15 11/08/2010 11:59:44

sophonie
Membre

Re : Test de connexion basique

[Résolu]
J'ai mis la méthode d'authentification à ident afin de pouvoir me connecter à la Base de données
via psql. Ensuite dans psql je tape la commande suivante :

\password

car en fait dans la doc. il est mentionné ceci :

Si aucun mot de passe n'est enregistré pour un utilisateur, le mot de passe enregistré est nul et l'authentification par mot de passe échoue systématiquement pour cet utilisateur

Je crée un mot de passe pour l'utilisateur joachim dans la Base de données jogstore.

Ensuite je modifie le fichier pg_hba.conf en mettant la méthode d'authentification à md5, puis
je re-démarre le serveur postgres ... et je peux me connectant sans problème en tapant la
commande suivante, avec le mot de passe :

psql -h localhost -U votre_utilisateur -p 5432 jogstore

Merci encore.
Sophonie.

Hors ligne

Pied de page des forums