Vous n'êtes pas identifié(e).
Pages : 1
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
- 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
- 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
Ça dépend de beaucoup de paramètres, dont la distribution et le package postgresql utilisé.
Marc.
Hors ligne
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
Le fichier de log de PostgreSQL se trouve dans le répertoire suivant :
/var/lib/pgsql/data/pg_log
pour ma distribution
Hors ligne
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
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
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
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
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
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
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
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
[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
Pages : 1