Restaurar banco mysql via codigo (em sistema java) [Resolvido]

Boa tarde pessoal.

to precisando de uma ajuda de como posso fazer pra restaurar o backup de um banco de dados via java, com banco mysql, sem ter que usar o administrador do mysql gui tools.
Ex.: seleciono um arquivo e ele restaura o banco.

valeu…

esse comando deve resolver:

Valeu, problema resolvido !!
:slight_smile:

vc tem o código resolvido, estou precisando estudar!!

Segue o código !

public static void restauraBackup(){
        String arq;
        Propriedades props = new Propriedades();
        try{
            props.chamaProps();
            String ip = props.getIp_serv();
            String snh = props.getSenha_bd();
            String banco = props.getNm_banco();
            int res;
            JFileChooser chooser = new JFileChooser("c:\\sdo-backup");
            chooser.setDialogTitle("Selecione o arquivo de backup");
            chooser.showOpenDialog(chooser);
            File bkp;// = new File();
            bkp = chooser.getSelectedFile();
            arq = bkp.getPath();
            Process proc = Runtime.getRuntime().exec("cmd /c mysql -uroot -p"+snh+" -f "+banco+" < "+arq);
            proc.waitFor();
            res = proc.exitValue();
            if (res == 0){
                JOptionPane.showMessageDialog(null, "Backup Restaurado com sucesso !");
            }
            else{
                JOptionPane.showMessageDialog(null, "Falha ao restaurar backup. \n Verifique as configurações ou entre em contato com o suporte !");
            }
        }
        catch(Exception err){
            JOptionPane.showMessageDialog(null, "Erro ao restaurar banco: "+err.getMessage());
            System.out.println(err.getStackTrace());
        }
    }

[quote] JFileChooser chooser = new JFileChooser("c:\\sdo-backup");// o que vem a ser sdo_backup[/quote] è uma pasta?

Sim, eu deixo como padrão a pasta onde os backup são feitos. Quando clica-se em abrir, o open dialog ja se posiciona nesta pasta.

perfeito, entendi como vc fez, legal.Agora, onde posso encontrar um help para fazer o backup, tem uns post aqui, mas não entendi muito bem, vc consegui fazer o backup? Pode me ajudar? Nem sei por onde começar, valeu pela força anteriormente!!!

Não sei se esta 100 % o código, mas funciona !

public static void fazBackup(){
        
        Calendario cal = new Calendario();
        cal.mostraHora();
        int dia = cal.getDia();
        int mes = cal.getMes();
        int ano = cal.getAno();
        mes = mes + 1;
        Propriedades props = new Propriedades();
        props.chamaProps();
        String ip = props.getIp_serv();
        String snh = props.getSenha_bd();
        String banco = props.getNm_banco();
        File diretorio = new File("C:/SDO-Backup");
        File arquivo = new File("C:/SDO-Backup/bkp_"+banco+"_"+ano+"_"+mes+"_"+dia+".sql");
        Boolean snbkp = true;
         // Cria diretório
        if(!diretorio.isDirectory())
            new File("C:/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=C:/SDO-Backup/bkp_"+banco+"_"+ano+"_"+mes+"_"+dia+".sql");
                proc.waitFor();
                int res = 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 !");
        }
    }

comoé sua classe Propriedades?

Da uma olhada na documentação do java sobre properties !

vlw!pnc