使用java代码在window环境下实现定时执行Mysql备份与还原

   //备份
public void doBackup() {
Date currentTime = new Date();
System.out.println("当前时间是:" + new Date());
Runtime runtime = Runtime.getRuntime();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd_HH-mm-ss");
String sdfDate = sdf.format(currentTime);
//备份到的目标文件
String filePath = "E:\\temporary\\time_" + sdfDate + ".sql";
//要执行的命令(%dwz%是环境变量值)
String cmdStr = "%dwz%mysqldump --defaults-extra-file=%dwz%..\\my.ini charm_village > " + filePath;
try {
String[] cmd = {"CMD", "/C", cmdStr};
String[] path = {"dwz=E:\\dwz-software\\mysql-5.7.27-winx64\\bin\\"};
//执行外部程序
Process process = runtime.exec(cmd, path);
InputStream errorStream = process.getErrorStream();
//获取命令执行时的错误信息
System.err.println(IOUtils.toString(errorStream, "UTF-8"));
//阻塞当前线程,并等待外部程序中止后获取结果码
int exitVal = process.waitFor();
if(exitVal == 0) {
System.out.println("数据库备份成功!");
}
} catch (Exception e) {
e.printStackTrace();
}
}

关于返回结果类型:Process,它有几个方法:
1.destroy():杀掉子进程
2.exitValue():返回子进程的出口值,值 0 表示正常终止
3.getErrorStream():获取子进程的错误流
4.getInputStream():获取子进程的输入流
5.getOutputStream():获取子进程的输出流

6.waitFor():导致当前线程等待,如有必要,一直要等到由该 Process 对象表示的进程已经终止。假设已终止该子进程。此方法马上返回。假设没有终止该子进程,调用的线程将被堵塞。直到退出子进程,依据惯例,0 表示正常终止

参考文章:

Mysql:Java代码实现数据库定时备份与还原详解

最新文章

  1. 转:C语言中的头文件可以自己写吗?
  2. 如何扩大LVM 逻辑分区的大小?
  3. 由Excel表格导出Latex代码
  4. Commons-Collections 集合工具类的使用
  5. iOS 利用webView加载html代码,在代理中获取html页面的链接时出现的问题
  6. 【转】UML类图几种关系的总结
  7. 将数据文件从普通文件系统移动到ASM
  8. sqoop连接oracle与mysql&mariadb的错误
  9. Sequence Assignments FRM-41830: List of Value contains no entries.
  10. iOS学习笔记(十五)——数据库操作(SQLite)
  11. JQuery学习笔记——层级选择器
  12. mysql常用基础操作语法(四)--对数据的简单无条件查询及库和表查询【命令行模式】
  13. IntelliJ IDEA 编译Java程序出现 'Error:java: 无效的源发行版: 9' 的解决方案
  14. ajax方法如何给全局变量赋值
  15. 线性素数筛 ACM-ICPC 2018 南京赛区网络预赛 J Sum
  16. where_1
  17. python基础4之递归、lambda、深浅copy
  18. Backbone.js源码浅介
  19. Vmware 注册服务 开机自启
  20. Z律师:创业项目如何玩转股权众筹?

热门文章

  1. 网页上图片点击放大js代码
  2. 【原创】大数据基础之Gobblin(2)持久化kafka到hdfs
  3. linux mysql-5.7.26 安装全记录
  4. 利用Cmake 将最新版本OBS编译成windows版本。
  5. 如何将编译后的文件打包成jar文件
  6. JavaScript笔记(2)
  7. ETL 工具和 BI 工具
  8. Odoo的菜单项
  9. centos7初始化bashshell脚本
  10. QTP(5)