我经历了很多解决方案,但是以前在Windows 7中都没有在Windows 10中工作,但是在Windows 10上移动后,此mysql查询在Windows 10命令行上不工作。
c:\ wamp \ bin \ mysql \ mysql5.7.19 \ bin \ mysql.exe -uroot -ppassword test_db1 | mysql.exe -u root -ppassword test_db2;
您的SQL语法有误;在第1行的'c:\ wamp \ bin \ mysql \ mysql5.7.19 \ bin \ mysql.exe -uroot -ppassword ifinance_hea'附近使用相应语法检查与MySQL服务器版本相对应的手册
我已经给出了mysql.exe的完整路径
注意:-我知道有很多解决方案可用,但是没有一个对我有用。
我也尝试过:-
mysqldump -uroot -ppassword test_db1 | mysql -u root -ppassword test_db2;
您的SQL语法有误;查看与您的MySQL服务器版本相对应的手册,以在'mysqldump -uroot -ppassword ifinance_hea |附近使用正确的语法。第1行的mysql -u root -ppassword ifinance_hea'
我的代码是:-
public void copyDB(BRANCH branch, Date processDate, String newDbName) throws IOException {
Session session = getSessionFactory(branch).openSession();
try {
String sqlC = "CREATE DATABASE IF NOT EXISTS " + newDbName;
Query queryC = session.createSQLQuery(sqlC);
queryC.executeUpdate();
ProcessBuilder builder = new ProcessBuilder(Util.getProcessBuilder());
Process p = builder.start();
// get stdin of shell
BufferedWriter p_stdin = new BufferedWriter(new OutputStreamWriter(p.getOutputStream()));
p_stdin.write(c:\wamp\bin\mysql\mysql5.7.19\bin\mysql.exe -uroot -ppassword test_db1 | mysql.exe -u root -ppassword test_db2);
p_stdin.newLine();
p_stdin.flush();
// finally close the shell by execution exit command
p_stdin.write("exit");
p_stdin.newLine();
p_stdin.flush();
Scanner s = new Scanner(p.getInputStream());
while (s.hasNextLine()) {
System.out.println(s.nextLine());
}
s.close();
} finally {
session.flush();
session.close();
}
}