Jump to content
Fórum Script Brasil
  • 0

(Resolvido) Dump em MySQL via Programação


aprediz12
 Share

Question

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 to comment
Share on other sites

7 answers to this question

Recommended Posts

  • 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 to comment
Share on other 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...

Edited by aprediz12
Link to comment
Share on other 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;

Edited by aprediz12
Link to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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.....

Edited by aprediz12
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Forum Statistics

    • Total Topics
      149.6k
    • Total Posts
      646.2k
×
×
  • Create New...