Fórum Restore e Backup Mysql Delphi #524650
02/07/2015
0
Estou com um problema aqui o qual não consigo resolver.
Estou executado uma rotina para realizar a Restauração de bases de dados do MySQL, com a seguinte rotina:
//Essa rotina e o modelo para Restore
aux := 'cmd.exe /c " '+MeuDiretorio+'mysql -u root ';
aux := aux + 'basededados < ' + arquivo + '"';
if not createProcessSimple(aux) then
ShowMessage('RESTAURAÇÃO NÃO FOI PROCESSADA!')
else
begin
ShowMessage('Restauração Realizada!');
ShowMessage('SAIA DO SISTEMA E ENTRE NOVAMENTE');
btnRestaurar.Caption := 'Restaurar';
end;
function TfrmConfBd.CreateProcessSimple(cmd: string):boolean;
var SUInfo: TStartupInfo;
ProcInfo: TProcessInformation;
begin
FillChar(SUInfo, SizeOf(SUInfo), #0);
SUInfo.cb := SizeOf(SUInfo);
SUInfo.dwFlags := STARTF_USESHOWWINDOW;
SUInfo.wShowWindow := SW_HIDE;
result := CreateProcess(nil, PChar(cmd), nil, nil, false, CREATE_NEW_CONSOLE or NORMAL_PRIORITY_CLASS, nil, nil, SUInfo, ProcInfo);
if result then
begin
WaitForSingleObject(ProcInfo.hProcess, INFINITE);
CloseHandle(ProcInfo.hProcess);
CloseHandle(ProcInfo.hThread);
end;
end;
Na variável meu diretório eu estava pegando o diretório padrão do sistema(executável), onde coloquei o Mysqldump e o Mysql.
Agora quero ao invés de executar o Mysqldump e o Mysql de dentro da raiz do meu executável, executar de dentro da pasta BIN do mysql, porem, não funciona. Pego o diretório certinho da pasta BIN, mas ao rodar a rotina os Restores não são feitos e os Backups ficam vazios.
Fábio Ribeiro
Curtir tópico
+ 0Posts
02/07/2015
Dorivan Sousa
se nao precisa por aspas... no dos pra executar comandos de diretorios com espaço entre os nomes tem que colocar "C:\Arquivos de Programas\Progra.exe"
Gostei + 0
02/07/2015
Fábio Ribeiro
se nao precisa por aspas... no dos pra executar comandos de diretorios com espaço entre os nomes tem que colocar "C:\Arquivos de Programas\Progra.exe"
Estão indo com aspas duplas sim!
O mesmo comando usando o Mysqldump e Mysql de dentro da pasta do executavel funciona, porem, utilizando da raiz BIN do Mysql não.
Gostei + 0
02/07/2015
Dorivan Sousa
Gostei + 0
02/07/2015
Fábio Ribeiro
Uso Windows 8. Suspeitei disso também, mas, mesmo dando permissão total a Todos na pasta, não vai.
Gostei + 0
02/07/2015
Dorivan Sousa
runas /usuario:Dorivan notepad.exe
/usuario é o parametro depois dos dois pontos vc coloca o nome do seu usuario adminstrador e ele vai pedir a senha
posta ai o caminho do mysql completo.
Gostei + 0
02/07/2015
Fábio Ribeiro
o diretorio deveria ter aspas duplas abrindo e fechando. obs: Meu diretório continha exemplo do Restore:
"C:\pararararararar"
Porem fazendo alguns testes, a rotina de restore funcionou colocando somente da seguinte forma:
""C:\pararararararar" (duas aspas duplas abrindo)
Para Backup funciona normalmente com "C:\pararararararar"
o comando todo ficou assim:
cmd.exe /c ""C:\parararar\mysql" -u usuario -psenha database < teste.sql
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)