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 : 39
    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

  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 : 38
    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?

  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


  4. #4
    Membre éclairé
    Homme Profil pro
    Développeur
    Inscrit en
    Juin 2006
    Messages
    645
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    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.

  5. #5
    Membre éclairé
    Homme Profil pro
    Développeur
    Inscrit en
    Juin 2006
    Messages
    645
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    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.

  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 : 39
    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 ?

  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

  9. #9
    Membre éclairé
    Homme Profil pro
    Développeur
    Inscrit en
    Juin 2006
    Messages
    645
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    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...

Discussions similaires

  1. [Débutant] Hibernate : connexion refused
    Par CinePhil dans le forum Seam
    Réponses: 6
    Dernier message: 26/08/2010, 16h49
  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, 01h44
  3. [JDBC]connexion refuse mysql debian
    Par dietrich dans le forum JDBC
    Réponses: 9
    Dernier message: 20/01/2006, 09h13
  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, 15h45
  5. [Débutant(e)]connexion à mysql
    Par yannickexia dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 16/02/2005, 11h10

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