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 :

[MySql] Sauvegarde / export bdd


Sujet :

JDBC Java

  1. #1
    Membre à l'essai
    Inscrit en
    Juin 2002
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 32
    Points : 15
    Points
    15
    Par défaut [MySql] Sauvegarde / export bdd
    Bonjour,

    Je cherche un moyen de proposer aux utilisateurs de mon application de pouvoir sauvegarder et d'importer la base de données de l'application.

    Je voudrais exporter sous forme de fichier .sql.

    D'après mes recherches, il existe mysqldump mais qui s'exécute via un shell.
    Existe-t-il une api qui pourrait faire ça?

    Ou bien il faut que je le fasse moi même sachant que pour récupérer la structure cela risque de ne pas être évident.

    Quelles solutions prendre?

    Merci

  2. #2
    Membre à l'essai
    Inscrit en
    Juin 2002
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 32
    Points : 15
    Points
    15
    Par défaut
    Toujours pas de réponse

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    220
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 220
    Points : 266
    Points
    266
    Par défaut Si je me rappelle bien...
    Je dois dire que pour le dump, je ne sais pas, mais par contre :

    Si je ne me trompe pas, si ce que tu veux est simplement sauvegarder une table MySQL, tu peux le faire directement en fichier. Je m'explique :

    Lorsque tu crées une table sous MySQL, mettons la ta MaTable, dans la base MaBase, tu crées sous ton arborescence <MySQLHome>/Data un répertoire MaBase pour ta base de données, et tu crées les fichiers MaTable.frm, MaTable.MYD, et MaTable.MYI...

    Pour sauvegarder ta table, il suffit de faire une copie bete et mechante de ces fichiers la... C'est pas optimisé, y'a probablement mieux, mais par un bete FTP, ca devrait pouvoir passer, et fonctionner de la même manière pour la restauration...

    Enfin, ce n'est qu'une idée comme ca, et a priori, par cette methode, tu n'auras pas le tout en fichier .sql, mais ca doit pouvoir marcher...

  4. #4
    Membre régulier
    Inscrit en
    Juin 2004
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 65
    Points : 74
    Points
    74
    Par défaut
    tu pourrais regarder phpmyadmin par ex et voir quelle est la fonction appelée pour faire le dump. parce que c'est pas une commande dos.
    ou regarder la doc de mysql sur le site mysql.com.

  5. #5
    Membre à l'essai
    Inscrit en
    Juin 2002
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 32
    Points : 15
    Points
    15
    Par défaut
    Ben, j'y ai pensé ça me convient pas trop car cette opération doit être faite par un utilisateur novice.

    Bon tant pis je crois que je vais moi même une classe qui va sauvegarder ma base de données ainsi que les données avec des resultSet, mais je suis convaincu que ce n'est pas la meilleure solution

  6. #6
    Membre à l'essai
    Inscrit en
    Juin 2002
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 32
    Points : 15
    Points
    15
    Par défaut
    tu pourrais regarder phpmyadmin par ex et voir quelle est la fonction appelée pour faire le dump. parce que c'est pas une commande dos.
    ou regarder la doc de mysql sur le site mysql.com.
    J'ai déjà regardé la doc de Mysql mais pas de solution mise à part de faire avec des resultset, etc ...

    Mais je vais peut être regarder d'un peu plus pret la fonction Dump

  7. #7
    Membre régulier
    Inscrit en
    Juin 2004
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 65
    Points : 74
    Points
    74
    Par défaut
    en fait je pensais qu'il existait une cmde dump.
    mais ça a pas l'air. ttes mes excuses.

  8. #8
    Membre émérite Avatar de nuke_y
    Profil pro
    Indépendant en analyse de données
    Inscrit en
    Mai 2004
    Messages
    2 076
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Indépendant en analyse de données

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 076
    Points : 2 370
    Points
    2 370
    Par défaut
    Et euuuh, un dump dans un fichier SQL que tu t'occupes de déplacer à un endroit intelligent ?

    En gros tu veux faire une interface avec 2 boutons Sauver et Restaurer et un JFileDialog par laquelle l'utilisateur peut choisir une base à restaurer ou un nom sous lequel la sauver?

  9. #9
    Membre à l'essai
    Inscrit en
    Juin 2002
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 32
    Points : 15
    Points
    15
    Par défaut
    Citation Envoyé par nuke_y
    En gros tu veux faire une interface avec 2 boutons Sauver et Restaurer et un JFileDialog par laquelle l'utilisateur peut choisir une base à restaurer ou un nom sous lequel la sauver?
    Oui c'est bien ça. L'utilisateur cliquera sur un bouton et sauvegardera la bdd et les données.

    Puis en cas de problème (par exemple) pour restaurer sa base de données grâce aux sauvegardes.

    [/quote]

  10. #10
    Membre émérite Avatar de nuke_y
    Profil pro
    Indépendant en analyse de données
    Inscrit en
    Mai 2004
    Messages
    2 076
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Indépendant en analyse de données

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 076
    Points : 2 370
    Points
    2 370
    Par défaut
    Et tu peux nous décrire ton environnement ? Réseau, pas réseau ? Via le net ? Accés réseau au serveur de BDD ? Applet, appli lourde, Java Web Start, JSP ? parce qu'il y a plein de solutions ...

  11. #11
    Membre à l'essai
    Inscrit en
    Juin 2002
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 32
    Points : 15
    Points
    15
    Par défaut
    Citation Envoyé par nuke_y
    Et tu peux nous décrire ton environnement ? Réseau, pas réseau ? Via le net ? Accés réseau au serveur de BDD ? Applet, appli lourde, Java Web Start, JSP ? parce qu'il y a plein de solutions ...
    Ok excuse moi je pensais pas.

    l'application tourne sous windows Xp (mais doit pouvoir tourner sous linux aussi)
    Réseau ou pas réseau voit pas le problème mais mon appli tourne sur un pc et se connecte via le réseau local pour l'accés à la bdd.

    pas d'applet, ni jsp, ni java web start.

    Si tu veux d'autres renseignements demande moi

    merci

  12. #12
    Membre émérite Avatar de nuke_y
    Profil pro
    Indépendant en analyse de données
    Inscrit en
    Mai 2004
    Messages
    2 076
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Indépendant en analyse de données

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 076
    Points : 2 370
    Points
    2 370
    Par défaut
    Si la seule facçon d'importer/exporter est en ligne de commande sous MySQL tu peux soit placer un mini-serveur java du côté du serveur de BDD (comme une sorte de troyen qui écoute un port) qui selon l'ordre reçu lance un Runtime.getRuntime().exec("c:\...\mysql.exe --user= <user > -D <database > -e <sql_commands >").

    Sinon, peux-tu partager un dossier du serveur de BDD au reste du réseau ?
    Parce que dans ce cas là tu partages le dossier du serveur de BDD (avec mot de passe) et ton utilisateur lance via l'appli java Runtime.getRuntime().exec("dossier_partagé\mysql.exe --user= <user > -D <database > -e <sql_commands >").

    Ca t'oblige juste à mapper le dossier avant, rien d'insurmontable, même pour un utilisateur final.

  13. #13
    Membre régulier
    Inscrit en
    Juin 2004
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 65
    Points : 74
    Points
    74
    Par défaut
    Citation Envoyé par nuke_y
    Si la seule facçon d'importer/exporter est en ligne de commande sous MySQL tu peux soit placer un mini-serveur java du côté du serveur de BDD (comme une sorte de troyen qui écoute un port) qui selon l'ordre reçu lance un Runtime.getRuntime().exec("c:\...\mysql.exe --user= <user > -D <database > -e <sql_commands >").

    Sinon, peux-tu partager un dossier du serveur de BDD au reste du réseau ?
    Parce que dans ce cas là tu partages le dossier du serveur de BDD (avec mot de passe) et ton utilisateur lance via l'appli java Runtime.getRuntime().exec("dossier_partagé\mysql.exe --user= <user > -D <database > -e <sql_commands >").

    Ca t'oblige juste à mapper le dossier avant, rien d'insurmontable, même pour un utilisateur final.
    si tu optes pour cette solution, regarde du côté de mysqldump.

  14. #14
    Membre à l'essai
    Inscrit en
    Juin 2002
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 32
    Points : 15
    Points
    15
    Par défaut
    Ok merci pour vos réponses je vais essayer de regarder tout ça

  15. #15
    Membre émérite Avatar de nuke_y
    Profil pro
    Indépendant en analyse de données
    Inscrit en
    Mai 2004
    Messages
    2 076
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Indépendant en analyse de données

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 076
    Points : 2 370
    Points
    2 370
    Par défaut
    Euh ... je me suis trompé de ligne de commande effectivement. Bon on remplace mysql.exe par mysqldump et ça roule.

  16. #16
    Membre actif Avatar de Tanebisse
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2007
    Messages
    449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2007
    Messages : 449
    Points : 260
    Points
    260
    Par défaut
    Bonjour,
    j'ai essayé comme indiqué la fonction "exec":
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Runtime.getRuntime().exec("D:/Program Files/MySQL/MySQL Server 5.0/bin/mysqldump.exe --user=root password=root mathis > dump_mathis2");
    Mais ça ne fonctionne pas savez-vous pourquoi ?

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

Discussions similaires

  1. Exporter BDD mysql via SSH
    Par Dreamtale dans le forum MySQL
    Réponses: 1
    Dernier message: 13/12/2010, 18h41
  2. Sauvegarde, export, archivage tables MySQL
    Par cerede2000 dans le forum MySQL
    Réponses: 10
    Dernier message: 15/10/2008, 10h58
  3. [MySQL] Envoyer un fichier (en sauvegarde) en BDD MySQL
    Par saadnames dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 12/06/2008, 15h15
  4. [SGBD] [MySql] Sauvegarder une base de données
    Par joquetino dans le forum Administration
    Réponses: 2
    Dernier message: 23/02/2006, 23h47
  5. [Applet][MySQL] connexion à une BDD
    Par Michel38 dans le forum JDBC
    Réponses: 19
    Dernier message: 20/07/2005, 14h59

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