• Como Hacer Backup de MySql en Java

    MySql es una base tan poderosa como sencilla. La funcionalidad de backup mas simple es usando mysqldump . Veamos algo de Codigo.

    ACTUALIZADO! Gracias a Mario Gonzalez que ha planteado algunas dudas estamos actualizando este articulo

    Este codigo sencillamente va a hacer un dump de la base de datos entera a un file (back.sql). Seria bueno despues de esto utilizar las clases Zip de Java para comprimir el contenido, dado que este file puede ser enorme.

    Primero vamos a escribir un metodo bien util para transferir desde un input a un output stream.

    public void transfer(InputStream input, OutputStream output) throws Exception {
      byte[] buf = new byte[1024];
      int len;
      while ((len = input.read(buf)) > 0) {
        output.write(buf, 0, len);
      }
      input.close();
      output.close();
    }
    

    Ahora el backup.

    String command = "mysqldump -hlocalhost  -umyuser -pmypass  -rc:\\back.sql mydb";
    
    java.lang.Process p = Runtime.getRuntime().exec(command);
    InputStream input = child.getInputStream();
    
    FileOutputStream output = new FileOutputStream("c:/back.sql");
    transfer(input, output);
    

    Ahora vamos a hacer el restore de la informacion que obtuvimos tambien mediante Java.

    String command = "mysql mydb --user=myuser --password=mypass < \"c:\\back.sql\"";
    Process child = Runtime.getRuntime().exec(command);
    InputStream input = child.getInputStream();
    transfer(input, System.out); // escribimos el resultado en el System.out
    

Leave a comment