java - 没有 shell 解释的 mysqldump

标签 java shell mysql

我正在尝试通过 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 命令来解决这个问题?谢谢。

最佳答案

您可以使用--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

关于java - 没有 shell 解释的 mysqldump,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24941193/

相关文章:

php - 在 php 中为 $_POST 刷新一次

java - 如何处理游戏中的ArrayIndexOutOfBoundsException

java - 检查文件是否存在于特定目录中

java - 在同一个类中克隆函数

shell - UNIX 查找 : how to deal with paths containing spaces

java - Ganymed SSH - 更改用户

mysql - 如何使用 join 但只获取第一个表的行?

java - 从 ArrayList 中删除对象

python - 将头文件 #ifndef 添加到当前目录下的 C 头文件中

php - 每个类别的帖子限制 10 条记录