Exporter une base de données

kujafilth Messages postés 12 Date d'inscription lundi 28 avril 2008 Statut Membre Dernière intervention 22 avril 2009 - 30 avril 2008 à 09:35
kujafilth Messages postés 12 Date d'inscription lundi 28 avril 2008 Statut Membre Dernière intervention 22 avril 2009 - 7 mai 2008 à 11:24
Bonjour bonjour

Pour ceux qui n'aurait pas lu mon premier post, et je sais que vous êtes nombreux, je réalise en ce moment un projet dans le cadre de mon bts iris (n'y allez pas!).

Je dois pouvoir exporter une base de donnée a la manière de mysql mais sans myslq...pas super pratique mais obligatoire.

j'ai tenté d'ouvrir l'invite de commande pour effectuer un mysqldump, le problème c'est que mon fichier de sauvegarde se créé mais ne contient rien.
comment faire? où me trompe-je? merci de m'indiquer la voie a suivre pour enfin finir ce *censuré* de projet!


void Sauvegarder()
{
JFileChooser filechoose = new JFileChooser();
filechoose.setCurrentDirectory(new File("."));
String approve = new String("ENREGISTRER");
int resultatEnregistrer = filechoose.showDialog(filechoose,approve);
if (resultatEnregistrer ==JFileChooser.APPROVE_OPTION)
{ String monFichier= new String(filechoose.getSelectedFile().toString());
if(monFichier.endsWith(".sql")|| monFichier.endsWith(".SQL"))
{
;
}
else
monFichier = monFichier+ ".sql";
String cmd="cmd /c mysqldump -u root -h http://127.0.0.1/home/mysql --opt geode > "+monFichier;
Runtime r =Runtime.getRuntime();
try {
Process p = r.exec(cmd);
p.waitFor();
} catch (IOException e) {
System.out.println(e.toString());
} catch (InterruptedException e) {
System.out.println(e.toString());
}
System.out.println("sauvegarde effectuée");
}
}

2 réponses

kujafilth Messages postés 12 Date d'inscription lundi 28 avril 2008 Statut Membre Dernière intervention 22 avril 2009
2 mai 2008 à 17:15
Bon en fait j'ai trouvé au moins une partie de la réponse. la syntaxe n'est pas bonne. je ne remet que la partie qui nous interesse maintenant que le code est écrit au dessus

String cmd="cmd /c mysql -h 127.0.0.1 -u root geode > "+monFichier;

les yeux les plus agueris auront remarqué que  mysqldump s'est changé en mysql.

lorsque j'execute sur l'invite de commande sans avoir la redirection j'ai un messafe de bienvenue sur le moniteur mysql. on m'indique que les commande se terminent par ; ou \g

je tape donc la commande suivante:
mysql> mysql -h 127.0.0.1 -u root geode;

etlà un message m'indique une erreur de syntaxe a la ligne 1 .....

quelqu'un pourait-il m'indiquer la syntaxe a suivre s'il vous plait?
0
kujafilth Messages postés 12 Date d'inscription lundi 28 avril 2008 Statut Membre Dernière intervention 22 avril 2009
7 mai 2008 à 11:24
Bon pour cexu qui auraient la même chose a faire un jour (on sait jamais) voilà la solution trouvée a force de tatonement:

private String ip /*= adresse ip du serveur*/;
    private String user /*=nom d'utilisateur du compte ayant tous les droits*/;
    private String password /*=mot de passe du compte ayant tous les droits*/;

void Sauvegarder()
    {
        JFileChooser filechoose = new JFileChooser();
        filechoose.setCurrentDirectory(new File("."));
        String approve = new String("ENREGISTRER");
        int resultatEnregistrer = filechoose.showDialog(filechoose,approve);
        if (resultatEnregistrer ==JFileChooser.APPROVE_OPTION)
        { String monFichier= new String(filechoose.getSelectedFile().toString());
           if(monFichier.endsWith(".sql")|| monFichier.endsWith(".sql"))
           {
               ;
           }
           else
               monFichier = monFichier+ ".sql";
              
        String cmd="cmd /c mysqldump -u "+user+" -p"+password+" --opt nom_de_la_table -h "+ip+" > "+monFichier;
                             
        Runtime r =Runtime.getRuntime();
        try {
            Process p = r.exec(cmd);
            p.waitFor();
        } catch (IOException e) {
            System.out.println(e.toString());
        } catch (InterruptedException e) {
            System.out.println(e.toString());
        }
        System.out.println("sauvegarde effectuée");
        }
    }

Et surtout n'oubliez pas de mettre mysqldump.exe dans le dossier ou s'execute votre code ou alors indiquez le chemin absolu vers l'exe.

tschitschi vous powned
0
Rejoignez-nous