Backup MySQL

18 respostas
F

Olá a todos.

Estou construindo uma aplicação desktop e gostaria de saber como faço um backup do meu banco de dados atraves
de um método ativado pelo usuario, por exemplo: clicando em um botão.

Vi outros artigos no fórum mas nao deu certo com as dicas que vi…

desde ja agradeço.

18 Respostas

JMARQ

fbraga, consegui realizar o backup do MySQL através da execução de um arquivo .bat contendo as instruções DOS, após criado o arquivo .bat criei um botão, um método para executar o arquivo e um actionPerformad do botão colocando o método para ser executado.

Qualquer coisa estamos por aqui.

F

Olá amigo.

Não sei nada sobre arquivos .bat, mas vou dar uma lida no assunto.

se vc puder me formecer um exemplo de como se faz eu agradeço.

abrçs.

luxu
{
	  DateTime cal = new DateTime();
	  int dia = cal.getDayOfMonth();
	  int mes = cal.getMonthOfYear();
	  int ano = cal.getYear();
	  String snh = ""; //props.getSenha_bd();
	  String banco ="studio"; // props.getNm_banco();
	  File diretorio = new File("D:/SDO-Backup");
	  File arquivo = new File("D:/SDO-Backup/bkp_"+banco+"_"+ano+"_"+mes+"_"+dia+".sql");
	  Boolean snbkp = true;
	  // Cria diretório
	  if(!diretorio.isDirectory()) new File("D:/SDO-Backup").mkdir();
	  // Cria Arquivo de Backup
	  try {
	  	  if (arquivo.isFile()){ 
			  if(JOptionPane.showConfirmDialog(null,"Ja foi criado backup hoje, deseja substituir ?","Backup ja existe",JOptionPane.YES_NO_OPTION,JOptionPane.QUESTION_MESSAGE)==JOptionPane.YES_OPTION)
			  { 
				  arquivo.delete();
				  snbkp = true;
			  }
			  else
			  {
				  snbkp = false;
			  } 
		  }
		  	  
		  if(snbkp==true)
		  { 
/*
			  Process proc =  
					  Runtime.getRuntime().exec("cmd /c mysqldump -uroot -p"+snh+" -h "+ip+" "+banco+" --result-file=D:/SDO-Backup/bkp_"+banco+"_"+ano+
		  "_"+mes+"_"+dia+".sql"); proc.waitFor();
		  
*/		  
			  String comando = "C:\\Program Files (x86)\\MySQL\\MySQL Server 5.1\\bin\\mysqldump";
				ProcessBuilder pb = new ProcessBuilder(comando, "--user=root",
						"--password="+snh, banco, "--result-file=D:\\SDO-Backup\\bkp_" +banco+"_"+ano+
						  "_"+mes+"_"+dia+".sql");
				pb.start();
			  int res = 0;//proc.exitValue();
		  
		  if (res == 0)
			  JOptionPane.showMessageDialog(null,"Backup criado com Sucesso !");
		  else 	{
			  JOptionPane.showMessageDialog(null,"Falha ao criar Backup. \n Verifique as configurações ou entre em contato com o suporte !",
					  "Erro ao criar backup", JOptionPane.ERROR_MESSAGE);
		  	  } 
		  }
	  }
	  catch (IOException ex) {
		  ex.printStackTrace();
		  System.out.println(ex); 
		  JOptionPane.showMessageDialog(null,"Erro na criação do Backup !");
	  } catch(Exception err){
		  System.out.println(err);
		  JOptionPane.showMessageDialog(null,"Erro na criação do Backup !");
	  }

soh falta implementar o botão...

F

luxu.

vou testar agora…

valeu

F

Como se diz por aqui:

“SELADO AMIGO, SELADO!!!”

Valeu mesmo luxu, funcionou legal.

luxu

blz brow coloca resolvido entaum…

F

rss, Como faço, nao sei,…

kkkk

F

Ha sim, antes de terminar, vc pode me quebrar outra.

e o restore, como procedo??

grato

luxu

v ai nesse link…http://www.guj.com.br/java/252883-exportarimportar-bds-mysql-no-linux#1319712...mas o problema eh fazer o comando funcionar, aki naum funcionou…

F

Ok, verificarei com calma… agradeço;

JMARQ

Muito bom luxu, irei dar um olhada no código e verificar como posso implementar na minha aplicação.

Agora você sabe mim dizer como posso realizar o inverso? Restaurar o banco?

luxu

v akele link q postei…lah tem todo eskema de restaurar, mas naum funciona pq naum conseguimos fazer rodar o comando, só falta isso pra fechar a rotina de backup/restore.

JMARQ

luxu, utilizando um arquivo .bat consegui-se restaurar o banco com o comando:

mysql -u root@localhost --password=senhaDoBanco < CaminhoOndeDeveSerSalvo

luxu

anexa ele pra mim ver entaum…

JMARQ

Segue os comandos do arquivo .bat

@echo Sistema de Restauracao do SisGEAC
@echo restaurando...


@echo off

cd/

cd Program Files
cd MySQL
cd MySQL Server 5.5
cd bin

mysql -u root -pmasterlab -h localhost senha < C:\BACKUP\arquivo_saida.sql



@echo Restauracao realizada com sucesso.

Por favor, avisar quando conseguir.

InicianteJavaHenriqu

Boa luxu

G

ola galera, sou novo no fórum gostaria de saber oque seria o ip dessa linha de comando:

Runtime.getRuntime().exec("cmd /c mysqldump -uroot -p"+snh+" -h "+ip+" "+banco+" --result-file=D:/SDO-Backup/bkp_"+banco+"_"+ano+ "_"+mes+"_"+dia+".sql"); proc.waitFor();

aguardo, obrigado a todos

G

eu segui o codigo do luxu, executou normalmento mas meu arquivo sql veio em branco.

Criado 1 de outubro de 2011
Ultima resposta 17 de nov. de 2012
Respostas 18
Participantes 5