简体   繁体   中英

How to Backup mysql db from Remote to local without mysql local installation?

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

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.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM