IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JDBC Java Discussion :

mysqldump sous java


Sujet :

JDBC Java

  1. #1
    Candidat au Club
    Inscrit en
    Juillet 2009
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 2
    Points : 2
    Points
    2
    Par défaut mysqldump sous java
    Bonjour à tous,

    Je tente de sauvegarder ma base de données mysql à partir de Java.

    Si j'éxécute la commande suivante sous "l'invite de commande", cela fonctionne parfaitement :

    C:\\Program Files\MySQL\MySQL Server 5.0\bin > mysqldump -u login -ppassword --opt maBase> sauvegarde.sql

    --> fichier "sauvegarde.sql" créé !

    En revanche lorsque j'essaie d'exécuter cette même commande à partir de Java, le fichier créé "sauvegarde.sql" est complètement vide :

    ......
    String[]commande = {"cmd", "/c", "C:\\", "Program", "Files\\MySQL\\MySQL", "Server", "5.0\\bin"," > ", "mysqldump", "-u", "login", "-ppassword", "--opt", "maBase", ">", "C:\\sauvegarde.sql"};

    Runtime r = Runtime.getRuntime();

    r.exec(commande);
    ......

    Voilà, si vous avez une explication, voire une solution, ce serait le bonheur !!

    Merci à tous !

    Ps: Pour info, je bosse sous windows Vista, Eclipse, MySql 5.

  2. #2
    Membre habitué Avatar de arnaud.tlse
    Profil pro
    Étudiant
    Inscrit en
    Avril 2008
    Messages
    115
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2008
    Messages : 115
    Points : 126
    Points
    126
    Par défaut
    Salut !

    Voici comment je procède moi, je ne sais pas si c'est la meilleure des solutions, mais s'en est une !

    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
     
    /* Récupération des informations de connexion dans un fichier .properties */
     
    Properties proprietes = new Properties();
    proprietes.load(new FileInputStream("applicationPath.properties"));
     
    String str = proprietes.getProperty("MySQL.Path");
    String host = proprietes.getProperty("MySQL.Host");
    String port = proprietes.getProperty("MySQL.Port");
    String user = proprietes.getProperty("MySQL.User");
    String pass = proprietes.getProperty("MySQL.Pass");
     
    /* str = "C:\\Program Files (x86)\\MySQL\\MySQL Server 5.1\\bin\\" pour moi, à adapter suivant ta configuration */
     
    StringBuffer sbCommand = new StringBuffer();
    sbCommand.append( "\"" + str + "mysqldump.exe\"" );
    sbCommand.append( " -h " );
    sbCommand.append( host );
    sbCommand.append( " -P " );
    sbCommand.append( port );
    sbCommand.append( " -u " );
    sbCommand.append( user );
    if (!pass.equals(""))
    {
        sbCommand.append( " -p" );
        sbCommand.append( pass );
    }
    sbCommand.append( " immo" );
    sbCommand.append( " -r " );
    sbCommand.append( " \"" + nom_fic + "\"" );
    String sCommand = sbCommand.toString();
    Process pChild = Runtime.getRuntime().exec( sCommand );
    System.out.println( "Dump : initiated." );
    pChild.waitFor();
    System.out.println( "SQL File : created." );
    Ensuite See this Link pour la consommation des flux d'entrée/sortie/d'erreur...

    I hope that helps

  3. #3
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 807
    Points
    48 807
    Par défaut
    Citation Envoyé par because977 Voir le message
    String[]commande = {"cmd", "/c", "C:\\", "Program", "Files\\MySQL\\MySQL", "Server", "5.0\\bin"," > ", "mysqldump", "-u", "login", "-ppassword", "--opt", "maBase", ">", "C:\\sauvegarde.sql"};
    La, en gros, tu demande à cmd d'exécuter la commande "c:\" avec comme premier paramètre "Program", ca n'a pas beaucoup de sens. La commande correcte serait plutot


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Process p = Runtime.getRuntime().exec(new String[]{
       "c:\\Program Files\\MYSQL\\MYSQL Server 5.0\\bin\\mysqldump.exe",
       "-u",
       "login",
       "-ppassword",
       "--opt",
       "maBase"
    });
    Ensuite il faut lire p.getOutputstream(), c'est lui qui contient ton dump

  4. #4
    Candidat au Club
    Inscrit en
    Juillet 2009
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Merci à tous à les deux pour votre aide !

    le problème est résolu

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 05/04/2006, 12h49
  2. Problème mysqldump sous DOS
    Par mehdi82 dans le forum Débuter
    Réponses: 2
    Dernier message: 15/11/2005, 12h02
  3. [Date]Date sous Java != celle sous Access
    Par Cyborg289 dans le forum JDBC
    Réponses: 4
    Dernier message: 27/07/2005, 23h11
  4. [Système][Class-Path]cherche aide sous java pour fedoracore ou linux
    Par mickey hollywood dans le forum Général Java
    Réponses: 4
    Dernier message: 29/03/2005, 01h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo