Moi*_*nGK 2 java mysql linux runtime.exec
这是代码:
public static File backupDB() throws IOException {
File file = null;
file = new File("BKUP_DB_"
+ Calendar.getInstance()).replace("/", "-") + ".sql");
String executeCmd = "mysqldump -u " + "dbUserName" + " -p" + "dbPassword"
+ " " + "dbName" + " > " +file.getPath();
Process runtimeProcess;
try {
runtimeProcess = Runtime.getRuntime().exec(executeCmd);
int processComplete = runtimeProcess.waitFor();
if (processComplete == 0) {
System.out.println("Backup created successfully");
runtimeProcess.destroy();
return file;
} else {
System.out.println("Could not create the backup");
}
} catch (Exception ex) {
ex.printStackTrace();
}
return file;
}
Run Code Online (Sandbox Code Playgroud)
我试过使用mysqldump的完整路径,/usr/bin/mysqldum但似乎没有任何工作,我怀疑有关Linux的权限问题.你必须是root才能创建一个mysql备份吗?如果没有,这段代码有什么问题?如果是,linux有什么问题:D?我该如何解决这个问题.谢谢.
Ern*_*ill 12
元字符">"由shell实现; 运行程序时不涉及shell,Runtime.exec()因此最后两个参数mysqldump是垃圾.使用数组参数形式Runtime.exec(); 传递"/ bin/sh"作为第一个参数," - c"作为第二个参数,命令行作为第三个参数; 这样,shell元字符将由/ bin/sh解释.
| 归档时间: |
|
| 查看次数: |
1338 次 |
| 最近记录: |