没有shell解释的mysqldump

时间:2014-07-24 18:19:48

标签: java mysql shell mysqldump

我试图通过java程序在远程服务器上运行命令。部分代码如下:

Process backUp = Runtime.getRuntime().exec(cmd);

BufferedReader stdInput = new BufferedReader(new InputStreamReader(backUp.getInputStream()));
BufferedReader stdError = new BufferedReader(new InputStreamReader(backUp.getErrorStream()));

cmd字符串包含:

 sudo mysqldump --host=localhost --no-data --user=root --password=*******
 lbs company > /home/ubuntu/michael/***************/lbs.company.sql

我知道我的问题是“>”用于shell解释的命令,这些命令不适用于runtime.exec。如何格式化我的mysqldump命令以解决此问题?感谢。

1 个答案:

答案 0 :(得分:1)

您可以使用--result-file指定mysqldump的输出,而不是通过“>”重定向输出。所以

mysqldump --host=localhost --user=root --password=******* lbs company > /home/lbs.company.sql

变为

mysqldump --host=localhost --user=root --password=******* --result-file=/home/lbs.company.sql lbs company