Capturar webcam con VB.NET

¿Que haremos? Crearemos una aplicación en Visual Studio, la cual hará uso de una webcam para capturar el video en frames independientes y depositarlos en memoria para despues mostralos al usuario a través de un picturebox y un Timer para crear la ilusión de movimiento. ¿Porque lo haremos? Porque es justo y necesario ¿Que necesitamos? [...]

Envío de correo con JavaMail/Netbeans

JavaMail es una expansión de Java que facilita el envío y recepción de e-mail desde código java. JavaMail implementa el protocolo SMTP (Simple Mail Transfer Protocol) así como los distintos tipos de conexión con servidores de correo -TLS, SSL, autentificación con usuario y password, etc [Según SantaWikipedia] ¿Qué necesitamos? JavaMail 1.4.5 Java y Netbeans 6.9 [...]

Proyecto de base de datos Firebird VB

En este proyecto realizaremos una aplicación de base de datos Firebird con el lenguaje de programación de Visual Basic de Microsoft, este proyecto tendrá las funciones básicas de gestión INSERT, DELETE, UPDATE y una interfaz de usuario para utilizarlas. ¿Que necesitamos? Visual Studio 2008 o superior Firebird última versión Firebird ADO.NET Data Provider. Conocimientos básicos [...]

Imprimir imagen con Print

La siguiente clase hace uso de PRINT para imprimir una imagen que se encuentra en un variable de tipo FileInputStream, esta clase a su vez es implementada desde una interfaz que hace fácil su uso, la clase así como todo el proyecto esta comentado. import java.io.File; import javax.print.Doc; import java.io.IOException; import javax.print.DocFlavor; import javax.print.SimpleDoc; import java.io.FileInputStream; [...]

15/1/11

Crear copia de Seguridad [BackUp] de MySQL en Java

JAN29

¿Qué es un backup?

Una copia de seguridad o backup (su nombre en Inglés) en tecnología de la información o informática es una copia de seguridad - o el proceso de copia de seguridad - con el fin de que estas copias adicionales puedan utilizarse para restaurar el original después de una eventual pérdida de datos. [Wikipedia]

El siguiente codigo, BackUpSample.java, realiza una instruccion en mysqldump para crear el backup en memoria, despues este es guardado en un archivo SQL especificando su direccion y extension.

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.FileWriter;
import java.io.PrintWriter;
/**
 * @web http://jc-mouse.blogspot.com/
 * @author Mouse
 */
public class BackUpSample {
    private int BUFFER = 10485760;  
    //para guardar en memmoria
    private StringBuffer temp = null;
    //para guardar el archivo SQL
    private FileWriter  fichero = null;
    private PrintWriter pw = null;
    
 public boolean CrearBackup(String host, String port, String user, String password, String db, String file_backup){
    boolean ok=false;
    try{       
        //sentencia para crear el BackUp
         Process run = Runtime.getRuntime().exec(
        "mysqldump --host=" + host + " --port=" + port +
        " --user=" + user + " --password=" + password +
        " --compact --complete-insert --extended-insert --skip-quote-names" +
        " --skip-comments --skip-triggers " + db);
        //se guarda en memoria el backup
        InputStream in = run.getInputStream();
        BufferedReader br = new BufferedReader(new InputStreamReader(in));
        temp = new StringBuffer();
        int count;
        char[] cbuf = new char[BUFFER];
        while ((count = br.read(cbuf, 0, BUFFER)) != -1)
            temp.append(cbuf, 0, count);
        br.close();
        in.close();        
        /* se crea y escribe el archivo SQL */
        fichero = new FileWriter(file_backup);
        pw = new PrintWriter(fichero);                                                    
        pw.println(temp.toString());  
        ok=true;
   }
    catch (Exception ex){
            ex.printStackTrace();
    } finally {
       try {           
         if (null != fichero)
              fichero.close();
       } catch (Exception e2) {
           e2.printStackTrace();
       }
    }   
    return ok; 
 }  
 
}

Y la forma de utilizarlo:


public class Main {

    public static void main(String[] args) {    
     new BackUpSample().CrearBackup("HOST", "PUERTO", "USUARIO", "PASSWORD", "BASE DE DATOS","DIRECCION DEL ARCHIVO");
    }
    
}

donde:

HOST : localhost
PUERTO: 3306
USUARIO: el usuario de mysql
PASSWORD: el paasword de mysql
BASE DE DATOS: el nombre de la base de datos del cual se quiere realizar el backup
DIRECCION DEL ARCHIVO: la direccion donde se guardara el backup. Ej. "e:/copia de seguridad/backup.sql"

y tenemos:


fin

26 comentarios:

Anónimo dijo...

Saludos... y muy buen aporte, cuando ejecute el codigo del backup, me salia:
java.IOException: cannot run program "mysqldump": CreateProcess error=2, el sistema no puede hallar el archivo especificado...

lo probe en S.O. vista 64bits y en S.O. XP 32bits, no se a q se debe este problema, y como podria solucionarlo...
Gracias de antemano...

Mouse dijo...

¿creaste la base de datos? :)

si es asi, entonces cheka la configuracion de mysqldump, por que no lo encuentra, prueba por linea de comandos si mysqldump esta bien configurado

MikeNF dijo...

pues si cree la base de datos, todo practicamente... pero me sale ese error... habia probado anteriormente un backup en unos de mis programas, y siempre me salio ese mensajito, quizas sea por la ubicacion del mysqldump???, entonces tendria q especificarlo???, y como haria eso???, bueno muchas gracias

Kid_Goth dijo...

Hola MikeNF yo tambien nmire este codigo y me salia el mismo error suyo pero no hay de que preocuparse solo cambie un poco el codigo de mysql dump por la ruta de donde esta por ejemplo yo uso wamp server y el mysqldump esta en
C:\wamp\mysql\bin\mysqldump.exe....
asi el codigo le funciona si no usa wamp ps con el buscador de su pc busque ese archivo mysqldump.exe y copie la ruta y la reemplaza en el codigo asi:

yo lo hago con la ruta que tengo ud con la ruta que tenga...


Process run = Runtime.getRuntime().exec(
"C:\\wamp\\mysql\\bin\\mysqldump --host=" + host + " --port=" + port +
" --user=" + user + " --password=" + password +
" --compact --complete-insert --extended-insert --skip-quote-names" +
" --skip-comments --skip-triggers " + db);


listo espero le sirva nos vemos recuerde que si es \ tiene que ponerlo \\ o le sale error...

shaarini dijo...

hola, y si kisiera utilizar este codigo para crear un respaldo pero de mis documentos k es lo k tendria que modificar??? o solo funiciona para crear respaldos de mysql??

phantroc dijo...

gracias por la ayuda pero tengo una duda como restaurar la base de datos a partir del backup.sql en netbeans seria de gran ayuda

Anónimo dijo...

El cod anda bárbaro.. pero a la hora de restaurar la base de datos estoy teniendo problemas, uso lo sig:
Process run =Runtime.getRuntime().exec(
"C:\\...bla bla bla...\\mysql.exe --password=" " --user="root" db < archivo.sql);

si lo hago con el administrador de mysql en localhost, anda bien.. pero desde el sistema hecho con java, no me deja.

Alguna recomendación??
gracias!

Anónimo dijo...

wow si muchas gracias por el codigo, pero igual que el comentario anterior, no puedo restaurar la base de datos, ni con una instruccion sql enviada desde java.... AYUDA POR FAVOR!! es para un proyecto y lo necesito....

mouse dijo...

al restaurar el problema es que no se puede encontrar la ruta de mysql, si colocas la ruta absoluta no hay ningun problema

Anónimo dijo...

YO QUISIERA SABER SI ALGUIEN TIENE N CODIGO PARECIDO PERO PARA ORACLE

Anónimo dijo...

jc mouse lml

funciona yeah!!

T_______T *

Anónimo dijo...

Y si solo quiero sacar el backup de algunas tablas y procedimientos espceificos?.

Rulber Velasquez dijo...

Buenas Tardes Mouse... te felicito por tus aportes que nos ayudan bastante... quisiera saber si podrías poner un tutotial como este pero ahora para restaurar una base de datos. Gracias de antemano.

Anónimo dijo...

Mi nombre es eduardo
, estoy aciendo el crear backup pero me dice este error
java.io.FileNotFoundException: C:\Users\ejnsilva\Documents (Acceso denegado)
at java.io.FileOutputStream.open(Native Method)
at java.io.FileOutputStream.(FileOutputStream.java:194)
at java.io.FileOutputStream.(FileOutputStream.java:84)
at java.io.FileWriter.(FileWriter.java:46)
at Formularios.BackUpSample.CrearBackup(BackUpSample.java:42)
at Formularios.Main.main(Main.java:21)
no lo entiendo

Anónimo dijo...

excelente me funciono muy bien...gracias

backup online dijo...

Excelente blog!

Anónimo dijo...

Muy bueno.... fue ctrl+c y ctrl+v y listo! jaja gracias por el aporte...

Nightmare dijo...

Buenas, me gustaria saber como realizar un backup cuando el servidor MySQL esta ubicado en otra direccion?
Tengo 2 PCs un cliente y un server, como puedo hacer entonces??

Anónimo dijo...

necesito ayuda para poder restaurar la base de datos

Anónimo dijo...

hola...ahora podrias ayudarnos a ejecutar ese backup que se hizo desde java...porfis

Anónimo dijo...

HOLA .MUY INTERESANTE,,,PERO SABES TRATE DE MODIFICARLO Y APLICARLO PARA SQL Server ,PERO NADA......PODRIAS AYUDARME

Cobos Deyby dijo...

Gracias, me ha servido.

pedro caceres dijo...

Mouse muchas gracias por el aporte me ayudo bastante lo hice en una maquina de 32 bit y funciono muy bien al migrarla a una de 64 bits me dio problemas pero con la aclaracion de Kid_Goth ya lo resolvi mil gracias a los dos

dnys dijo...

Hola hermano gracias por el aporte, mira estoy tratando de hacer un backup con la ayuda de tu codigo en una aplicacion hecha en java y netbeans con linux ubuntu y bd en phpmyadmin, pero no he podido crear el backup todavia, si pudieras ayudarme te lo agradeceria.

dnys dijo...

se olvido comentar que el backup lo quiero generar desde un boton !

Richard Portillo dijo...

Buenas amigo .. me podría decir si tiene algunos ejemplos iguales pero con. Base de datos firebird ..

Post recomendado