该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
现在有两台电脑,1台装了mysql称为A(windows系统),另1台装的tomcat称为B(linux系统),项目跑在B上面(B上没装mysql),需要去备份A的数据库。
现在备份没报错,会备份出空文件。在windows的开发环境下(有数据库)一切正常,到了上面所说的环境下就出了空文件。
代码如下
Date now = new Date();
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd_HH-mm-ss");
String savePath = savaPath + "asset_" + format.format(now) + ".sql";
String cmd = "C:\\Program Files\\MySQL\\MySQL Server 5.5\\bin\\mysqldump -h "
+ mysqlIp + " -u" + mysqlUser + " -p" + mysqlPassword
+ " --default-character-set=utf8 " + dataBaseName;
Runtime runTime = Runtime.getRuntime();
BufferedReader reader = null;
PrintWriter writer = null;
try {
Process process = runTime.exec(new String[]{"sh", "-c", cmd});
reader = new BufferedReader(new InputStreamReader(process.getInputStream(), "UTF-8"));
String line = null;
File file = new File(savaPath);
if (!file.exists()) {
file.mkdirs();
}
writer = new PrintWriter(new OutputStreamWriter(new FileOutputStream(savePath), "UTF-8"));
while ((line = reader.readLine()) != null) {
writer.println(line);
}
writer.flush();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
writer.close();
}