Boa Tarde amigo, eu utilizo algo parecido no meu Sistema de Caixa (em 
C++ Builder, mas é bem parecido com o Delphi).

O que eu fiz, foi copiar o mysqldump.exe do mysql para o diretório onde 
está o executável do programa,
e também o pkzip.exe, para compactar o dump do MySQL.


/******************************************************/
//Declaração de variáveis
String parametros, programa, host, porta, usuario, senha, base, destino, 
zip;

// Deleta os arquivos de backup caso existam
DeleteFile("caixa.sql");
DeleteFile("backup.zip");


programa = "mysqldump.exe --complete-insert";
host     = " --host=" + frmLogin->pubMySQLServidor;
porta    = " --port=" + frmLogin->pubMySQLPorta;
usuario  = " --user=" + frmLogin->pubMySQLUsuario;
senha    = " --password=" + frmLogin->pubMySQLSenha;
base     = " --database "+frmLogin->pubMySQLBD;
destino  = " --result-file=caixa.sql";
parametros = programa+host+porta+usuario+senha+base+destino;

//Executa o dump
WinExec(parametros.c_str(), SW_HIDE);


// dar um tempo de uns 5 segundos, porque senão não compactava
//foi a alternativa que eu achei POG hehehh
Sleep(5000);

zip = "pkzip.exe backup.zip caixa.sql";

WinExec(zip.c_str(), SW_HIDE);
ShowMessage("Backup Efetuado com Sucesso!");


/******************************************************/

Responder a