Perl en Español

  1. Home
  2. Tutoriales
  3. Foro
  4. Artículos
  5. Donativos
  6. Publicidad
 

MYSQL backup

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Intermedio
Mensaje Sab Feb 10, 2007 2:39 pm
Emerson
Perlero Nuevo
Perlero Nuevo
Registrado: 16 Feb 2006
Mensajes: 32
MYSQL backup Responder citando

Buenas, saludos...
Mi problema es que quiero hacer un backup de una base de datos y guardarlo en un archivo .sql; mi base de datos se llama bd_sidispol, usuario root clave ' '. Tengo la forma de hacerlo, pero mi problema es que no sé cómo agregar los datos del backup que lo guarda en la variable $mb en el archivo que hago cuando llamo el getSaveFile....

Si me pueden ayudar se lo agradezco, gracias..

Aquí le pongo el código:

Perl:
use Tk;
use DBI;
use MySQL::Backup;
#use strict;
#use warnings;
$mw = MainWindow->new(-title=>"Menu");
$bt1=$mw->Button(-text=>"Backup",-command=>\&backup)->place(-x=>80,-y=>10);

 my $types = [ ['Perl files', '.sql'],
              ['All Files',   '*'],];


$mw->MainLoop;
sub backup{
my $save = $mw->getSaveFile(-filetypes => $types,
                             -initialfile => 'test',
                             -defaultextension => '.sql');
  print qq{You chose to save as "$save"\n#} if $save;
  #de aqui quiero que que guarde en el archivo que escriio los datos de la variable $mb que esta abajo

  my $mb = new MySQL::Backup('bd_sidispol','localhost','root','',{'USE_REPLACE' => 1, 'SHOW_TABLE_NAMES' => 1});
  print $mb->create_structure();
  print $mb->data_backup();

}
Mensaje Sab Feb 10, 2007 10:33 pm
kidd
Creador de Perl en Español
Creador de Perl en Español
Registrado: 15 Oct 2003
Mensajes: 1389
Ubicación: México
Responder citando

Lo único que necesitas es abrir tu archivo y escribir en él en vez de el STDOUT como estás haciendo ahora:

Perl:
sub backup{

    my $save = $mw->getSaveFile(-filetypes => $types,
                                                   -initialfile => 'test',
                                        -defaultextension => '.sql');

    print qq{You chose to save as "$save"\n#} if $save;

      #de aqui quiero que que guarde en el archivo que escriio los datos de la variable $mb que esta abajo

    my $mb = new MySQL::Backup('bd_sidispol','localhost','root','',{'USE_REPLACE' => 1, 'SHOW_TABLE_NAMES' => 1});


     #Abrimos el archivo y escribimos en él
     open my $FILE, '>', $save or die("Unable to create file $save: $!");
     print {$FILE} $mb->create_structure();
     print {$FILE} $mb->data_backup();
     close $FILE;

}



Saludos
Mensaje Mar Feb 13, 2007 6:52 am
Emerson
Perlero Nuevo
Perlero Nuevo
Registrado: 16 Feb 2006
Mensajes: 32
Gracias Amigo Kidd Responder citando

Muchas gracias por tu ayuda amigo, ahora tengo otra inquietud, en el código que te escribo abajo guardo lo que quería. Ahora quiero que cuando abra la ventana getSaveFile apunte a una carpeta que está en una dirección específica, ejemplo c:\SIDISPOL\BACKUP.

Perl:
use Tk;
use DBI;
use MySQL::Backup;
$mw = MainWindow->new(-title=>"Menu");
$bt1=$mw->Button(-text=>"Backup",-command=>\&backup)->place(-x=>80,-y=>10);
 my $types = [ ['Perl files', '.sql'],
              ['All Files',   '*'],];
$mw->MainLoop;
sub backup{
    my $save = $mw->getSaveFile(-filetypes => $types,
                                               -initialfile => 'test',
                                               -defaultextension => '.sql');
    my $mb = new MySQL::Backup('bd_sidispol','localhost','root','051294',{'USE_REPLACE' => 1, 'SHOW_TABLE_NAMES' => 1});
     #Abrimos el archivo y escribimos en él
     open my $FILE, '>', $save or die("Unable to create file $save: $!");
     print {$FILE} $mb->create_structure();
     print {$FILE} $mb->data_backup();
     close $FILE;
}


Nuevamente gracias amigo...
Mensaje Mar Feb 13, 2007 9:06 am
kidd
Creador de Perl en Español
Creador de Perl en Español
Registrado: 15 Oct 2003
Mensajes: 1389
Ubicación: México
Responder citando

Puedes usar el parametro -initialdir para iniciar en un directorio por default, su uso es similar al de -initialfile :

Perl:
my $save = $mw->getSaveFile(-filetypes => $types,
                                               -initialfile => 'test',
                                               -initialdir  => 'c:\SIDISPOL\BACKUP',
                                               -defaultextension => '.sql');



Saludos
Mensaje Mar Feb 13, 2007 10:08 am
Emerson
Perlero Nuevo
Perlero Nuevo
Registrado: 16 Feb 2006
Mensajes: 32
Gracias Responder citando

Esto lohago para hacer un copia de seguridad de una base de datos...

Gracias amigo KIDD, ahora esta archivo solo guarda la estructura solamente. ¿Como hago para que copie tambien los registros existente en las tabla?
Mensaje Mar Feb 13, 2007 2:23 pm
creating021
Vive para Perl en Español
Vive para Perl en Español
Registrado: 23 Feb 2006
Mensajes: 478
Ubicación: Frente al monitor
Responder citando

Primero deberías chequear que $save sea un archivo valido, es decir, deberías de mirar si $save está definido antes de usra el die en tu programa.

Para lo otro, podrías usar $mb->table_data($nombre_de_tabla) que trae todo lo existente en la tabla...
Mensaje Mie Feb 14, 2007 6:56 am
Emerson
Perlero Nuevo
Perlero Nuevo
Registrado: 16 Feb 2006
Mensajes: 32
Ayuda Responder citando

Me podrias decir como quedaría el código, por ejemplo, tengo una tabla llamada tbl_empreados, tbl_usuario entre otras..

Gracias..........
Mensaje Mie Feb 14, 2007 12:59 pm
kidd
Creador de Perl en Español
Creador de Perl en Español
Registrado: 15 Oct 2003
Mensajes: 1389
Ubicación: México
Responder citando

Umm, con el método data_backup debería de ser suficiente. ¿Si te había funcionado antes?
Mensaje Mar Feb 20, 2007 3:10 pm
Emerson
Perlero Nuevo
Perlero Nuevo
Registrado: 16 Feb 2006
Mensajes: 32
Gracias ahora!!! Responder citando

ya esta solucionado lo del Backup ahora necesito urgentemente el Restore, me imagino que es parecido pero no tengo ni idea como es............
Publicar nuevo tema   Responder al tema    Foros de discusión -> Intermedio Todas las horas son GMT - 6 Horas
Página 1 de 1



Powered by phpBB © 2001, 2005 phpBB Group