IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PostgreSQL Discussion :

Pb de connexion distant avec JDBC


Sujet :

PostgreSQL

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 17
    Points : 12
    Points
    12
    Par défaut Pb de connexion distant avec JDBC
    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

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    1 874
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 874
    Points : 2 890
    Points
    2 890
    Par défaut
    "Connection timed out" est typique de l'effet d'un firewall. Il y a du filtrage de paquet (iptables) sur la machine?

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 17
    Points : 12
    Points
    12
    Par défaut
    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

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Connexion distante avec sys
    Par dari68 dans le forum Administration
    Réponses: 2
    Dernier message: 13/03/2013, 14h22
  2. [ODBC] Connexion distante avec un serveur (Qt et SQL Server)
    Par marps dans le forum Bases de données
    Réponses: 1
    Dernier message: 28/03/2011, 14h51
  3. Réponses: 1
    Dernier message: 20/10/2009, 15h50
  4. Accès distant avec JDBC à une BD MYSQL
    Par h3lls4ngel dans le forum JDBC
    Réponses: 4
    Dernier message: 08/08/2008, 09h02
  5. Connexion distante avec "remsh" et password
    Par jeremy13 dans le forum Solaris
    Réponses: 1
    Dernier message: 21/04/2008, 11h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo