[Probleminha] MySql Administrator

8 respostas
K

Pessoal, consigo fazer o backup da minha tabela normal mas quero programar para fazer o backup diariamente, eu vo em backup e na aba schedule selecionei a target folder em meu C:\ e coloquei execution time = Execute backup daily e no caso em 3 minutos, salvei e espero os 3 minutos e nao faz o backup automaticamente so manualmente o q pode ser?
Em Option>Connection os campos Connection,Username,Password,Hostname,Port estao preenchido mas Schema esta vazio é normal mesmo isso o erro nao é esse? vlw pela atenção!!

8 Respostas

K

dei uma olhada no site da mysql e n encontrei nada falando sobre algo do tipo e minha aba advanced parameters esta vazia tambem!

D

Pq vc não utilizar o mysqldump e coloca ele no agendador de tarefas do windows?
O mysqldump é um utilitário do mysql que serve para extrair os dados dos bancos e p/ restaurar também.
[]´s

K

como uso ele? é igual o mysql administrator?

K

e como integro ele a meu projeto ? tipo la no meu projeto tem o botao BACKUP como vo fala pra ele i nesse mysqldump e fazer o backup?

D

Não.

É via linha de comando.

Abre um prompt de comando e digita mysqldump e da enter.
Se aparecer como o comando deve ser utilizado é pq ta funcionando.
Caso não, coloque o caminho da pasta bin do mysql na variável de ambiente path.

Com o comando funcionando é fácil utilizar.

http://dev.mysql.com/doc/mysql/en/mysqldump.html

Postei um shell script faz uns dias aqui no guj p/ backup usando mysqldump.

Dá uma pesquisada.

Ai vc teria q fazer um .bat no windows p/ executar no agendador.

[]´s

K

blz consegui faze o backup usando o mysqldump mas como botar um destino aonde sera salvo meu backup pq ele ta salvando la na pasta bin do mysql

K

fis o metodo e implementei na minha classe principal para testar criei um botao la e quando compilo meu programa aparece o seguinte erro
java.io.IOException: Cannot run program “mysqldump”: CreateProcess error=2, O sistema não pode encontrar o arquivo especificado

eu tenho quase ctz que isso é pq em minha classe

Runtime.getRuntime().exec("mysqldump -u Usuario -pSenha estoque > EstoqueBackup.sql");
                                                    Acho que aqui deveria ter C:\Arquivos de programa\MySql...mysqldump  -u Usuario ......, pois bem

tentei adicionar isso para ver se o erro parava e realmente paro porem nao cria o backup e tambem nao gera nenhum erro veja como fico

Runtime.getRuntime().exec("C:/Arquivos de programas/MySQL/MySQL Server 5.0/bin/mysqldump -u Usuario -pSenha estoque > EstoqueBackup.sql");

to fazendo algo errado ? vlw

D

Como existem espaços no caminho do mysql, vc precisa colocar todo o comando entre aspas.

Fiz uma classe p/ backup aqui p/ vc. Dá uma olhada.

/**
 * @(#)Util.java
 *
 *
 * @author David Buzatto
 * @version 1.00 2009/1/6
 */

import java.io.*;
import java.util.*;

public class Util {
    
    public static void main( String[] args ) {
    	Util.makeBackup(
    		"C:/Arquivos de programas/MySQL/MySQL Server 5.0/bin/",
    		"",
    		"backup.sql",
    		"root",
    		"root",
    		"" );
    }
    
    public static void makeBackup( 
    		String mysqlBinPath, 
    		String backupFilePath, 
    		String backupFileName,
    		String userName,
    		String password,
    		String databases ) {
    	
    	try {
    		
    		if ( databases == null || databases.trim().equals( "" ) )
    			databases = "--all-databases";
    		
    		String comando = "\"" + mysqlBinPath + "mysqldump\" -u " + userName + 
	    			" -p" + password + " " + databases;
	    			
	    	System.out.println( comando );
	    	Process p = Runtime.getRuntime().exec( comando );
	    			
	    	FileWriter fw = new FileWriter( backupFilePath +
    				 backupFileName );
    				
	    	Scanner scan = new Scanner( p.getInputStream() );
	    	while ( scan.hasNextLine() )
	    		fw.write( scan.nextLine() + "\n" );
	    	
	    	scan = new Scanner( p.getErrorStream() );
	    	while ( scan.hasNextLine() )
	    		fw.write( scan.nextLine() + "\n" );

	    	fw.close();
	    				
    	} catch ( IOException exc ) {
    		
    		exc.printStackTrace();
    		
    	} 
    	
    }
    
}

A geração do arquivo teve que ser feita tbm sem usar o operador de desvio de fluxo ( > ) pq ao usá-lo o mysqldump entendia que era uma tabela do banco especificado.

[]´s

Criado 5 de janeiro de 2009
Ultima resposta 6 de jan. de 2009
Respostas 8
Participantes 2