Restaurer une base MYSQL ? [Résolu]

amundain 110 Messages postés mercredi 28 mars 2007Date d'inscription 28 août 2012 Dernière intervention - 15 oct. 2007 à 11:48 - Dernière réponse : amundain 110 Messages postés mercredi 28 mars 2007Date d'inscription 28 août 2012 Dernière intervention
- 15 oct. 2007 à 13:54
Bonjour à tous,

J'ai un petit soucis concernant la restauration d'une base MySQL dans une appli Java.
Autant j'arrive à exécuter un dump de sauvegarde en utilisant un Runtime, autant la restauration ne fonctionne pas avec un Runtime...et là, j'ai besoin d'aide !

Voilà mon bout de code, à vot' bon coeur, et merci d'avance pour toute piste !

public

class
RestaureBase {

private String restaure;

public
RestaureBase(){

SQLRestore();

}

void
SQLRestore(){

JFileChooser fc= new
JFileChooser("C:");

FileNameExtensionFilter ff =new
FileNameExtensionFilter("fichiers SQL","sql");

fc.addChoosableFileFilter(ff);

int
retourFichier= fc.showOpenDialog( null
);

if
(retourFichier == JFileChooser. APPROVE_OPTION
)

{

File file =fc.getSelectedFile();

restaure= "mysql -h localhost -u root mediatheque < "+file;

System. out
.println(restaure);

try
{

Runtime.getRuntime().exec(restaure);

} catch
(IOException e) {

JOptionPane.showMessageDialog(null
, "Erreur de chargement de la base", "Erreur", JOptionPane.ERROR_MESSAGE
);

}

}

}

amundain

<hr width ="100%" size="2" />Java bien,merci.
Afficher la suite 

Votre réponse

4 réponses

Meilleure réponse
Twinuts 5279 Messages postés dimanche 4 mai 2003Date d'inscription 19 septembre 2018 Dernière intervention - 15 oct. 2007 à 12:17
3
Merci
Salut,

regarde sur ce thread -> ICI <- il y a une solution qui visiblement fonctionne correctement (bon c'est plus lourd mais bon...).

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

OoWORAoO

Merci Twinuts 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 93 internautes ce mois-ci

Commenter la réponse de Twinuts
Twinuts 5279 Messages postés dimanche 4 mai 2003Date d'inscription 19 septembre 2018 Dernière intervention - 15 oct. 2007 à 12:05
0
Merci
Salut,

utilise plustot un tableau d'argument pour ton exec

ex:
String [] args = new String [] {
    "mysql",
    "-h",
    "localhost",
    "-u",
    "root",
    "mediatheque",
    "<",
    file
};

par contre je ne te garanti pas le resultat (perso j'ai eu que des prob avec les redirections de flux et Runtime...)

Sinon visiblement tu utilises mysql en root et sans mot de passe, ce qui est quand même une grosse faille de sécu...

Autre point ne mets pas en dure C: dans ton JFileChooser car ici tu rends ton code non portable (regarde du coté de la méthode java.io.File.listRoots())

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

OoWORAoO
Commenter la réponse de Twinuts
amundain 110 Messages postés mercredi 28 mars 2007Date d'inscription 28 août 2012 Dernière intervention - 15 oct. 2007 à 12:09
0
Merci
Merci pour le coup de main, Twinuts, mais malheureusement ça ne marche pas...Quand je tape le résultat de la commande avec un system.out, celle-ci est pourtant bonne, et quand je la tape en console dos elle fonctionne parfaitement...Mystère non résolu, donc, on dirait bien. Je vais essayer de continuer à fouiller...
Pour ce qui est de mysql en root sans mot de passe, je suis end éveloppement sur mon poste local, donc pour le moment je fais ça comme ça, mais c'est vrai, faudra que je pense à la sécurité !

Merci en tout cas,

A +,

amundain

<hr width="100%" size="2" />Java bien,merci.
Commenter la réponse de amundain
amundain 110 Messages postés mercredi 28 mars 2007Date d'inscription 28 août 2012 Dernière intervention - 15 oct. 2007 à 13:54
0
Merci
Ca marche comme sur des roulettes, en effet !

Merci ;-)

amundain

<hr width="100%" size="2" />Java bien,merci.
Commenter la réponse de amundain

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.