【问题标题】:How to Backup mysql db from Remote to local without mysql local installation?如何在没有 mysql 本地安装的情况下将 mysql db 从远程备份到本地?
【发布时间】:2013-06-06 05:49:30
【问题描述】:

美好的一天,我正在尝试将 mysql 备份从远程服务器备份到我的本地计算机。当我在本地机器上安装了 mysql 客户端时,我可以这样做。但是当客户端没有本地安装mysql客户端时,就无法正常工作了...

我一直使用jdbc连接到mysql服务器,我的代码sn-p如下:

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。 我的问题是,

  1. 我需要任何其他 mysql 文件来运行 mysqldump 命令吗?如果是这样,除了将这些命令复制到本地机器之外,如何做到这一点?
  2. 返回值为2的waitFor()是什么意思?

感谢和问候

iMmo

【问题讨论】:

  • 解决了!,我忘了用mysqldump命令指定HostIP和端口我的executeCmd参数更改如下:executeCmd = PathToMySqlDumpFile+"mysqldump -h "+HOSTIP+" -P "+PORT+" -u "+用户+" -p"+PASS+" "+数据库+" -r "+路径;以及 mysqldump 文件路径。我们只需要 mysqldump 文件将备份从远程服务器备份到本地。无需安装mysql客户端。

标签: java mysqldump


【解决方案1】:

解决了!,我忘记用mysqldump命令指定HostIP和端口更改我的executeCmd参数如下:

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

连同 mysqldump 文件路径。我们只需要 mysqldump 文件将备份从远程服务器备份到本地。无需安装mysql客户端。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-09-29
    • 1970-01-01
    • 2020-01-26
    • 1970-01-01
    • 2015-10-01
    • 1970-01-01
    • 2017-12-24
    • 2021-02-01
    相关资源
    最近更新 更多