您的位置:首页 > 数据库 > MySQL

Mysql 定时导出sql 脚本

2018-01-26 17:42 666 查看
利用dos 命令执行 sql

// 数据库导出
String user = "root"; // 数据库帐号
String password = "xxx"; // 登陆密码
String database = "xxx"; // 需要备份的数据库名
String times= DateUtils.getSpecifyDate(new Date(),"yyyy-MM-dd_HHmmss");
String oldtimes = DateUtils.getSpecifyDate(DateUtils.getPreviousOrNextDaysOfDate(new Date(), -3),"yyyy-MM-dd");
String filepath = "e:\\xxx\\"+times+".sql"; // 备份的路径地址
String stmt1 = "E:\\Program Files\\MariaDB 10.1\\bin\\mysqldump " + database    +" -h 192.168.3.120 -u " + user + " -p" + password + " --result-file=" + filepath;
ArrayList<String> imgsrc=new ArrayList<String>();
getAllFileName("e:\\xxx",imgsrc);
imgsrc.parallelStream().forEach(name ->{
if(name.split("_")[0].equals(oldtimes)){
DeleteFileUtil.delete("e:\\xxx\\"+name);   // 删除文件  备份文件保留三天
}
});
try {
Runtime.getRuntime().exec(stmt1);
System.out.println("数据已导出到文件" + filepath + "中");
}
catch (IOException e) {
e.printStackTrace();
}

// 获取所有文件名
public static void getAllFileName(String path, ArrayList<String> fileName) {
File file = new File(path);
String[] names = file.list();
if (names != null)
fileName.addAll(Arrays.asList(names));

}


利用jdk 自带timer 实现定时任务

Timer timer = new Timer();
TimerTask t1 = sqlbackup();
timer.schedule(t1, 0, 3600000);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: