1.在Java项目中resources目录下创建config.properties用来配置备份数据库相关信息
#备份周期 多长时间备份一次(小时)
frequency=24
#mysqldump 环境位置 指向MYSQL的bin目录下
path=C://Program Files//MySQL//MySQL Server 5.5//bin//
#导出主程序文件名 bin目录下导出程序
exeFile=mysqldump.exe
#导出路径
exportPath=C://JAVA//DBbackup
#导出的数据库 多个用','分割
database=bc,sm,abm
#导出的数据库主机
host=127.0.0.1
#数据库用户名
user=root
#数据库密码
password=12345a
2.将下方代码拷贝到编辑器,打包成可运行jar,使用DOS窗口JAVA - JAR autoBackDB.jar 来运行jar包
public class autobackDB {
private SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
private SimpleDateFormat dateFormat = new SimpleDateFormat("HH_mm_ss");
String[] exeportDB = null;
String exportPath = "";
ReadConfig readConfig = new ReadConfig();
public static void main(String[] args) {
new autobackDB().execute();
}
public void execute(){
Timer timer1 = new Timer();
int cycle = Integer.parseInt(readConfig.getPropertiesValue("frequency"));
timer1.schedule(new TimerTask() {
public void run() {
exeportDB = readConfig.getPropertiesValue("database").split(",");
exportPath = readConfig.getPropertiesValue("exportPath") + simpleDateFormat.format(new Date());
if(!new File(exportPath).exists()){
new File(exportPath).mkdirs();
}
String fileTimeSteamp = dateFormat.format(new Date());
for(String database : exeportDB){
String command = "cmd /c cd "+ readConfig.getPropertiesValue("path")+
" & "+ readConfig.getPropertiesValue("exeFile")+
" -h "+ readConfig.getPropertiesValue("host") +
" -u"+ readConfig.getPropertiesValue("user") +
" -p"+ readConfig.getPropertiesValue("password") +
" " + database + " > " + exportPath + "//" + database + "_" + fileTimeSteamp + ".sql";
System.out.println(command);
execCMD(command);
}
}
}, 0 , 1000 * 60 * 60 * cycle);
}
public void execCMD(String command) {
try {
Runtime.getRuntime().exec(command);
Thread.sleep(5000);
} catch (Exception e) {
e.printStackTrace();
}
}
}
如果好用,请点个赞呗!