1

Good Day, I am trying to take mysql backup from remote server to my local machine. I am able to do so, when i have mysql client installed on local machine. But when the client doesnt have local mysql client installation, it is not working ...

I have been connecting to mysql server using the jdbc connection and my code snippet is as follows:

try{     
String cs = "jdbc:mysql://" + dbh + ":" + dbport + "/" + database + "?user=" + USER + "&password=" + PASS+"";
Class.forName("com.mysql.jdbc.Driver").newInstance();
connection = java.sql.DriverManager.getConnection(cs);
String executeCmd = "";
     if(connection!=null){
        executeCmd = "mysqldump -u "+USER+" -p"+PASS+" "+database+" -r "+path;   
        Process runtimeProcess =Runtime.getRuntime().exec(executeCmd);
        int processComplete = runtimeProcess.waitFor();
        if(processComplete == 0){
            System.out.println("Backup taken successfully");
        } else {
            System.out.println("Could not take mysql backup");
        }
    } else{
        System.out.println("connection not sucess");
    }
}catch (Exception e) {
            e.printStackTrace();
}

I think this might be some problem with mysqldump PATH, so i copied this file to client machine, and specified absolute path to mysqldump in executeCmd. This time the backupfile is created in specified path, but its empty & processComplete returns a value 2. My Questions are,

  1. Do i need any other mysql files to run the mysqldump command? If so how to do that other than copy these commands to local machine?
  2. What does waitFor() with return value 2 mean?

Thanks & Regards

iMmo

1
  • Solved it!, I forget to specify the HostIP & port with the mysqldump command Changed my executeCmd parameter as following: executeCmd = PathToMySqlDumpFile+"mysqldump -h "+HOSTIP+" -P "+PORT+" -u "+USER+" -p"+PASS+" "+database+" -r "+path; along with the mysqldump file path. We only need the mysqldump file to take the backup from remote server to local. No need for mysql client installation. Commented Jun 6, 2013 at 6:39

1 Answer 1

4

Solved it!, I forget to specify the HostIP & port with the mysqldump command Changed my executeCmd parameter as following:

executeCmd = PathToMySqlDumpFile+"mysqldump -h "+HOSTIP+" -P "+PORT+" -u "+USER+" -p"+PASS+" "+database+" -r "+path; 

along with the mysqldump file path. We only need the mysqldump file to take the backup from remote server to local. No need for mysql client installation.

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.