1

こんにちは。リモート サーバーからローカル マシンに 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。私の質問は、

  1. mysqldump コマンドを実行するには、他の mysql ファイルが必要ですか? もしそうなら、これらのコマンドをローカルマシンにコピーする以外にそれを行う方法は?
  2. 戻り値が 2 の waitFor() とはどういう意味ですか?

ありがとうございます。それでは、お元気で

私も

4

1 に答える 1