Olha só pessoal faz umas 3 semanas que tento resolver o problema do restore na minha aplicação java, eu consigo gerar meu backup sem problemas com o seguinte codigo:
privatevoidjBBanckupActionPerformed(java.awt.event.ActionEventevt){copiaSeguranca();}publicvoidcopiaSeguranca(){Stringcomando="C:\\Program Files\\MySQL\\MySQL Server 5.1\\bin\\mysqldump.exe";ProcessBuilderpb=newProcessBuilder(comando,"--user=root","--password=root","agenda","--result-file=C:\\BKP_Agenda\\BKP_Agenda.sql");JOptionPane.showMessageDialog(this,"Cópia de segurança realizada com sucesso!","Backup",JOptionPane.CLOSED_OPTION);try{pb.start();}catch(IOExceptionex){JOptionPane.showMessageDialog(this,"Cópia de segurança Não realizada! Problema no jBBackup","Backup",JOptionPane.CLOSED_OPTION);}}
Como fazer o Restor do Backup gerado "BKP_Agenda.sql"?
Tipo para restaura este arquivo eu tenho que montar o banco na mão e fazer os importes.
gostaria de um codigo que eu conseguice fazer o restore pode até ser via cmd pois ai crio um .bat que executa tal codigo quando clico no botão de restore na aplicação.
mysql -hservidor -uusuario -psenha bancodedados < seuarquivo.sql
Um abraço.
R
Requena
tb da para fazer o contrario
mysql -hservidor -uusuario -psenha bancodedados > seuarquivo.sql
D
dpweimar
Valeu pela dicas!
Mais o seguite tal codigo so funciona no pront do dos "CMD"
tentei rodar o codigo pelo java mais não esta rodando ele não aceita o comando alguem tem alguma ideia do que pode ser?
segue o codigo do Restore
privatevoidjBRestoreActionPerformed(java.awt.event.ActionEventevt){// TODO add your handling code here:Stringcomando="C:\\Program_Files\\MySQL\\MySQL_Server_5.1\\bin\\";ProcessBuilderpb=newProcessBuilder(comando,"mysql -hlocalhost -uroot -proot agenda < c:\bkp_agenda\bkp_agenda.sql");try{pb.start();JOptionPane.showMessageDialog(this,"Restauração realizada com sucesso!","Restore",JOptionPane.CLOSED_OPTION);}catch(IOExceptionex){JOptionPane.showMessageDialog(this,"Restauração Não realizada! Problema no jBRestore","Restore",JOptionPane.CLOSED_OPTION);}}
R
Requena
privatevoidjBRestoreActionPerformed(java.awt.event.ActionEventevt){//TODOaddyourhandlingcodehere:Stringcomando="C:\\Program_Files\\MySQL\\MySQL_Server_5.1\\bin\\";try{comando+="mysql-hlocalhost-uroot-prootagenda<c:\bkp_agenda\bkp_agenda.sql"; Runtime.getRuntime().exec(command); JOptionPane.showMessageDialog(this, "Restauraçãorealizadacomsucesso!","Restore",JOptionPane.CLOSED_OPTION); } catch (Nao sei de cabeça qual a Exception) { JOptionPane.showMessageDialog(this, "RestauraçãoNãorealizada!ProblemanojBRestore","Restore",JOptionPane.CLOSED_OPTION);}}
N
nilsonuehara
Não seria por causa da barra no caminho do arquivo sql?
privatevoidjBRestoreActionPerformed(java.awt.event.ActionEventevt){// TODO add your handling code here:Stringcomando="C:\\Program Files\\MySQL\\MySQL Server 5.1\\bin\\mysql.exe";ProcessBuilderpb=newProcessBuilder(comando,"-hlocalhost -uroot -proot agenda","<","C:\\BKP_Agenda\\BKP_Agenda.sql");try{pb.start();JOptionPane.showMessageDialog(this,"Restauração realizada com sucesso!","Restore",JOptionPane.CLOSED_OPTION);}catch(IOExceptionex){JOptionPane.showMessageDialog(this,"Restauração Não realizada! Problema no jBRestore","Restore",JOptionPane.CLOSED_OPTION);}}
ele Roda sem dar erro mais não faz o restore no banco!
D
dpweimar
Resolvido!
fiz uma função que chama um arquivo.bat e ele executa o restore pra mim. Sei que não é a melhor soulução mais funciona! hehhe.
Cara Tentei com estes paramentros mais não rolou o unico jeito que rodou foi assim!
Mais valeu pela força!
T
thiagoaranha
Pessoal, estava com o mesmo problema e dei uma pesquizada e achei em um forúm americano que o ProcessBuilder não pode conter espaços em brancos na string dos parametros. Então temos que fazer:
ProcessBuilder pb = new ProcessBuilder(comando, “–host=127.0.0.1”,"–user=usuario","–password=senha","–databases", “seubanco”, “–result-file=C:\BKP\arquivo.sql”);
Pra mim resolveu o problema.
Espero ter ajudado!
K
kemperacc
O problema na verdade aí é o redirecionamento > e < isso não funciona dentro do java, isso é um recurso do sistema operacional,
o que voce pode fazer via java é carregar o arquivo SQL com bufferedreader e depois executa-lo via jdbc, tambem vai resolver seu problema, e vai ser tudo via java:
Queria agradecer a todos que postaram nesse tópico!
Precisava de um backup e restore para meu projeto na faculdade e encontrei tudo aqui!
Valeu mesmo!
Abraços!