失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > java web mysql备份 Java Web 实现Mysql 数据库备份与还原

java web mysql备份 Java Web 实现Mysql 数据库备份与还原

时间:2023-06-26 12:55:18

相关推荐

java web mysql备份 Java Web 实现Mysql 数据库备份与还原

前段时间某某删库事故付出的惨重代价告诉我们: 数据备份的必要性是企业数据管理极其重要的一项工作。

1. Mysql备份与还原命令

备份命令:

mysqldump -h127.0.0.1 -uroot -ppwd test > d:/test.sql #备份数据库test到 D 盘

还原命令:

mysql -h127.0.0.1 -uroot -ppwd test< test.sql ---将D备份的数据库脚本,恢复到数据库test中

原理就是:通过cmd命令行,调用 mysql安装路径下面的bin目录下面的 msqldump.exe和mysql.exe来完成相应的工作.

2. Web项目中的使用

备份代码:

@OperLog("备份新增")

@PreAuthorize("@ps.hasPerm('backup_add')")

@PostMapping("/save")

@ResponseBody

@Transactional

public R save(@RequestBody Backup backup) {

String name = DateUtil.format(new Date(), DatePattern.PURE_DATETIME_PATTERN);

backup.setName(name);

String filePath = profile + "backup/";

File uploadDir = new File(filePath);

if (!uploadDir.exists())

uploadDir.mkdirs();

String cmd = "cmd /c mysqldump -u" + username + " -p" + password + " " + CommonConstants.DB_NAME + " > "

+ filePath + CommonConstants.DB_NAME + "_" + name + ".sql";

backup.setPath(filePath + CommonConstants.DB_NAME + "_" + name + ".sql");

//执行备份命令

try {

StaticLog.info("执行备份命令:" + cmd);

RuntimeUtil.exec(cmd);

} catch (Exception ex) {

return R.error(ex.getMessage());

}

backupService.save(backup);

return R.ok();

}

还原代码:

@OperLog("备份还原")

@PreAuthorize("@ps.hasPerm('backup_restore')")

@GetMapping("/restore/{id}")

@ResponseBody

public R restore(@PathVariable("id") Integer id) {

Backup backup = backupService.getById(id);

if (backup != null) {

String cmd = "cmd /c mysql -u" + username + " -p" + password + " " + CommonConstants.DB_NAME + " < " + backup.getPath();

//执行还原命令

try {

StaticLog.info("执行还原命令:" + cmd);

RuntimeUtil.exec(cmd);

} catch (Exception ex) {

return R.error(ex.getMessage());

}

}

return R.ok();

}

3. 环境变量Path中添加mysql安装路径

如:计算机-》属性-》高级系统设置-》环境变量-》系统变量Path-》增加 ;C:\Program Files\MySQL\MySQL Server 5.7\bin;

既然数据库备份文件都到本地了,当然可以将sql脚本文件通过电子邮件发到你的邮箱,如果再加个定时备份就更完美了

注:环境变量一定要配置否则无法备份成功,以上代码适用于Windows环境

如果觉得《java web mysql备份 Java Web 实现Mysql 数据库备份与还原》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。