Foros del Web » Programación para mayores de 30 ;) » Java »

script para hacer backup de base de datos mysql

Estas en el tema de script para hacer backup de base de datos mysql en el foro de Java en Foros del Web. quisiera saber si existe algun script para respaldar una base de datos de mysql no encontre un foro para jsp por eso busco un script ...
  #1 (permalink)  
Antiguo 16/11/2010, 17:25
Avatar de valdo_kof  
Fecha de Ingreso: noviembre-2009
Ubicación: San Juan del Rio, Qro
Mensajes: 192
Antigüedad: 14 años, 5 meses
Puntos: 16
Pregunta script para hacer backup de base de datos mysql

quisiera saber si existe algun script para respaldar una base de datos de mysql

no encontre un foro para jsp por eso busco un script

ya he echo el respaldo con java pero al implementarlo en jsp no me corre me manda directo a la excepcion este es el codigo que en java si funciona

import java.io.*;
import javax.swing.JOptionPane;
import java.sql.*;
import java.util.*;


private void generar_base(){
File dir = new File("D:/respaldo_etiquetas");
dir.mkdir();
Locale l = new Locale("es","MX");
Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("America/Mexico_City"),l);
try{
Runtime runtime = Runtime.getRuntime();
File backupFile = new File("D:/respaldo_etiquetas/respaldo"+ cal.get(Calendar.DATE)+ "_" + (cal.get(Calendar.MONTH)+1) + "_" +cal.get(Calendar.YEAR) + "_a_las_" + cal.get(Calendar.HOUR) + "Hrs_" + cal.get(Calendar.MINUTE) + "min_" + cal.get(Calendar.SECOND)+"seg.sql");
FileWriter fw = new FileWriter(backupFile);
Process child = runtime.exec("C:\\Archivos de programa\\MySQL\\MySQL Server 5.1\\bin\\mysqldump --opt --password= --user=root --databases etiquetas");
InputStreamReader irs = new InputStreamReader(child.getInputStream());
BufferedReader br = new BufferedReader(irs);
String line;
while( (line=br.readLine()) != null ) {
fw.write(line + "\n");
}
fw.close();
irs.close();
br.close();
}catch(Exception e){
JOptionPane.showMessageDialog(null, "Error no se genero el archivo... Error de conexion");
}
}


y cuando hago mi pagina jsp lo dejo asi

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@ page import="java.io.*"%>
<%@ page import="java.util.*"%>
<%@ page import="javax.swing.JOptionPane"%>
<%@ page import="java.sql.*"%>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<%
File dir = new File("D:/respaldo_etiquetasline");
dir.mkdir();
Locale l = new Locale("es","MX");
Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("America/Mexico_City"),l);
try{
Runtime runtime = Runtime.getRuntime();
File backupFile = new File("D:/respaldo_etiquetaline/respaldo"+ cal.get(Calendar.DATE)+ "_" + (cal.get(Calendar.MONTH)+1) + "_" +cal.get(Calendar.YEAR) + "_a_las_" + cal.get(Calendar.HOUR) + "Hrs_" + cal.get(Calendar.MINUTE) + "min_" + cal.get(Calendar.SECOND)+"seg.sql");
FileWriter fw = new FileWriter(backupFile);
Process child = runtime.exec("C:\\Archivos de programa\\MySQL\\MySQL Server 5.1\\bin\\mysqldump --opt --password= --user=root --databases etiquetas");
InputStreamReader irs = new InputStreamReader(child.getInputStream());
BufferedReader br = new BufferedReader(irs);
String line;
while( (line=br.readLine()) != null ) {
fw.write(line + "\n");
}
fw.close();
irs.close();
br.close();
JOptionPane.showMessageDialog(null, "respaldo creado correctamente");
}catch(Exception e){
JOptionPane.showMessageDialog(null, "Error no se genero el archivo... Error de conexion");
}

%>
</body>
</html>
como pueden ver es lo mismo pero en java si me corre y en jsp no si saben como corregirlo o xq me manda a la excepcion o si hay un script para hacerlo ya que serviria tanto para jsp,asp,php ese script le seria de ayuda a muchos, bueno es mi punto de vista

de antemano gracias
  #2 (permalink)  
Antiguo 16/11/2010, 17:58
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: script para hacer backup de base de datos mysql

no desesperes, aguarde a que un moderador mueva el tema al foro correcto.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #3 (permalink)  
Antiguo 17/11/2010, 07:45
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Hola valdo_kof

Muevo tu tema al foro de Java desde Javascript.

Saludos,
  #4 (permalink)  
Antiguo 18/11/2010, 09:12
Avatar de nup_  
Fecha de Ingreso: noviembre-2010
Mensajes: 265
Antigüedad: 13 años, 5 meses
Puntos: 32
Respuesta: script para hacer backup de base de datos mysql

Hola:
Quita la parte:
JOptionPane.showMessageDialog(null, "respaldo creado correctamente");
y
JOptionPane.showMessageDialog(null, "Error no se genero el archivo... Error de conexion");

sustitúyelos por out.println( " TEXTO AKI" );

slds;

Nup_

PD: Por cierto sería de ayuda ver q excepción te da.
  #5 (permalink)  
Antiguo 18/11/2010, 09:39
Avatar de valdo_kof  
Fecha de Ingreso: noviembre-2009
Ubicación: San Juan del Rio, Qro
Mensajes: 192
Antigüedad: 14 años, 5 meses
Puntos: 16
Respuesta: script para hacer backup de base de datos mysql

Nup gracias por responder de echo no se que pasa pero solo cambie
File dir = new File("D:/respaldo_etiquetasline");
por
File dir = new File("C:/respaldo_etiquetasline");

y funciono tal y como esta
, esta raro no!!!!
pero gracias por tu tiempo prestado y por tomarte la molestia de responder
  #6 (permalink)  
Antiguo 31/01/2011, 15:39
Avatar de valdo_kof  
Fecha de Ingreso: noviembre-2009
Ubicación: San Juan del Rio, Qro
Mensajes: 192
Antigüedad: 14 años, 5 meses
Puntos: 16
Respuesta: script para hacer backup de base de datos mysql

tambien tengo uno para poder restaurar la base de datos con jsp y beans, y tambien el mismo metodo puede servir para aplicacioines java si a alguien le sirve aqui se los dejo

solo den las gracias por lo menos

pagina jsp donde se busca el archivo .sql donde se encuentra la base de datos de mysql

Código HTML:
Ver original
  1.     <head>
  2.         <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  3.         <title>JSP Page</title>
  4.         <style type="text/css">
  5. <!--
  6. body,td,th {
  7.     color: #FFFFFF;
  8.     font-weight: bold;
  9.     font-size: 12px;
  10. }
  11. body {
  12.     background-image: url(images/img.jpg);
  13. }
  14. -->
  15.     </head>
  16.     <body> <form name="form1" method="post" action="restaurar_bd.jsp">
  17.     <div align="center">
  18.       <p><img src="images/Imagen HIX_ok.png" width="273" height="55">      </p>
  19.              <label>Buscar Base de Datos
  20.           <input type="file" name="file">
  21.         </label>    
  22.         <p><button type="submit" style="border:none; background-color:transparent;" id="btt" alt="Modificar Registro"><span style="border:none; background-color:transparent;"><img src="images/database_48.png" width="48" height="48"></span></button></p>
  23.       <p>Restaurar Base de Datos </p>
  24.       </div> </form>
  25.     </body>
  26. </html>

pagina jsp donde mandamos llamar el bean y mandamos aviso de error o de aviso de operacion exitosa


Código HTML:
Ver original
  1. <%@ page language="java" import="java.util.* , java.sql.*, abrir_aplicacion.restaurar" pageEncoding="ISO-8859-1"%>
  2. <jsp:useBean id="restaurar" class="abrir_aplicacion.restaurar" scope="page">
  3. <jsp:setProperty name="restaurar" property="*"></jsp:setProperty>
  4. </jsp:useBean>
  5. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
  6.   "http://www.w3.org/TR/html4/loose.dtd">
  7.     <head>
  8.         <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  9.         <title>JSP Page</title>
  10.         <link rel="stylesheet" href="global.css" type="text/css" media="all" />
  11. <script src="mootools.js" type="text/javascript"></script>
  12. <link rel="stylesheet" href="sexyalertbox.css" type="text/css" media="all" />
  13. <script src="sexyalertbox.packed.js" type="text/javascript"></script>
  14.     </head>
  15.     <body>
  16.      <%
  17.      String file=request.getParameter("file");
  18.          System.out.println(file);
  19.      if(!file.equals("")){
  20.      restaurar.RecuperarBackup(file);
  21.        if(restaurar.resp()==true){
  22.      %>
  23.                 <script type="text/javascript">
  24.             window.addEvent('domready', function() {
  25.     Sexy = new SexyAlertBox();
  26. Sexy.alert('<h1>&nbsp;&nbsp;&nbsp;&nbsp;Retauraci&oacute;n Exitosa!!!</h1><p> &nbsp;&nbsp;&nbsp;&nbsp;Restuaraci&oacute;n Exitosa:</p><p>&nbsp;&nbsp;&nbsp;&nbsp;La Restauraci&oacute;n se ha Realizado Satisfactoriamente.</p>',{onComplete:
  27.           function(returnvalue) {
  28.             if(returnvalue)
  29.             {
  30.          location.href="restaurar.jsp";
  31.             }}});
  32.  
  33.     }   );          </script><%
  34.        }
  35.         else{
  36.              if(restaurar.resp()==false){
  37.          %>
  38.     <script type="text/javascript">
  39.             window.addEvent('domready', function() {
  40.     Sexy = new SexyAlertBox();
  41. Sexy.error('<h1>Error de Restauraci&oacute;n!!!</h1><p>La Restauracion ha Fallado:</p><p>Inténtalo de nuevo.</p>',{onComplete:
  42.           function(returnvalue) {
  43.             if(returnvalue)
  44.             {
  45.              location.href="restaurar.jsp";
  46.             }}});
  47.  
  48.     }   );
  49. <%
  50.              }
  51.         }
  52.      }
  53.      %>
  54.     </body>
  55. </html>


para los avisos utilizo mootools se buscan en google como sexylightbox

y este es el bean q hace todo el proceso de restauracion


Código Java:
Ver original
  1. import java.io.FileInputStream;
  2. import java.io.IOException;
  3. import java.io.InputStream;
  4. import java.io.OutputStream;
  5.  
  6. public class restaurar {
  7.    boolean band=false;
  8.  public void RecuperarBackup(String r){
  9.    
  10.      try {
  11.          // Ejecucion del cliente mysql
  12.          Process p = Runtime.getRuntime().exec(
  13.                  "C:/Archivos de programa/MySQL/MySQL Server 5.1/bin/mysql --password= --user=root");
  14.          InputStream es = p.getErrorStream();
  15.          muestraSalidaDeError(es);
  16.          OutputStream os = p.getOutputStream();
  17.          FileInputStream fis = new FileInputStream(r);
  18.          byte buffer[] = new byte[1024];
  19.          int leido = fis.read(buffer);
  20.          while (leido > 0) {
  21.              System.out.println(leido);
  22.              os.write(buffer, 0, leido);
  23.              leido = fis.read(buffer);
  24.          }
  25.          os.close();
  26.          fis.close();
  27.         band=true;
  28.        
  29.      } catch (IOException e) {
  30.          e.printStackTrace();
  31.      }
  32.    resp();
  33.  }
  34. public boolean resp(){
  35. return band;
  36. }
  37.    public void muestraSalidaDeError(final InputStream es) {
  38.      Thread hiloError = new Thread() {
  39.             @Override
  40.          public void run() {
  41.              try {
  42.                  byte[] buffer = new byte[1024];
  43.                  int leido = es.read(buffer);
  44.                  while (leido > 0) {
  45.                      System.out.println(new String(buffer, 0, leido));
  46.                      leido = es.read(buffer);
  47.                  }
  48.                  es.close();
  49.              } catch (Exception e) {
  50.                  e.printStackTrace();
  51.              }
  52.          }
  53.      };
  54.      hiloError.start();
  55.  }
  56. }


y este es el codigo para java

primero deben de crear un nuevo jFrame form

y agregarle dos botones y un jTextFiel

bueno si analizan el codigo veran q mas hacer

Código Java:
Ver original
  1. import java.io.File;
  2. import java.io.FileInputStream;
  3. import java.io.IOException;
  4. import java.io.InputStream;
  5. import java.io.OutputStream;
  6. import javax.swing.JFileChooser;
  7. import javax.swing.JOptionPane;
  8. class restaurar extends javax.swing.JFrame {
  9.  private File archivo;
  10.      public restaurar() {
  11.         initComponents();
  12.     }
  13.  
  14.        private void jButton6ActionPerformed(java.awt.event.ActionEvent evt) {                                        
  15.         // TODO add your handling code here:
  16.           RecuperarBackup();
  17.     }                                        
  18.  
  19.     private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                        
  20.         // TODO add your handling code here:
  21.          JFileChooser fc = new JFileChooser();
  22. int resp = fc.showOpenDialog(this);
  23. if(resp == JFileChooser.APPROVE_OPTION){
  24.     archivo = fc.getSelectedFile();
  25.     jTextField1.setText(archivo.getAbsolutePath());
  26. }
  27.     }                                        
  28.  
  29.     /**
  30.     * @param args the command line arguments
  31.     */
  32.     public void RecuperarBackup() {
  33.      try {
  34.          // Ejecucion del cliente mysql
  35.          Process p = Runtime.getRuntime().exec(
  36.                  "C:/Archivos de programa/MySQL/MySQL Server 5.1/bin/mysql --password= --user=root");
  37.          // Lectura de la salida de error y se muestra por pantalla.
  38.          InputStream es = p.getErrorStream();
  39.          muestraSalidaDeError(es);
  40.          // Lectura del fichero de backup y redireccion a la entrada estandar
  41.          // de mysql.
  42.          OutputStream os = p.getOutputStream();
  43.          FileInputStream fis = new FileInputStream(jTextField1.getText());
  44.          byte buffer[] = new byte[1024];
  45.          int leido = fis.read(buffer);
  46.          while (leido > 0) {
  47.              System.out.println(leido);
  48.              os.write(buffer, 0, leido);
  49.              leido = fis.read(buffer);
  50.          }
  51.          os.close();
  52.          fis.close();
  53.            JOptionPane.showMessageDialog(null, "Restauracion Completada Satisfactoriamente");
  54.      } catch (IOException e) {
  55.          e.printStackTrace();
  56.      }
  57.  }
  58.  /*** Se saca por pantalla la salida de errores del comando, por si acaso.
  59.   *        * @param es
  60.   *
  61.   * El InputStream de donde leer los errores del comando mysql.       */
  62.  private void muestraSalidaDeError(final InputStream es) {
  63.      Thread hiloError = new Thread() {
  64.             @Override
  65.          public void run() {
  66.              try {
  67.                  byte[] buffer = new byte[1024];
  68.                  int leido = es.read(buffer);
  69.                  while (leido > 0) {
  70.                      System.out.println(new String(buffer, 0, leido));
  71.                      leido = es.read(buffer);
  72.                  }
  73.                  es.close();
  74.              } catch (Exception e) {
  75.                  e.printStackTrace();
  76.              }
  77.          }
  78.      };
  79.      hiloError.start();
  80.  }
  81.     public static void main(String args[]) {
  82.          restaurar p = new restaurar();
  83.     p.setLocationRelativeTo(null);
  84.     p.setVisible(true);
  85.     }
  86.  
  87.     // Variables declaration - do not modify                    
  88.     private javax.swing.JButton jButton1;
  89.     private javax.swing.JButton jButton6;
  90.     private javax.swing.JLabel jLabel1;
  91.     private javax.swing.JLabel jLabel2;
  92.     private javax.swing.JTextField jTextField1;
  93.     // End of variables declaration                  
  94.  
  95. }

bueno espero les sirva, me costo mucho conseguir el codigo y luego adaptarlo a mis necesidades y se los comparto xq muchas personas tienen la costumbre de q una vez q obtienen lo que quieren no dicen como lo solucionaron y postean su solucion, en lo personal se me hace muy egoista pedir ayuda y no regresar el favor, ya q esto nos puede ser de mucha ayuda a los demas

suerte!!!

no olviden sus comentarios

Etiquetas: backup, mysql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:13.