试了好多命令行操作,目前只有这一种好用,其他的好像都不太行,理论上是可以的,不知道问题出在哪里
public static boolean importDatabase() {
// File saveFile = new File(mysqlExportPath);
// if (!saveFile.exists()) {// 如果目录不存在
// saveFile.mkdirs();// 创建文件夹
// }
// if (!importFilePath.endsWith(File.separator)) {
// importFilePath = importFilePath + File.separator;
// }
// StringBuilder stringBuilder=new StringBuilder();
// stringBuilder.append("mysql").append(" -h").append(mysqlHost);
// stringBuilder.append(" -u").append(mysqlUser).append(" -p").append(mysqlPassword);
// stringBuilder.append(" ").append(mysqlExportDatabaseName);
// stringBuilder.append(" <").append(mysqlExportPath);
// String importStr = new String(
// "cmd /c mysql -h " + mysqlHost + " " + "-P " + mysqlLxPort + " " + "-u " + mysqlUser + " " + "-p " + mysqlPassword + " "+ "-D " + mysqlExportDatabaseName + " "
// + "-t " + mysqlTable + " < " + mysqlExportPath
// );
// mysql -u用户名 -p密码 -D数据库<sql文件[全路径全名] 如mysql -uroot -proot -Dtest<D:\test\test.sql
String importStr = new String(
"cmd /c mysql -u" + mysqlUser + " " + "-p" + mysqlPassword + " "+ "-D" + mysqlExportDatabaseName
+ "<" + mysqlExportPath
);
System.out.println(importStr);
try {
Process process = Runtime.getRuntime().exec(importStr);//必须要有“cmd /c ”
if (process.waitFor() == 0) {// 0 表示线程正常终止。
return true;
}
} catch (Exception e) {
e.printStackTrace();
}
return false;
}