0
好日子,我想從遠程服務器到我的本地機器的MySQL備份。我能夠這樣做,當我有本地機器上安裝MySQL客戶端。但是,當客戶端可是沒有本地MySQL客戶端安裝,這是不工作...如何備份MySQL數據庫從遠程到本地沒有MySQL本地安裝?
我一直在使用JDBC連接連接到MySQL服務器和我的代碼片段如下:
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();
}
我想這可能是mysqldump PATH的一些問題,所以我將這個文件複製到客戶端機器上,並且指定了絕對路徑爲executeCmd
中的mysqldump。這次備份文件是在指定路徑中創建的,但其空的& processComplete
返回值2
。 我的問題是,
- 我需要任何其他的mysql文件來運行mysqldump命令嗎?如果是這樣,除了將這些命令複製到本地機器以外如何做?
- waitFor()返回值2是什麼意思?
感謝&問候
IMMO
解決它!我忘記指定HOSTIP&與mysqldump命令端口 改變了我executeCmd參數如下: executeCmd = PathToMySqlDumpFile + 「的mysqldump -h 」+ HOSTIP +「 -P 」+ PORT +「 -U」 + USER +「-p」+ PASS +「」+ database +「-r」+ path; 以及mysqldump文件路徑。 我們只需要將mysqldump文件從遠程服務器備份到本地即可。無需安裝mysql客戶端。 – RahulArackal