|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : mai 2002 Messages : 15 ![]() |
Bonjour,
J'ai un pb d'accés à Postgresql via le réseau. Le contexte est le suivant : sur un serveur Linux Ubuntu, j'ai un serveur postgresql 8.4 avec une table nommée 'testpersonne'. Cette machine est accessible depuis notre réseau local mais possède également une adresse IP fixe : 78.227.216.xxx sur mon poste de travail sous Windows XP, j'ai développé une application basée sur une servlet tournant sur un Tomcat fonctionnant en local sur mon ordi. Par contre, j'accède à la base de données hébergée par le serveur Linux. Pour cela, j'utilise un driver JDBC et la ligne suivante JAVA : jdbc:postgresql://78.227.216.xxx:5432/testpersonne Tout fonctionne parfaitement! De plus, depuis mon poste XP, je peux me connecter à cette BDD soit depuis pgAdminIII, soit depuis phppgadmin se trouvant sur la même machine que postgresql. Maintenant je mets ma servlet sur le serveur Tomcat se trouvant lui aussi sur la même machine Linux que le serveur postgresql et ça ne marche plus. J'ai le message suivant : Connexion refusée. Vérifiez que le nom de machine et le port sont corrects et que postmaster accepte les connexions TCP/IP. Après quelques recherches sur Internet, j'ai trouvé quelques pistes sur des modifications de paramétrage à faire mais ça ne marche toujours pas. Voici les modifs faites : fichier postgresql.conf : listen_addresses = '*' port = 5432 fichier pg_hda.conf : local all postgres md5 host all all 78.227.216.xxx/32 trust host all all 0.0.0.0/0 trust # TYPE DATABASE USER CIDR-ADDRESS METHOD # "local" is for Unix domain socket connections only local all all ident # IPv4 local connections: host all all 127.0.0.1/32 md5 J'ai fait le test suivant : sudo netstat -tlp | grep postgres tcp 0 0 *:postgresql *:* LISTEN 27181/postgres tcp6 0 0 [::]:postgresql [::]:* LISTEN 27181/postgres Et celui-ci : sudo psql -h 78.227.216.xxx-d testpersonne psql: could not connect to server: Connection timed out Is the server running on host "78.227.216.155" and accepting TCP/IP connections on port 5432? En résumé : le Tomcat de mo ordi XP peut faire une connexion sur postgresql se trouvant sur une autre machine alors que le Tomcat se trouvant sur la même machine que PostgreSQL n'y arrive pas. Etrange non? Merci d'avance, Philippe |
|
|
00
|
|
|
#2 |
![]() ![]() Inscription : octobre 2008 Messages : 1 504 ![]() |
"Connection timed out" est typique de l'effet d'un firewall. Il y a du filtrage de paquet (iptables) sur la machine?
|
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : mai 2002 Messages : 15 ![]() |
Merci pour votre réponse.
Je n'avais pas Firewall actif sur la machine Linux mais en cherchant autours d'un possible pb lié au réseau, j'ai fini par corriger le disfonctionnement : le pb venait du fait que ma machine avait 2 adresses IP : une publique (78.227.216.xxx venant d'une box Free) et une privée (192.168.x.x), or lorsque la requête était émise depuis mon PC vers l'adresse 78.227.216.x, c'était en vérité une requête qui était faite par l'adresse 192.168.x.x et donc la machine Linux ne se rendait pas compte qu'elle s'adressait à elle même, que c'était la même machine. Pour corriger ça, comme mes deux serveurs (Tomcat et PostgreSQL) sont sur le même serveur, j'ai mis comme adresse 127.0.0.1 pour la connection JDBC et ça marche!!! Philippe |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com