Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Dump em MySQL via Programação


aprediz12

Pergunta

Oi gente, tenho o seguinte comando que eu executo direto no cmd do windows: mysqldump -u root -psenha -x -e -A > c:\Pasta1\backupTeste.sql

isso gera um backup do meu banco MySQL, só que eu queria uma forma de fazer isso via linha de comando diretamento no delphi

já tentei algumas coisas tipo usar o WinExec, mas sem sucesso.

se alguém puder da um help, ficarei muito grato.

há, eu to usando Delphi 2010 com Windows 7

Valeu!

Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0
só que eu queria uma forma de fazer isso via linha de comando diretamento no delphi

já tentei algumas coisas tipo usar o WinExec, mas sem sucesso.

WinExec('cmd /c mysqldump -u root -p --password=minhasenha -c -e --databases dados >c:\Pasta1\backupTeste.sql' ,SW_HIDE);

minhasenha = senha do banco

dados = nome do banco de dados

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

Deu certinho, valeu Jhonas,

mas deixa eu abusar um pouco....

sei que da pra fazer isso mas não sei como:

criar o backup zipado, pode ser qualquer extensão.

é que vou criar uma rotina pra fazer esse backup automatico num horario programado, todo dia será criado um arquivo, só que esse arquivo na extensão *.sql, tem 21 MB, e zipado (manualmente) ficou com 1.97 MB

Valeu...

Editado por aprediz12
Link para o comentário
Compartilhar em outros sites

  • 0

outra coisa que não deu certo,

quero usar um TSaveDialog pra salvar esse arquivo de backup, e to usando um parametro mas ta dando erro

var vFile : string;
begin
  if SaveDialog1.execute then begin
     vFile := OpenDialog1.Filename;
     WinExec('cmd /c mysqldump -u root -p --password=minhasenha -c -e --databases dados >'+vFile ,SW_HIDE);
  end;
end;
já tentei usar tipo: '...dados >'+pChar(vFile),SW_HIDE); tentei tambem: pAnsiChar... mas nem compila, da erro: Incopatible types: 'string' and 'PAnsiChar' tentei assim tambem, desse forma compila, executa mas não cria o arquivo:
var comando : string; // variant;
begin
  if SaveDialog1.execute then begin
     comando := 'cmd /c mysqldump -u root -p --password=minhasenha -c -e --databases dados >'+SaveDialog1.FileName;
     Winexec(PAnsiChar(comando),SW_HIDE);
  end;

Editado por aprediz12
Link para o comentário
Compartilhar em outros sites

  • 0

o correto é :

procedure TForm1.Button1Click(Sender: TObject);
var vFile : PAnsiChar; s : string;
begin
  if SaveDialog1.execute then begin
     S := 'C:\Arquivos de programas\MySQL\MySQL Server 5.1\bin'; // caminho para o MYSQL ( pasta bin )
     ChDir(s);
     vFile := PAnsiChar('cmd /c mysqldump -u root -p --password=minhasenha -c -e --databases dados >'+PAnsiChar(SaveDialog1.Filename));
     WinExec(vFile ,SW_HIDE);
  end;
end;

OBS: se voce não colocar o caminho para o executavel ( mysqldump.exe ) não funciona

abraço

Link para o comentário
Compartilhar em outros sites

  • 0
o correto é :

procedure TForm1.Button1Click(Sender: TObject);
var vFile : PAnsiChar; s : string;
begin
  if SaveDialog1.execute then begin
     S := 'C:\Arquivos de programas\MySQL\MySQL Server 5.1\bin'; // caminho para o MYSQL ( pasta bin )
     ChDir(s);
     vFile := PAnsiChar('cmd /c mysqldump -u root -p --password=minhasenha -c -e --databases dados >'+PAnsiChar(SaveDialog1.Filename));
     WinExec(vFile ,SW_HIDE);
  end;
end;

OBS: se voce não colocar o caminho para o executavel ( mysqldump.exe ) não funciona

abraço

Olá Jhonas valeu pela atenção, só que não funcionou...

não deu erro, mas tambem não gerou o arquivo.

obrigado.

Link para o comentário
Compartilhar em outros sites

  • 0

resolvi dessa forma:

var origem, destino : string;
begin
  WinExec('cmd /c mysqldump -u root -p --password=minhasenha -c -e --databases dados > C:\dir_qualquer\bkp001.sql',SW_HIDE);
  origem := 'C:\dir_qualquer\bkp0001.sql';
  if SaveDialog1.execute then begin
     destino := SaveDialog1.FileName;
     MoveFile(PChar(origem),PChar(destino));
  end else DeleteFile('C:\dir_qualquer\bkp001.sql');

o arquivo é gerado numa pasta que eu defini no caso (C:\dir_qualquer\)

ae o arquivo é movida pra onde quizer atravez do SaveDialog.

Valeu.....

Editado por aprediz12
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,7k
×
×
  • Criar Novo...