Página 1 de 1

MYSQL backup

NotaPublicado: 2007-02-10 15:39 @693
por Emerson
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:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
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();

}
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4

NotaPublicado: 2007-02-10 23:33 @023
por kidd
Lo único que necesitas es abrir tu archivo y escribir en él en vez de el STDOUT como estás haciendo ahora:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
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;

}
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4



Saludos

Gracias Amigo Kidd

NotaPublicado: 2007-02-13 07:52 @370
por Emerson
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.

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
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;
}
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Nuevamente gracias amigo...

NotaPublicado: 2007-02-13 10:06 @462
por kidd
Puedes usar el parametro -initialdir para iniciar en un directorio por default, su uso es similar al de -initialfile :

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
 my $save = $mw->getSaveFile(-filetypes => $types,
                                               -initialfile => 'test',
                                               -initialdir  => 'c:\SIDISPOL\BACKUP',
                                               -defaultextension => '.sql');
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4



Saludos

Gracias

NotaPublicado: 2007-02-13 11:08 @506
por Emerson
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?

NotaPublicado: 2007-02-13 15:23 @683
por creating021
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...

Ayuda

NotaPublicado: 2007-02-14 07:56 @372
por Emerson
Me podrias decir como quedaría el código, por ejemplo, tengo una tabla llamada tbl_empreados, tbl_usuario entre otras..

Gracias..........

NotaPublicado: 2007-02-14 13:59 @624
por kidd
Umm, con el método data_backup debería de ser suficiente. ¿Si te había funcionado antes?

Gracias ahora!!!

NotaPublicado: 2007-02-20 16:10 @715
por Emerson
ya esta solucionado lo del Backup ahora necesito urgentemente el Restore, me imagino que es parecido pero no tengo ni idea como es............