[JDBC] Erreur de connexion MySQL ou de config ?

Erreur de connexion MySQL ou de config ? [JDBC] - Java - Programmation

Marsh Posté le 08-07-2004 à 17:12:48    

Bonjour,
 
J'ai développé un prog Java avec une base MySQL. Voici un bout de code de ma connexion à la base :
 

Code :
  1. private void connect() {
  2.         String host = "127.0.0.1";
  3.         String database = "intraPDA";
  4.         String user = "root";
  5.         String password = "";
  6.         String pilote = "org.gjt.mm.mysql.Driver";
  7.         try {
  8.             Class.forName(pilote).newInstance();
  9.             Properties info = new Properties();
  10.             info.put("user", user);
  11.             info.put("password", password);
  12.             info.put("useUnicode", "true" );
  13.             info.put("characterEncoding", "iso-8859-1" );
  14.             this.conn = DriverManager.getConnection("jdbc:mysql://" + host + "/" +database,info);
  15.         }
  16.         catch(InstantiationException e) {
  17.             new CDialog().afficheErreur(null,"Erreur" );
  18.         }
  19.         catch(IllegalAccessException e) {
  20.             new CDialog().afficheErreur(null,"Erreur" );
  21.         }
  22.         catch(SQLException e) {
  23.             new CDialog().afficheErreur(null,"Erreur de connexion à la base de données " );
  24.             e.printStackTrace();
  25.         }
  26.         catch(ClassNotFoundException e) {
  27.             new CDialog().afficheErreur(null,"Erreur de driver" );
  28.         }
  29.     }


 
Pour mes tests, j'utilisais jusqu'à présent 127.0.0.1 mais maintenant, je dois déployer mon appli et utiliser non pas ma base locale (avec easyphp), mais me connecter à une autre machine. Et là c le drame !  :pt1cable:  
 
Que je mette mon IP 192.168.1.7 ou n'importe quoi d'autre ça ne fonctionne pas. Ca marche juste avec 127.0.0.1 (ou localhost bien sûr)
 
J'en déduis donc que l'erreur ne vient pas de mon code ! Par contre, faut-il modifier quelque chose dans la configuration de MySQL ? Je pense par ex au fichier my.ini


Message édité par fabowl le 08-07-2004 à 17:14:01
Reply

Marsh Posté le 08-07-2004 à 17:12:48   

Reply

Marsh Posté le 08-07-2004 à 19:17:33    

[:mlc]


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 08-07-2004 à 19:28:15    

Si tu fais un ping sur ton IP distante ca donne quoi?  :D  
 
Oui je sais c'est bête,mais...

Reply

Marsh Posté le 08-07-2004 à 22:40:23    

fabowl a écrit :

ça ne fonctionne pas.


Ca serait pas mal de dire ce qui ne fonctionne pas. Quelle est l'erreur renvoyée...
 
Sinon ta base est accessible au moins ? Si tu essayes à partir d'un autre client MySQL ?


---------------
Incongru : une FAQ abandonnée sur les Standards du Web - FAQ périmée de blabla@Prog
Reply

Marsh Posté le 08-07-2004 à 23:22:13    

Tiens moi c'est ce que j'utilise dans un prog, peut etre que ca t'aidera :

Code :
  1. String conString = null;
  2.        
  3.        
  4.         conString = "jdbc:mysql://xxx.xxx.xxx.xxx:3306/MaBase?user=user1&password=123456";
  5.         try{
  6.                Class.forName("com.mysql.jdbc.Driver" );
  7.                 conn= DriverManager.getConnection(conString);
  8.                 stmt = conn.createStatement();
  9.                 rset = stmt.executeQuery("select * from H_Cine_List" );
  10.                while(rset.next())
  11.                {
  12.                     jComboBox1.addItem(rset.getString(3));
  13.                }
  14.                 rset.close();
  15.         }
  16.         catch(SQLException e)
  17.         {
  18.             System.out.println("Erreur : "+e.getMessage());
  19.         }
  20.         catch(ClassNotFoundException c)
  21.         {
  22.             System.out.println("Erreur : "+c.getMessage());
  23.         }


 

Reply

Marsh Posté le 09-07-2004 à 00:43:15    

bah 100 balles que sont user à pas les droits pour acceder ailleurs que par le loopback..


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 09-07-2004 à 00:48:10    

+1


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 09-07-2004 à 01:12:17    

et un grand merci à G0ose [:arcueid brunestud]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 09-07-2004 à 09:24:40    

Ouaip, fait un

Code :
  1. select * from user;

si ton utilisateur a comme host: localhost (ou 127.0.0.1 je ne C plus) c'est sur que ca ne marchera pas.
Si c'est ton cas RTFM...
 
[edit] la requete se fait bien sur sur la base mysql  :o


Message édité par G0ose le 09-07-2004 à 09:27:15
Reply

Marsh Posté le 09-07-2004 à 09:57:15    

ça y est, g trouvé !
 
Alors, c'était tout con ! Dans le fichier my.ini, il fallait mettre en commentaire la ligne suivante :
 

Code :
  1. bind-address=127.0.0.1


 
J'ai trouvé la solution sur easyphp.org !
 
Et pour que ça fonctionne, il faut ajouter un utilisateur (donc ne pas se connecter en root)
- en lui donnant tous les privileges sur la base voulue
- le nom du Host, le laisser en chaine vide (pour accepter des requêtes venant de n'importe quelle IP), et voilà !  :)  
 
PS : un grand merci pr vos réponses, c bien sympa d'avoir essayé de m'aider  :D

Reply

Marsh Posté le 09-07-2004 à 09:57:15   

Reply

Marsh Posté le 09-07-2004 à 10:00:34    

Citation :

le nom du Host, le laisser en chaine vide (pour accepter des requêtes venant de n'importe quelle IP), et voilà !  :)


 
c'est pas '%' pour n'importe quel host ?


Message édité par G0ose le 09-07-2004 à 10:01:26
Reply

Marsh Posté le 09-07-2004 à 10:19:17    

G0ose a écrit :


 
c'est pas '%' pour n'importe quel host ?


 
Ouai, encore un truc bizarre ! Au début, j'ai mis '%' dans phpMyAdmin mais ça ne fonctionnait pas alors j'éai mis '' et là ça marchait :??:  
Parfois, y a des mystères ...

Reply

Marsh Posté le 09-07-2004 à 10:32:12    

[:totozzz]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed