リモート サーバーからローカル サーバーに MYSQL テーブルをバックアップしたいのですが、Java アプリケーションでこれを行う必要があります。そのために次のクエリを実行しようとしています。
C:\Program Files\MySQL\MySQL Server 5.5\bin\mysqldump --opt --where='1 limit 10' -h abcd -u root -proot remoteDB remotetable|mysql -u root -pcanada localDB
コマンドラインでクエリを実行すると、クエリは完全に正常に実行されますが、Javaアプリケーションで実行すると、バックアップを作成できず、奇妙なことに出力も表示されません。コードは次のとおりです。
public static void main(String[] args) {
Process p;
String s="C:\\Program Files\\MySQL\\MySQL Server 5.5\\bin\\mysqldump --opt " +
"--where='1 limit 1' -h a.b.c.d -u root -proot remoteDB remoteTable|mysql -u root -pcanada " +
"localDB";
try {
p = Runtime.getRuntime().exec(s );
p.waitFor();
BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line=reader.readLine();
while (line != null) {
System.out.println(line);
line = reader.readLine();
}
}
catch (InterruptedException e) {
System.out.println("fsff"+e);
e.printStackTrace();
} catch (IOException e) {
System.out.println("fsdaf"+e);
e.printStackTrace();
}
}
Javaアプリケーションで実行しない理由を誰か提案してください。よろしくお願いします:)