簡體   English   中英

如何在沒有mysql本地安裝的情況下將mysql數據庫從遠程備份到本地?

[英]How to Backup mysql db from Remote to local without mysql local installation?

美好的一天,我正在嘗試將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的絕對路徑。 這次是在指定的路徑中創建備份文件,但是其empty& processComplete返回值2 我的問題是

  1. 我還需要其他任何mysql文件來運行mysqldump命令嗎? 如果是這樣,除了將這些命令復制到本地計算機外,該如何做?
  2. 返回值為2的waitFor()是什么意思?

感謝和問候

iMmo

解決了!我忘了用mysqldump命令指定HostIP和端口。更改了executeCmd參數,如下所示:

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

以及mysqldump文件路徑。 我們只需要mysqldump文件即可將備份從遠程服務器備份到本地。 無需安裝mysql客戶端。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM