これは、Javaからmysqlダンプを作成する方法です
public static boolean mysqlDump(String destination){
File back=new File("tempsdfsdf.fdr");
Runtime rt = Runtime.getRuntime();
FileWriter fw=null;
try {
fw = new FileWriter(back);
}
catch (IOException ex) {
return false;
}
Process child;
try {
child = rt.exec("mysqldump -h"+generals.DATABASE_SERVER+" -u"+DATABASE_USER+" -p"+DATABASE_PASS+" --single-transaction --routines databasename -r"+destination);
InputStream in = child.getInputStream();
InputStreamReader xx = new InputStreamReader(in,"utf8");
char[] chars=new char[1024];
int ibyte=0;
while((ibyte=xx.read(chars))>0)
{
fw.write(chars);
}
fw.close();
Utils.deleteFile(back);
} catch (IOException ex) {
Logger.getLogger(FRMTestare.class.getName()).log(Level.SEVERE, null, ex);
return false;
}
return true;
}
ダンプファイルは「宛先」ですが、別の脅威で圧縮できるように、脅威が終了したときに「宛先」ファイルが完全に作成されるように、ファイルへの InputStream() の書き込みをシミュレートする必要があります。とにかく、これは重要ではありません! 私の質問は、cmd でコマンドを実行するとトリガーがダンプされるのに、Runtime.exec を使用して同じコマンドを実行するとトリガーがダンプされない理由です。申し訳ありませんが、コードは混乱していますが、トリガーをダンプするように変更して一日中失いました。ありがとう!