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 :

[Débutant] [MySQL] Connexion refusée


Sujet :

JDBC Java

  1. #1
    Membre éclairé
    Homme Profil pro
    Développeur
    Inscrit en
    Juin 2006
    Messages
    645
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Juin 2006
    Messages : 645
    Points : 709
    Points
    709
    Par défaut [Débutant] [MySQL] Connexion refusée
    Bonjour,

    je cherche à me connecter à une base MySQL depuis un programme Java.
    J'ai bien importé le pilote fourni par MySQL.

    La classe devant théoriquement permettre la connexion est donnée ici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    import java.sql.*;
     
    public class BdD {
     
        public BdD(String base, String login, String password) {
            this.base = base;
            this.login = login;
            this.password = password;
        }
     
        private String pilote = "com.mysql.jdbc.Driver"; 
     
        private String base;
        private String login;
        private String password;
     
        Connection connect() {
            Connection conn = null;
            try{
                Class.forName(pilote);
                conn = DriverManager.getConnection("jdbc:mysql://localhost/" + base,login,password);
                System.out.println("Connexion : " + conn);
     
            } catch (Exception ex) 
            {
                System.out.println("Erreur MySQL - connect()");
                ex.printStackTrace();
            }
     
            return conn;
        }
     
        ResultSet sendquery(Connection conn, String __query) {
            ResultSet resultat = null;
            try {
                Statement instruction = conn.createStatement();
     
                resultat = instruction.executeQuery(__query);
            } 
            catch (SQLException ex) {
                ex.printStackTrace();
            }
     
     
            return resultat;
        }
    }
    Je l'appelle ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    BdD bdd = new BdD("mabase","monlogin","monmotdepasse");
    Connection conn = bdd.connect();
    Ça parait tout simple, et pourtant, ça ne fonctionne pas. J'obtiens l'erreur suivante :
    Erreur MySQL - connect()
    com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

    Last packet sent to the server was 0 ms ago.
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:539)
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
    at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1074)
    at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2103)
    at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:718)
    at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:46)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:539)
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
    at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:302)
    at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:282)
    at java.sql.DriverManager.getConnection(DriverManager.java:620)
    at java.sql.DriverManager.getConnection(DriverManager.java:200)
    at parser.BdD.connect(BdD.java:28)
    at parser.MyeDonkeyParser.main(MyeDonkeyParser.java:11)
    Caused by: java.net.ConnectException: Connection refused
    at java.net.PlainSocketImpl.socketConnect(Native Method)
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:310)
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:176)
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:163)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:381)
    at java.net.Socket.connect(Socket.java:568)
    at java.net.Socket.connect(Socket.java:518)
    at java.net.Socket.<init>(Socket.java:415)
    at java.net.Socket.<init>(Socket.java:232)
    at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:253)
    at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:280)
    at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2026)
    ... 13 more
    D'où pourrait provenir le problème ?

    Merci d'avance !

    Alban
    « Se demander si un ordinateur peut penser est aussi intéressant que de se demander si un sous-marin peut nager. »
    -- Edsger Dijkstra

  2. #2
    Membre chevronné Avatar de guigui5931
    Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2006
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 667
    Points : 2 232
    Points
    2 232
    Par défaut
    Question con : ton serveur de base de donnée est bien allumé et accessible?
    autant l'hiver éclate que l'hétéroclite
    le vrai geek c'est celui qui croit qu'il y a 1024 mètres dans un kilomètre

  3. #3
    Membre expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Points : 3 675
    Points
    3 675
    Par défaut
    Hello,

    visiblement, l'adresse du serveur ou son login/pass est faux, ou alors il est inaccessible (protégé par un parefeu).

    Essaie de te connecter sur ta base de données en utilisant une console:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    C:\>mysql -h adresseduserveur -u utilisateur -p
    Si cela fonctionne, alors la version du driver est probablement incompatible avec la version de MySQL utilisée, sinon c'est que le serveur est inaccessible

    "Le plug gros problème des citations trouvées sur internet, c'est qu'on ne peut jamais garantir leur authenticité"

    Confucius, 448 av. J-C

  4. #4
    Membre éclairé
    Homme Profil pro
    Développeur
    Inscrit en
    Juin 2006
    Messages
    645
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Juin 2006
    Messages : 645
    Points : 709
    Points
    709
    Par défaut
    Pour ce qui est du serveur MySQL, il est bien accessible : j'y accède avec une autre application (en Python) sans problème.
    À ma grande honte (bonjour la sécurité), je n'ai pas de firewall.

    La version du serveur :
    $ mysql --version
    mysql Ver 14.12 Distrib 5.0.51a, for mandriva-linux-gnu (i586) using readline 5.2
    J'utilise le dernier fichier téléchargeable sur le site de MySQL : mysql-connector-java-5.1.6-bin. Si le « 5.1.6 » correspond à la version de MySQL, effectivement, je vais chercher à récupérer la 5.0. Sinon, j'avoue que je suis un peu perdu...

    En tout cas, merci pour vos réponses. Je vous tiens au courant de mes recherches à propos du driver.
    « Se demander si un ordinateur peut penser est aussi intéressant que de se demander si un sous-marin peut nager. »
    -- Edsger Dijkstra

  5. #5
    Membre éclairé
    Homme Profil pro
    Développeur
    Inscrit en
    Juin 2006
    Messages
    645
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Juin 2006
    Messages : 645
    Points : 709
    Points
    709
    Par défaut
    Après recherches, le fichier que j'utilise (Connector/J 5.1) convient à ma version de MySQL (d'après http://dev.mysql.com/doc/refman/5.0/...-versions.html). Cependant, j'utilise Java 1.7.0 IcedTea, qui n'est pas listé dans les versions de Java supportées (voir là : http://dev.mysql.com/doc/refman/5.0/...ions-java.html).

    J'ai néanmoins essayé avec la version 1.6.0 sans succès.
    « Se demander si un ordinateur peut penser est aussi intéressant que de se demander si un sous-marin peut nager. »
    -- Edsger Dijkstra

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    511
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 511
    Points : 386
    Points
    386
    Par défaut
    Si tu rajoutes le port de connexion ça devrai marcher
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/" + base,login,password);

  7. #7
    Membre éclairé
    Homme Profil pro
    Développeur
    Inscrit en
    Juin 2006
    Messages
    645
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Juin 2006
    Messages : 645
    Points : 709
    Points
    709
    Par défaut
    J'ai essayé en rentrant les choses en « dur », sans plus de succès :
    Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
    conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/MaBase","root","xxxxxxx");

    Avec ceci, j'obtiens la même StackTrace que précédemment.

    Est-ce qu'il pourrait y avoir une sécurité pour que je ne puisse pas me connecter avec root ? Ça vaut le coup que je cherche de ce côté ou non ?
    « Se demander si un ordinateur peut penser est aussi intéressant que de se demander si un sous-marin peut nager. »
    -- Edsger Dijkstra

  8. #8
    Membre expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Points : 3 675
    Points
    3 675
    Par défaut
    Citation Envoyé par alband85 Voir le message
    Est-ce qu'il pourrait y avoir une sécurité pour que je ne puisse pas me connecter avec root ? Ça vaut le coup que je cherche de ce côté ou non ?
    Non ça vaut pas le coup, moi je me connecte avec root depuis longtemps et je n'ai jamais eu de problème.

    PS: si le host était différent de localhost, alors oui ça pourrait poser problème, mais pas avec localhost
    "Le plug gros problème des citations trouvées sur internet, c'est qu'on ne peut jamais garantir leur authenticité"

    Confucius, 448 av. J-C

  9. #9
    Membre éclairé
    Homme Profil pro
    Développeur
    Inscrit en
    Juin 2006
    Messages
    645
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Juin 2006
    Messages : 645
    Points : 709
    Points
    709
    Par défaut
    Ok, merci !
    Ceci dit, ça m'aurait arrangé que ça vienne de là ;-)
    Je continue à chercher...
    « Se demander si un ordinateur peut penser est aussi intéressant que de se demander si un sous-marin peut nager. »
    -- Edsger Dijkstra

Discussions similaires

  1. [Débutant] Hibernate : connexion refused
    Par CinePhil dans le forum Seam
    Réponses: 6
    Dernier message: 26/08/2010, 17h49
  2. Connexion refusée par MySQL : j'ai effacé tous les utilisateurs
    Par AliochaBada dans le forum Installation
    Réponses: 2
    Dernier message: 16/08/2006, 02h44
  3. [JDBC]connexion refuse mysql debian
    Par dietrich dans le forum JDBC
    Réponses: 9
    Dernier message: 20/01/2006, 10h13
  4. [mysql 4.1][phpmyadmin 2.7.0pl1][php4.4.1] connexion refusée
    Par frochard dans le forum Installation
    Réponses: 2
    Dernier message: 18/12/2005, 16h45
  5. [Débutant(e)]connexion à mysql
    Par yannickexia dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 16/02/2005, 12h10

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