Springboot 实现数据库备份还原的方法

网友投稿 423 2022-11-21


Springboot 实现数据库备份还原的方法

之前对电脑重装了一下,结果IDEA的项目目录没有备份,导致有几个平时会拿来参考的项目都丢失了,尤其有一个自己写的Springboot项目当初没有备份,这次是彻底无缘再见了,有的东西可以对外(开源)的还是放在博客园这些地方记录一下比较不错,偶尔再遇到这样的问题Ctrl+C&Ctrl+V即可解决了。

这回记录一下Springboot实现对数据库进行一个备份和通过备份数据对数据库进行恢复。当然不限于Springboot,对数据库备份还原中的代码,java 相关的都可以使用。

备份数据库

备份通过命令行对数据库导出到指定目录即可。我这里是一个Get请求,页面需要展示备份文件名称、大小和备份时间,代码中使用的log是Slf4j,最终界面效果如图:

代码对我的原代码有所改动,关于备份文件的存放目录,我配置在了application.properties配置文件中,通过一个配置类ProjectUrlConfig去获取,代码中的projectUrlConfig.getBackPath()即为文件目录,与fileName拼接成完整的路径。

/* 备份数据库 */

@GetMapping("backupSQL")

public ModelAndView backupSQL(Map map){

String fileName = "backup_" + new Date().getTime() + ".sql";

String cmd = "mysqldump -uroot -p123456 dbName > " + projectUrlConfig.getBackPath() + fileName; //-u后的root为mysql数据库用户名,-p后接的123456为该用户密码,注意不要有空格;dbName填写需要备份数据的数据库名称,大于号后接生成文件路径

try {

Runtime.getRuntime().exec(cmd);

}catch (Exception e){

log.error("【备份数据库】失败:{}", e.getMessage());

map.put("msg", e.getMessage());

return new ModelAndView("common/error", map);

}

log.info("【备份数据库】成功,SQL文件:{}", fileName);

map.put("msg","备份数据库成功");return new ModelAndView("common/success", map);

}

恢复数据库

备份虽然在cmd命令行中使用 “mysql -uroot -p123456 dbName < SQL文件路径” 可以对数据库还原,尝试使用时没有发现报错但数据库并未还原,最后通过OutputStreamWriter 来实现。

以上即可对数据库进行备份与恢复,但是也只是适用于较小的数据库。

参考文章:https://blog.csdn.net/duli3554197/article/details/89468758

总结


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:详解Maven多模块打包遇到的问题解决方法
下一篇:springboot多数据源配置及切换的示例代码详解
相关文章

 发表评论

暂时没有评论,来抢沙发吧~