如何在不安装mysql的情况下将mysql数据库从远程备份到本地?

h9a6wy2h  于 2021-06-30  发布在  Java
关注(0)|答案(1)|浏览(753)

你好,我正在尝试将mysql备份从远程服务器转移到本地机器。我可以这样做,当我有mysql客户端安装在本地机器上。但是当客户端没有本地mysql客户端安装时,它就不工作了。。。
我一直在使用jdbc连接连接到mysql server,我的代码片段如下:

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路径的问题,所以我将这个文件复制到客户机,并在中指定了mysqldump的绝对路径 executeCmd . 这次备份文件是在指定的路径中创建的,但是它是空的& processComplete 返回一个值 2 . 我的问题是,
我是否需要其他mysql文件来运行mysqldump命令?如果是这样的话,除了将这些命令复制到本地机器之外,如何做呢?
返回值为2的waitfor()是什么意思?
谢谢和问候
伊莫

x0fgdtte

x0fgdtte1#

解决了!,我忘了用mysqldump命令指定hostip&port,我的executecmd参数更改如下:

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

以及mysqldump文件路径。我们只需要mysqldump文件就可以将远程服务器备份到本地服务器。不需要安装mysql客户端。

相关问题