通过Java备份MySQL

时间:2017-07-27 00:05:06

标签: java mysql

我正在制作一个程序,使用MysqlDump从java中自动备份MySQL数据库。我想创建文件并压缩它。但是,我遇到了MySQLDump的问题。

我正在使用以下内容创建一个MySQLDump:

pr.isAlive()

我有一个while循环,如果{{1}},它会保留在循环中。我认为这会起作用,但似乎在执行命令时,该过程立即变得不再活跃。我可以让线程睡觉,但是多久?如何进行相同的SQL备份,但检测mysqldump命令何时完成?

1 个答案:

答案 0 :(得分:0)

该命令立即退出。 失败,因为mysqldump无法理解重定向。

这不是您使用Process的方式。你需要:

  1. 使用ProcessBuilder
  2. 合并输出和错误流。
  3. 根据需要将sh -ccmd /c添加到命令行的开头以处理重定向。
  4. 开始这个过程。
  5. 使用输出流并记录它,读取直到流结束。
  6. 致电Process.waitFor()
  7. 获取流程的退出代码并记录下来。
  8. 为什么你根本不使用Java就是一个谜。它只是一个shell脚本。实际上,您可以让MySQL自动安排自己的备份,甚至不需要脚本。