Impossibilité de créer des utilisateurs

jamespage -  
 jamespage -
Bonjour,

je veux faire en JAVA une copie d'une base de données (présente sur un serveur distant) vers mon localhost.

1) Tout d'abord un dump via mysqldump :

commande = mysqldump -u root -p -h serveur_distant -r dump.sqlbase_locale;
Process pChild = Runtime.getRuntime().exec( commande );

=> ça me génère un fichier dump.sql

2) Ensuite je créer ma base locale :

Statement stmt = con.createStatement();
String sDROP = "DROP SCHEMA IF EXISTS siteCV_Test";
stmt.execute( sDROP );
String sSQL = "CREATE SCHEMA IF NOT EXISTS siteCV_Test";
stmt.execute( sSQL );

3) Puis avec la commande mysql je copie mon fichier dump.sql :

commande = mysql -u utilisateur -pmotDePasse -h localhost -e source dump.sql base_locale
Process pChild = Runtime.getRuntime().exec( commande);

PROBLEME :
pour que mysql mache il faut que je me créer auparavant un utilisateur (privilège) sur ma base locale. Seulement
String sUSER = "CREATE USER '"+utilisateur+"'@'localhost' IDENTIFIED BY '"+motDePasse+"';"+
"GRANT ALL PRIVILEGES ON * . * TO '"+utilisateur+"'@'localhost' IDENTIFIED BY '"+motDePasse+"' WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;"+GRANT ALL PRIVILEGES ON `"+utilisateur+"\\_%` . * TO '"+utilisateur+"'@'localhost';";
stmt.execute( sUSER ); NE MARCHE PAS !!!

En fait je me connecte à la base locale avec un nom d'utilisateur root et le mot de passe "" (chaine vide) ; avec ça je peut créer ma base en locale mais PAS RAJOUTER DE PRIVILEGES.

Quelqu'un saurait-il comment faire ?
Merci.
A voir également:

1 réponse

jamespage
 
Précision : il me faut impérativement un utilisateur et un mot de passe pour faire mon mysql.
0