こんにちは。リモート サーバーからローカル マシンに 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 に問題があるのではないかと思うので、このファイルをクライアント マシンにコピーし、.xml で mysqldump への絶対パスを指定しましたexecuteCmd
。今回は指定したパスにバックアップ ファイルが作成されますが、空の &processComplete
は値を返します2
。私の質問は、
- mysqldump コマンドを実行するには、他の mysql ファイルが必要ですか? もしそうなら、これらのコマンドをローカルマシンにコピーする以外にそれを行う方法は?
- 戻り値が 2 の waitFor() とはどういう意味ですか?
ありがとうございます。それでは、お元気で
私も