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 :

[JDBC][MySQL] Connexion à la base de données


Sujet :

JDBC Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    143
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 143
    Points : 68
    Points
    68
    Par défaut [JDBC][MySQL] Connexion à la base de données
    Bonjour,

    Je rencontre un soucis pour me connecter à ma base MySQL.
    J'ai ajouté le .jar du MySQL Connector/J à mon projet. Pour preuve, le Class.forName() se passe bien.

    Cependant au moment d'instancier une connexion, ça plante.

    Voici mon code :

    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
     
    		try{
                Class.forName("com.mysql.jdbc.Driver").newInstance();
                System.out.println("1");
                Connection cnx = DriverManager.getConnection("jdbc:mysql://localhost/test?user=monty&password=monty");
                System.out.println("2");
                cnx.close();
    		}
    		catch(SQLException e){
    			System.out.println("Erreur SQL :");
    			e.printStackTrace();
    		}
    		catch(ClassNotFoundException e){
    			System.out.println("Classe non trouvée :");
    			e.printStackTrace();
    		}
    		catch(IllegalAccessException e){
    			System.out.println("Excpetion de type IllegalAccess ... :");
    			e.printStackTrace();
    		}
    		catch(Exception e){
    			System.out.println("Autre exception :");
    			e.printStackTrace();
    		}

    Voici l'exception :

    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
     
    1
    Erreur SQL :
    java.sql.SQLException: Unable to connect to any hosts due to exception: java.net.SocketException: java.net.ConnectException: Connection refused
     
    ** 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:143)
    	at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:225)
    	at com.mysql.jdbc.Connection.createNewIO(Connection.java:1805)
    	at com.mysql.jdbc.Connection.<init>(Connection.java:452)
    	at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:411)
    	at java.sql.DriverManager.getConnection(Unknown Source)
    	at java.sql.DriverManager.getConnection(Unknown Source)
    	at monpackage.ConsolidFichier.injecter(ConsolidFichier.java:13)
    	at monpackage.Main.main(Main.java:10)
     
     
    ** END NESTED EXCEPTION **
     
     
    	at com.mysql.jdbc.Connection.createNewIO(Connection.java:1875)
    	at com.mysql.jdbc.Connection.<init>(Connection.java:452)
    	at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:411)
    	at java.sql.DriverManager.getConnection(Unknown Source)
    	at java.sql.DriverManager.getConnection(Unknown Source)
    	at monpackage.ConsolidFichier.injecter(ConsolidFichier.java:13)
    	at monpackage.Main.main(Main.java:10)

    Je travaille sous Eclipse et l'OS Ubuntu (dérivé de Linux Debian). J'ai installé MySQL avec le gestionnaire de paquets d'Ubuntu.

    Lorsque je me connecter à MySQL sous le shell avec l'utilisateur monty, tout se passe bien et j'ai bien accès à la base "test".

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $> mysql -u monty -pmonty
    Merci d'avance pour votre aide

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    304
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 304
    Points : 348
    Points
    348
    Par défaut
    Je pense que c'est un problème de syntaxe sur la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Connection cnx = DriverManager.getConnection("jdbc:mysql://localhost/test?user=monty&password=monty");
    Il me semble que ça serait plutôt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Connection cnx = DriverManager.getConnection("jdbc:mysql://localhost/test", "monty", "monty");

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    143
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 143
    Points : 68
    Points
    68
    Par défaut
    Merci à toi
    Mais ça marche pas mieux : même exception levée

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    304
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 304
    Points : 348
    Points
    348
    Par défaut
    Et ça?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Connection cnx = DriverManager.getConnection("jdbc:mysql:///localhost//test", "monty", "monty");

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    304
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 304
    Points : 348
    Points
    348
    Par défaut
    As-tu essayé d'adapter ton code à l'exemple qui est dans la FAQ?
    http://java.developpez.com/faq/jdbc/...ection#urlJDBC

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    143
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 143
    Points : 68
    Points
    68
    Par défaut
    Pour être plus exact, j'adapte mon code suivant la documentation qui m'est fournie par les développeurs du Driver JDBC MySQL :

    http://dev.mysql.com/doc/connector/j...ermanager.html

    Je pense effectivement que le problème doit venir de la String passée en paramètre de la méthode getConnection(). Cependant, en me conformant à la doc du driver ou en essayant les exemples que tu m'as donnés ou en mettant n'importe quoi comme String, j'ai la même erreur.

    Je me demandais si quelqu'un avait une idée sur la cause de l'erreur :
    - MySQL fourni par Ubuntu a une conf spéciale ?
    - La façon de se connecter n'est pas la même sous Linux ? ...

    Il semblerait qu'il y ait un problème de socket. Dois-je configurer une sorte de port en écoute sur MySQL pour que du code Java puisse y accéder ?

  7. #7
    Membre chevronné
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 414
    Points : 1 996
    Points
    1 996
    Par défaut
    Première chose à tester avec une banque de données comme serveur, c'est de vérifier si le service est lancé. Je ne sais pas comment lancer ce service. A toi de voir dans la documentation.

    En appellant avec le shell, il est probable que tu instancie le programme.

    Eexecute la commande:
    pour contrôller si le service est démarré.

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    143
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 143
    Points : 68
    Points
    68
    Par défaut
    Voici ce que me renvoie la commande :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ~$ ps -el | grep -i sql
    4 S     0  7451     1  0  85   0 -   639 wait   ?        00:00:00 mysqld_safe
    4 S   107  7492  7451  0  76   0 - 15905 -      ?        00:00:00 mysqld
    Il semble que le service soir démarré, Non ?

  9. #9
    Membre actif

    Inscrit en
    Novembre 2003
    Messages
    168
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 168
    Points : 232
    Points
    232
    Par défaut
    Salut,

    ce qui me tappe à l'oeil c'est qu'il manque le numéro de port dans ta chaine de connexion !!

    Peut-être que c'est ce qui manque.

Discussions similaires

  1. Réponses: 1
    Dernier message: 07/03/2011, 15h53
  2. [MYSQL] Connexion à une base de données
    Par cydata dans le forum SGBD
    Réponses: 4
    Dernier message: 11/02/2011, 10h36
  3. Réponses: 5
    Dernier message: 09/02/2010, 02h02
  4. [MySQL] Connexion à une base de donnée en ligne
    Par ghost emperor dans le forum VB.NET
    Réponses: 8
    Dernier message: 05/12/2007, 14h09
  5. Mysql Configuration nombre de connexion aux bases de données
    Par Thierry8 dans le forum Installation
    Réponses: 2
    Dernier message: 15/09/2005, 20h54

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