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!"); /******************************************************/