BACKUP Y RESTAURAR BASE DE DATOS MYSQL CON JAVA

5,044 views
Skip to first unread message

FEDARK

unread,
Jun 1, 2009, 12:22:58 PM6/1/09
to JavaSOS
Hola chicos soy nuevo en el grupo y quería hacerles una pregunta que
es muy importante para mí.

Quería saber si me pueden ayudar a conseguir el código java para
restaurar y hacer backup desde java.
He conseguido el código para hacer el backup por medio de los comandos
sql de MYSQLDUMP; pero he buscado por muchos sitios web (hasta en
inglés) para restaurar la base de datos y no he encontrado nada que
funcione.
Desde ya muchas gracias por su respuesta.
Atte.
Frank.

Marcelo Velazquez

unread,
Jun 1, 2009, 1:44:19 PM6/1/09
to jav...@googlegroups.com
probaste con el comando:
mysql DataBase_nombre < /Ruta/Hacia/archivo_dump.SQL
si te funciono el mysqldump
deberias poder usarlo en java tambien. Ademas hay info en la web oficial de mysql.

Marcelo Mora Miranda

unread,
Jun 1, 2009, 5:52:07 PM6/1/09
to jav...@googlegroups.com
ahi te va

 public void CrearCopiaDeSeguridad()
    {
        try 
        {
            int x=Dialogo.showSaveDialog(this);
            if(x==0)
            {
                File F = Dialogo.getSelectedFile();
                String RutaFile = F.getPath();
           
                String Ruta = "C:\\Archivos de programa\\MySQL\\MySQL Server 5.0\\bin\\mysqldump.exe";
                String Clave = "clave";
                String Usuario = "user";
                String db = "base";

                String cad = "\"" + Ruta + "\" --opt --password=" + clave + " --user=" + user + " " + base + " > \"" + RutaFile +"\"\n";
                File fcopi = new File("copia_seguridad.bat");
                FileWriter fw = new FileWriter(fcopi);
                fw.write(cad, 0, cad.length());
                fw.close();
                Runtime.getRuntime().exec("copia_Seguridad.bat");
                JOptionPane.showMessageDialog(this, "Creación De Copia De Seguridad Realizada Con Exito");
            }
            else
            {
              JOptionPane.showMessageDialog(this, "Creación De Copia De Seguridad Cancelada Por El Usuario");
            }
        } catch (Exception ex)  {ex.printStackTrace();}
    }

ESTO PARA CREAR LA COPIA, PARA RESTAURAR LA COPIA SOLO INVIERTES > POR < EN
                String cad = "\"" + Ruta + "\" --opt --password=" + clave + " --user=" + user + " " + base + " > \"" + RutaFile +"\"\n";
PERO ANTES CAMBIA LA RUTA DEL MYSQLDUMP POR LA RUTA DE MYSQL EN
                String Ruta = "C:\\Archivos de programa\\MySQL\\MySQL Server 5.0\\bin\\mysqldump.exe";


PRUEBA Y ME AVISAS
TE PORTAS BIEN, NO BEBAS MUCHO....


Invite your mail contacts to join your friends list with Windows Live Spaces. It's easy! Try it!

Frank Escobar

unread,
Jun 1, 2009, 7:20:10 PM6/1/09
to jav...@googlegroups.com
Muchas gracias a Marcelo Mora y Velásquez. Voy a probar con el code que me enviaron. Cuando lo tenga les envío el code completo porsiaca hay alguien que lo quieras. Gracias.

Frank Escobar

unread,
Jun 9, 2009, 11:01:47 AM6/9/09
to JavaSOS
Hola chicos, probé el código q me enviaron, puede hacer el backup pero no pude restaurar la base de datos, aquí adjunto el código q copie y adapte a lo mio.
Esta es la clase BackUP. Adjunto el backup de la base de datos "prueba"
 
 

import java.io.*;

public class BackUP {

    public static void main(String[] args) {
        BackUP c = new BackUP();
//        c.generarBackUp("c:\\backupPrueba.sql");
        c.restaurarBackUp("c:\\backupPrueba.sql");
    }

    String rutaMySqlDump = "C:\\Archivos de programa\\MySQL\\MySQL Server 5.0\\bin\\mysqldump.exe";
    String rutaMySql = "C:\\Archivos de programa\\MySQL\\MySQL Server 5.0\\bin\\mysql.exe";
    String contrasenia ="123";
    String usuario = "root";
    String dataBase = "prueba";

    public void generarBackUp(String rutaFile){
        try{
            String cad = "\"" + rutaMySqlDump + "\" --opt --password=" + contrasenia + " --user=" + usuario + " " + dataBase + " > \"" + rutaFile +"\"\n";


            File fcopi = new File("copia_seguridad.bat");
            FileWriter fw = new FileWriter(fcopi);
            fw.write(cad, 0, cad.length());
            fw.close();
            Runtime.getRuntime().exec("copia_Seguridad.bat");

         }catch(Exception ex){
             ex.printStackTrace();
         }
    }

    public void restaurarBackUp(String rutaFile){
        try{
            String cad = "\"" + rutaMySql + "\" --opt --password=" + contrasenia + " --user=" + usuario + " " + dataBase + " < \"" + rutaFile +"\"\n";


            File fcopi = new File("copia_seguridad.bat");
            FileWriter fw = new FileWriter(fcopi);
            fw.write(cad, 0, cad.length());
            fw.close();
            Runtime.getRuntime().exec("copia_Seguridad.bat");

         }catch(Exception ex){
             ex.printStackTrace();
         }
    }

}

 

Desde ya gracias por su respuesta y disculpen las molestias con este tema.

 


 
El día 1/06/09, FEDARK <fedar...@gmail.com> escribió:
backupPrueba.sql

Marcelo Mora Miranda

unread,
Jun 9, 2009, 11:57:40 AM6/9/09
to jav...@googlegroups.com
como va che, pues sencillo el asunto, mira bien en String cad = ............

borra --opt cosa que te quede asi

            String cad = "\"" + rutaMySql + "\" --password=" + contrasenia + " --user=" + usuario + " " + dataBase + " < \"" + rutaFile +"\"\n";
ah ten cuidado con los espacios, esos me jugaron mal en su momento, asi que chekalo, me avisas.
mmm, pero antes prueba desde consola a restaurar tu copia, si desde ahi te funciona, pues desde jdev tambien debe hacerlo sin mas lios
nos vemos, portate bien, no bebas mucho ....


Frank Escobar

unread,
Jun 10, 2009, 4:34:11 PM6/10/09
to JavaSOS
Muchas gracias, tenías razón con tu corrección pude hacer la restauración de la base de datos.

 
El día 1/06/09, FEDARK <fedar...@gmail.com> escribió:
Reply all
Reply to author
Forward
0 new messages