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

JDBC Java Discussion :

Connection à une DB MySQL distante


Sujet :

JDBC Java

  1. #1
    Membre éclairé
    Homme Profil pro
    Analyste/développeur Java EE
    Inscrit en
    Janvier 2005
    Messages
    376
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste/développeur Java EE

    Informations forums :
    Inscription : Janvier 2005
    Messages : 376
    Par défaut Connection à une DB MySQL distante
    Bonjour,

    Je dois réaliser une application réseau et j'aurai besoin d'une base de données pour faire des backups en cas de plantages (volontaires ou non). Pour cela, j'ai installé un serveur LAMP sur Ubuntu avec un DyDNS. La connection à PhpMyAdmin fonctionne de partout.

    Mais dans mon programme java, il ne veut pas se connecter aussi bien en local qu'en distant. J'utilise ce code pour tenter de me connecter avec try,...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Class.forName("com.mysql.jdbc.Driver");
    connDB = DriverManager.getConnection("jdbc:mysql://mondyndns.org/maDB","User","Password");
    Il me retourne un bon gros code d'erreur:
    Communications link failure due to underlying exception:

    ** BEGIN NESTED EXCEPTION **

    java.net.SocketException
    MESSAGE: java.net.ConnectException: Connection refused

    STACKTRACE:

    java.net.SocketException: java.net.ConnectException: Connection refused
    at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:156)
    at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:284)
    at com.mysql.jdbc.Connection.createNewIO(Connection.java:2541)
    at com.mysql.jdbc.Connection.<init>(Connection.java:1474)
    at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:266)
    at java.sql.DriverManager.getConnection(DriverManager.java:525)
    at java.sql.DriverManager.getConnection(DriverManager.java:171)
    at ConnectDB.<init>(ConnectDB.java:53)
    at StockInterface.<init>(StockInterface.java:53)
    at StockInterface$8.run(StockInterface.java:576)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:461)
    at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)

    ** END NESTED EXCEPTION **

    Last packet sent to the server was 8 ms ago.
    Comment dois-je m'y prendre pour me connecter?

    J'ai cherché ce qu'on en disait déjà sur les forums et j'ai modifié le fichier my.cnf
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    bind-address		= 0.0.0.0 #127.0.0.1
    Ca ne change rien non plus.

    Ca fait quelques jours que je coince là-dessus, ça serait cool d'arriver à décoincer la situation.

    Merci par avance pour votre aide.

  2. #2
    in
    in est déconnecté
    Membre Expert Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Par défaut
    As tu testé en précisant le port sur lequel ta base est accessible ?

  3. #3
    Membre éclairé
    Homme Profil pro
    Analyste/développeur Java EE
    Inscrit en
    Janvier 2005
    Messages
    376
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste/développeur Java EE

    Informations forums :
    Inscription : Janvier 2005
    Messages : 376
    Par défaut
    Oui, j'ai essayé:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    connDB = DriverManager.getConnection("jdbc:mysql://mondyndns.org:3306/maDB","User","Password");
    Mais je ne suis pas sur de la façon d'écrire mon jdbc, j'ai vu beaucoup de façon de faire sur le net... Comment savoir laquelle serait la bonne?

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 276
    Par défaut
    Et donc avec un localhost à la place de mondyndns.org, ça ne fonctionne pas non plus, n'est-ce pas ?

  5. #5
    Membre éclairé
    Homme Profil pro
    Analyste/développeur Java EE
    Inscrit en
    Janvier 2005
    Messages
    376
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste/développeur Java EE

    Informations forums :
    Inscription : Janvier 2005
    Messages : 376
    Par défaut
    Avec:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    connDB = DriverManager.getConnection("jdbc:mysql://localhost/maDB","User","Password");
    Ca fonctionne, mais j'aimerai que ça fonctionne à distance, je vais devoir défendre cette application ailleurs que chez moi.

    Autant essayer de mettre le DynDNS une fois pour toute, je ne développe pas uniquement chez moi et ça m'évitera de modifier à chaque fois aussi.

  6. #6
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 276
    Par défaut
    Oui je comprends tes besoins mais c'était pour essayer de cerner ton problème.
    Tu es derrière une box, ou un routeur ?
    Si oui, il va falloir faire une redirection de port de ton routeur vers l'ip locale de la machine qui héberge ta base de données, car cette machine n'est pas visible de l'extérieur, et je suppose que l'ip de ton dyndns est l'ip de ton routeur.

  7. #7
    Membre éclairé
    Homme Profil pro
    Analyste/développeur Java EE
    Inscrit en
    Janvier 2005
    Messages
    376
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste/développeur Java EE

    Informations forums :
    Inscription : Janvier 2005
    Messages : 376
    Par défaut
    Je suis sur un routeur, j'ai déjà rediriger les ports je pense (je ne peux pas sélectionner quel port exactement sur le routeur).

    J'ai essayé avec un ami, il voit bien les pages html que j'avais mises en test, mais ça ne doit pas être le même port? Mon routeur (TrendNet Tew-435 BRM) me propose de rediriger web, ftp, pop3, smtp, dns et telnet seulement).

  8. #8
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 276
    Par défaut
    Ben par défaut Mysql écoute sur le port 3306, donc il faudrait rediriger ce qui arrive sur tonIPDyndns:3306 vers IPMachineMysql:3306.

    Il n'est pas possible de rajouter une règle pour gérer ce port ?

  9. #9
    Membre éclairé
    Homme Profil pro
    Analyste/développeur Java EE
    Inscrit en
    Janvier 2005
    Messages
    376
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste/développeur Java EE

    Informations forums :
    Inscription : Janvier 2005
    Messages : 376
    Par défaut
    Puis-je rediriger autrement que via mon routeur? Sur Ubuntu par exemple?

    Ou comment ferais-tu?

    Edit: je pensais avoir trouvé, je redirige les ports de 3305 à 3307 de TCP vers la bonne machine, mais non, ça plante encore... Comment vérifier que ça fonctionne? Il me faudrait un scan de ports,...?

  10. #10
    Membre éclairé
    Homme Profil pro
    Analyste/développeur Java EE
    Inscrit en
    Janvier 2005
    Messages
    376
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste/développeur Java EE

    Informations forums :
    Inscription : Janvier 2005
    Messages : 376
    Par défaut
    Il a fallu le temps au routeur pour mettre en place la redirection, maintenant, ça marche très bien. Aussi bien en local que sur un PC distant.

    Merci à vous.

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

Discussions similaires

  1. [Android] XE7 : se connecter à une base mySQL ou pgSQL distante
    Par Invité dans le forum Composants FMX
    Réponses: 9
    Dernier message: 17/09/2014, 22h13
  2. Connection à une BD Mysql distante
    Par petitgreg dans le forum Requêtes
    Réponses: 2
    Dernier message: 01/02/2007, 15h31
  3. [C#] Quel composant faut-il pour se connecter à une base MySQL distante ?
    Par Cazaux-Moutou-Philippe dans le forum Accès aux données
    Réponses: 5
    Dernier message: 06/06/2006, 18h05
  4. [Windows] Pouvoir se connecter a une base mysql distante
    Par TEALC dans le forum SQL Procédural
    Réponses: 5
    Dernier message: 08/12/2005, 17h12
  5. connection a une bes mysql distante
    Par rollernox dans le forum Bases de données
    Réponses: 5
    Dernier message: 21/07/2004, 11h22

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