使用java命令在mysql中恢复数据库
这是我使用java命令恢复mysql数据库的代码
当我调试代码时,它会卡在运行时进程中。waitFor()
有谁能为这个问题提供解决方案吗
public static boolean restoreDB(String dbUserName, String dbPassword,String dbName, String path) {
String command ="mysql -u"+dbUserName+" -p"+dbPassword+" "+dbName+" < \""+path+"\"";
Process runtimeProcess;
try {
runtimeProcess = Runtime.getRuntime().exec(command);
int processComplete = runtimeProcess.waitFor();
if (processComplete == 0) {
System.out.println("Backup restored successfully");
return true;
} else {
System.out.println("Could not restore the backup");
}
} catch (Exception ex) {
ex.printStackTrace();
}
return false;
}
# 1 楼答案
我终于找到了答案。。 谢谢大家的支持, 我看到他们中的很多人都有同样的问题,所以这是我给你们的解决方案
我们无法使用运行时执行mysql恢复命令。getRuntime()。exec()函数
所以我创建了一个批处理文件,在其中添加了这个mysql恢复命令,并执行了它。工作很好。:)
# 2 楼答案
进程可能会阻塞等待输入,或者写入了太多输出,以至于填满了进程输出缓冲区,等待您读取输出。无论哪种方式,只要确保打印出流程的stdout和stderr,就可以获得更多信息: