gpt4 book ai didi

java - 无法在java应用程序中运行mysql查询

转载 作者:行者123 更新时间:2023-11-29 08:28:06 24 4
gpt4 key购买 nike

我想将 MYSQL 表从远程服务器备份到本地服务器,我必须在我的 java 应用程序中执行此操作。我正在尝试运行以下查询来执行此操作:

C:\Program Files\MySQL\MySQL Server 5.5\bin\mysqldump --opt --where='1 limit 10' -h a.b.c.d -u root -proot remoteDB Remotetable|mysql -u root -pcanada localDB

当我通过命令行运行查询时,查询运行得很好,但是当我通过我的java应用程序运行它时,它无法创建任何备份,并且奇怪的是也没有显示任何输出。以下是代码:

    public static void main(String[] args) {
Process p;
String s="C:\\Program Files\\MySQL\\MySQL Server 5.5\\bin\\mysqldump --opt " +
"--where='1 limit 1' -h a.b.c.d -u root -proot remoteDB remoteTable|mysql -u root -pcanada " +
"localDB";
try {
p = Runtime.getRuntime().exec(s );
p.waitFor();
BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line=reader.readLine();

while (line != null) {
System.out.println(line);
line = reader.readLine();
}
}
catch (InterruptedException e) {
System.out.println("fsff"+e);
e.printStackTrace();
} catch (IOException e) {
System.out.println("fsdaf"+e);
e.printStackTrace();
}

}

请有人建议我为什么不通过我的 java 应用程序运行它。提前致谢:)

最佳答案

Runtime.exec 不是 shell。它仅启动一个进程,并且不处理输入和输出流重定向,因此 command1 | command2 不起作用。

作为解决方法,您可以将命令写入 .cmd 文件并使用 cmd.exe 运行它。

关于java - 无法在java应用程序中运行mysql查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17389991/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com