Runtime.getRuntime().exec() + mysqldump

1 resposta
IsraelPinheiro
Alguém saberia me dizer porque o seguinte código não está dando certo ?
try{
            if(verificador_enderecoServidor==true){
                if(exists==false){
                    Runtime.getRuntime().exec("mkdir "+destinoBackup);
                }
                if(verificador_nomeBanco==false|verificador_nomeTable==false){
                    Runtime.getRuntime().exec("mysqldump -h "+enderecoServidor+" -u "+usuarioBanco+" --password="+senhaBanco+" --all-databases> "+destinoBackup+"\"+nomeBackup);
                }
                if(verificador_nomeBanco==true|verificador_nomeTable==false){
                    Runtime.getRuntime().exec("mysqldump -h "+enderecoServidor+" -u "+usuarioBanco+" --password="+senhaBanco+" "+nomeBanco+" >"+destinoBackup+"\"+nomeBackup);
                }
                if(verificador_nomeBanco==true|verificador_nomeTable==true){
                    Runtime.getRuntime().exec("mysqldump -h "+enderecoServidor+" -u "+usuarioBanco+" --password="+senhaBanco+" "+nomeBanco+" "+nomeTable+">"+destinoBackup+"\"+nomeBackup);
                }
            }
            else{
                
            }
        } 
        catch (IOException e) {  
            System.out.print(e);  
        }
De antemão obrigado a todos

EDIT: Com não dando certo quero dizer que ele simplesmente não gera o arquivo sql

1 Resposta

IsraelPinheiro

pra facilitar segue versão mais completa

public void backup(){
        //variaveis necessárias ao comando sql
        String enderecoServidor=enderecoServidorTextField.getText();
        String nomeBanco=nomeBancoTextField.getText();
        String nomeTable=nomeTableTextField.getText();
        String destinoBackup=arquivarEmTextField.getText();
        String usuarioBanco = usuarioBancoTextField.getText();
        String senhaBanco = senhaBancoTextField.getText();
                                                
        //String com horário do backup
        int hora = Calendar.HOUR;
        int minuto = Calendar.MINUTE;
        int segundo = Calendar.SECOND;
        String horario = hora+"_"+minuto+"_"+segundo;
        
        //String com a data do backup
        int dia = Calendar.DAY_OF_MONTH;
        int mes = Calendar.MONTH+1;
        int ano = Calendar.YEAR;
        String data = dia+"_"+mes+"_"+ano;  
        
        //Nome do arquivo a ser gerado
        String nomeBackup ="Backup - "+data+" - "+horario+".sql";
        
        //verifia se local de destino do backup existe
        boolean exists = (new File(enderecoServidor)).exists();
        verificaTextFields();
        try{
            if(verificador_enderecoServidor==true){
                if(exists==false){
                    Runtime.getRuntime().exec("mkdir "+destinoBackup);
                }
                if(verificador_nomeBanco==false|verificador_nomeTable==false){
                    Runtime.getRuntime().exec("mysqldump -h "+enderecoServidor+" -u "+usuarioBanco+" --password="+senhaBanco+" --all-databases> "+destinoBackup+"/"+nomeBackup);
                }
                if(verificador_nomeBanco==true|verificador_nomeTable==false){
                    Runtime.getRuntime().exec("mysqldump -h "+enderecoServidor+" -u "+usuarioBanco+" --password="+senhaBanco+" "+nomeBanco+" >"+destinoBackup+"/"+nomeBackup);
                }
                if(verificador_nomeBanco==true|verificador_nomeTable==true){
                    Runtime.getRuntime().exec("mysqldump -h "+enderecoServidor+" -u "+usuarioBanco+" --password="+senhaBanco+" "+nomeBanco+" "+nomeTable+">"+destinoBackup+"/"+nomeBackup);
                }
            }
            else{
              
            }
        } 
        catch (IOException e) {  
            System.out.print(e);  
        }  
    }
Criado 5 de agosto de 2011
Ultima resposta 5 de ago. de 2011
Respostas 1
Participantes 1