我正在尝试从 Java 应用程序恢复 Mysql 转储。我正在使用这段代码:
Runtime rt = Runtime.getRuntime();
try {
comando = "mysql -u root -ppass -e \"source " + path + "\\sql\\backup.sql\" legapelis" ;
Process proceso = rt.exec(comando);
System.out.println("ejecutando");
System.out.println(comando);
proceso.getInputStream().close();
proceso.getOutputStream().close();
proceso.getErrorStream().close();
completado = proceso.waitFor();
if (completado != 0) {
System.out.println("error");
addActionError(getText("backup.errcopia") + ": " + String.valueOf(completado));
consultarCopias();
return "error";
}
System.out.println("fin");
} catch (Exception e) {
addActionError(e.getLocalizedMessage());
consultarCopias();
return "error";
}
但是这段代码打开的Mysql进程永远不会结束。它挂起,如果我杀死它,Mysql 服务将停止正常工作(我必须重新启动它)。我尝试了很多代码:关闭流,读取它......但结果相同。
有什么提示吗?
对不起,如果我的英语不是那么好。
谢谢
Ps:我尝试将 -v 选项添加到命令中以从输入流中读取它。它开始读取但随后又挂起(并且它没有完成读取命令的输出:它突然停止)