你好,我正在尝试将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()是什么意思?
谢谢和问候
伊莫
1条答案
按热度按时间x0fgdtte1#
解决了!,我忘了用mysqldump命令指定hostip&port,我的executecmd参数更改如下:
以及mysqldump文件路径。我们只需要mysqldump文件就可以将远程服务器备份到本地服务器。不需要安装mysql客户端。