Bonjour à tous,

Je tente actuellement de développer un serveur en java, utilisant une base de données MySQL. Je développe sous linux (Debian).

Voici mon code pour tester ma connexion :

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
48
49
50
import java.sql.*;
public class Test
{
	public static void main(String[] args)
	{
 
                System.out.println("Chargement des drivers...");
                //String nomDriver = "org.gjt.mm.mysql.Driver";
                String nomDriver = "com.mysql.jdbc.Driver";
                try
                {
                    Class.forName(nomDriver);
                }
                catch(ClassNotFoundException cnfe)
                {
                    System.out.println("La classe "+nomDriver+" n'a pas été trouvée");
                    cnfe.printStackTrace();
                }
 
                System.out.println("Connexion à la base de donnée...");
 
                try {
                    String myString = "jdbc:mysql://localhost/ma_base?&useUnicode=true&characterEncoding=UTF-8&user=user&password=password";
 
 
                    Connection con = DriverManager.getConnection(myString);
 
 
                    System.out.println("Execution d'une requète...");
 
                try
                {
                   String queryString = "SELECT * FROM TABLE ";
                   Statement stmt = con.createStatement() ;
                   ResultSet rs = stmt.executeQuery( queryString ) ;
                }
                catch (SQLException e)
                {
                    System.out.println("Erreur pour la requete : " +e.getMessage());
                }
 
 
              } catch (SQLException ex) {
                  // handle any errors
                  System.out.println("SQLException: " + ex.getMessage());
                  System.out.println("SQLState: " + ex.getSQLState());
                  System.out.println("VendorError: " + ex.getErrorCode());
              }
	}
}
et voici la sortie :
$ java -cp . Test
Chargement des drivers...
Connexion à la base de donnée...
SQLException: Unsupported character encoding 'Cp1252'.
SQLState: S1009
VendorError: 0

Voici quelques infos (d'après phpmyadmin) qui pourraient éventuellement vous êtres utiles pour m'aider :
Version du serveur: 5.0.30-Debian_1-log
Version du client MySQL: 4.1.15

voici les paquets installés :
  • libmysqlclient15off
  • mysql-client
  • mysql-client-5.0
  • mysql-common
  • mysql-server-5.0


Une chose étrange, sur un autre ordinateur de chez moi, le même programme (toujours sous linux : ubuntu cette fois) fonctionne.
Voici les caractèristiques (d'après phpmyadmin) qui diffèrent avec l'autre configuration :
Version du serveur: 5.0.24a-Debian_9-log
Version du client MySQL: 5.0.24a

Dans les deux cas, j'utilise mysql-connector/j version 3.1.14 (j'ai tenté avec la version 5, ça ne fonctionne pas non plus).

J'ai cherché, j'ai trituré mes configurations, désinstallé/réinstallé mysql client et server, sans succès !

Merci d'avance de m'apporter vos lumières sur mon problème,
je suis à votre disposition pour fournir plus de détails.

Cordialement,

CocoduNombriL