【求救】java操作mysqldump备份mysql出空文件

Guild_Wars_2 2015-03-02 02:38:02
现在有两台电脑,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();
}


应该不是代码的问题,现在就想请有这方面经验的大神来搭救下,看看具体可能是哪方面的原因?先在这谢谢各位了
...全文
276 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Guild_Wars_2 2015-03-02
  • 打赏
  • 举报
回复
引用 4 楼 woshiliulisong 的回复:
cmd语句有问题,是不是连接不上A主机?建议在B主机的linux命令行下修改测试一下cmd语句。问题应该就可以解决了。
恩,测试了下,发现好像是因为linux下没用装mysql无法识别mysqldump这个命令
lsongiu86 2015-03-02
  • 打赏
  • 举报
回复
打印process.getErrorStream()试试呢
深蓝1202 2015-03-02
  • 打赏
  • 举报
回复
cmd语句有问题,是不是连接不上A主机?建议在B主机的linux命令行下修改测试一下cmd语句。问题应该就可以解决了。
Guild_Wars_2 2015-03-02
  • 打赏
  • 举报
回复
引用 2 楼 lsongiu86 的回复:
mysqldump命令>+文件名 可以直接导出到文件啊,为啥还搞个文件流捏
因为你这个方式我保存的备份文件中文都是乱码,无法还原啊亲
lsongiu86 2015-03-02
  • 打赏
  • 举报
回复
mysqldump命令>+文件名 可以直接导出到文件啊,为啥还搞个文件流捏
Guild_Wars_2 2015-03-02
  • 打赏
  • 举报
回复
顶一顶,寻求各路神仙支援

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧