0
我试图以编程方式将一个.sql文件导入到MySQL中。 .sql文件由mysqldump生成。我试图在Java程序中动态执行此操作。但是,它仍然在Java中的“<”字符上失败(我认为)。如果我在它将要运行的命令(下面的“组合”变量)的调试器中获取字符串,并将其粘贴到命令行中,它可以正常工作。同样,当我试图让mysqldump在这个程序中工作时,它在“>”字符上失败,我不得不用“--result-file =”参数替换它以使其工作。使用Java代码将.sql文件导入到MySQL中
String command = mySqlPath + "mysql.exe";
String user = "-u " + settings.dbUser;
String password = "-p" + settings.dbPassword;
String db = settings.dbDatabase;
String inputFile = filePath + mySqlDumpFile;
String combined = command + " " + user + " " + password + " " + db + " < " + inputFile;
ExternalCommandExecuter ece = new ExternalCommandExecuter(combined);
int code = ece.execute();
这导致了这个字符串,例如
C:\software\mysql5\bin\mysql.exe -u root -p<password>
db_name < C:\software\tomcat7\webapps\ROOT\WEB-INF\documents\dump-1461789460425.sql
这将导致在1粘贴到命令行的退出码,它会工作。
但是为什么会遇到所有这些问题 – e4c5
因为会有几十个转储,并且该软件使客户能够使用webapp在不同时间跳转到不同的时间点。 – bluedevil2k
不,我设置的方式更好,因为sql转储文件将通过电子邮件发送并在本地使用。 – bluedevil2k