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