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 数据库备份与还原的更多相关文章
- Mysql数据库备份和还原常用的命令
Mysql数据库备份和还原常用的命令是进行Mysql数据库备份和还原的关键,没有命令,什么都无从做起,更谈不上什么备份还原,只有给系统这个命令,让它去执行,才能完成Mysql数据库备份和还原的操作,下 ...
- [转]MySQL数据库备份和还原的常用命令小结
MySQL数据库备份和还原的常用命令小结,学习mysql的朋友可以参考下: 备份MySQL数据库的命令 mysqldump -hhostname -uusername -ppassword datab ...
- MySQL数据库备份和还原的常用命令
其实很多情况下mysql备份就是采用了这些命令,例如: mysql导入和导出数据 linux自动定时备份web程序和mysql数据库 备份MySQL数据库的命令 mysqldump -hhostnam ...
- JSP 实现 之 调用java方法实现MySQL数据库备份和恢复
package cn.qm.db; import java.io.BufferedReader; import java.io.DataInputStream; import java.io.IOEx ...
- mysql数据库备份与还原(转)
MySQL备份和还原,都是利用mysqldump.mysql和source命令来完成的. 1.Linux下MySQL的备份与还原 1.1 备份 [root@localhost ~]# cd /var/ ...
- mysql数据库-备份与还原实操
目录 备份工具 1 基于 LVM 的快照备份(几乎热备) 2 数据库冷备份和还原 3 mysqldump备份工具 3.1 实战备份策略 3.1.1 全备份 3.1.2 分库分表备份 3.2 mysql ...
- mysql数据库-备份与还原-Percona XtraBackup 2.4备份工具使用
目录 xtrabackup 特点 备份生成的相关文件 xtrabackup 安装 xtrabackup 用法 1 备份 2 预备份 3 还原 4 其他 还原注意事项 xtrabackup实现完全备份及 ...
- java实现的MySQL自动备份和还原(struts2+Hibernate)---兼容 window+Linux
相信很多朋友都经历过数据库出问题的情况,我也同样(见我的上一篇博文:phpmyadmin误删表后的恢复过程(心惊胆跳啊) ).如果数据很大或者很重要,那么恢复起来是相当困难的,所以我们在做一个相对 ...
- mysql数据库备份及还原
数据库备份代码: package com.gd.test; import java.io.BufferedReader; import java.io.FileOutputStream; import ...
随机推荐
- ES6-变量的解构赋值复习+学习
ES6------变量的解构赋值 由于之前学过ES6的解构赋值,但是只是略看了一点网上的视频,所以今天就看了看ES6对这一部分的详细介绍,然后做一个总结的笔记. 首先,先大概说一下什么是变量的解构赋值 ...
- ELK集群之kafka(7)
原理待补充: kafka依赖于zookeeper集群. 都是基于java 由于源码安装jdk 未声明bin下java 在各自server配置文件中声明 JAVA_HOME=/usr/local/jdk ...
- Firefox火狐浏览器提示您的链接并不安全(解决办法)
火狐浏览器不管访问什么,一直提示连接不安全 解决办法: 1.在Firefox地址栏输入"about:config",回车,进入如下图页面 点击"我了解此风险" ...
- pycharm 在flask断点不停止
For me disabling Gevent compatible option in Preferences > Build, Execution, Deployment has helpe ...
- 开发中常见的@NotNull,@NotBlank,@NotEmpty注解的区别
开发中常看见@NotNull,@NotBlank,@NotEmpty三个注解,但却没有深入了解过,下面介绍一下他们的应用场景和区别 @NotNull:主要用在基本数据类型上(Int,Integer,D ...
- C++概述及知识点总结
经过一段时间的学习,以前从没有接触过C++这个高逼格的语言的小白,逐渐对C++有了更深的了解和认识,C++是c语言的升级版,Bjarne Stroustrup在剑桥大学计算机中心工作.他使用过Simu ...
- 1组-Alpha冲刺-4/6
一.基本情况 队名:震震带着六菜鸟 组长博客:https://www.cnblogs.com/Klein-Wang/p/15553196.html 小组人数:7人 二.冲刺概况汇报 王业震 过去两天完 ...
- m3u8 ts 视频流爬取思路,合成
.... 先开调试,输入查找一下有没有 m3u8 文件 然后下下来用Notepad++ 打开一下 (以下的样子) 这里就是整个视频的视频流, .ts 的都是文件,都下下来, ------------ ...
- SpringCloud升级之路2020.0.x版-36. 验证断路器正确性
本系列代码地址:https://github.com/JoJoTec/spring-cloud-parent 上一节我们通过单元测试验证了线程隔离的正确性,这一节我们来验证我们断路器的正确性,主要包括 ...
- Unity Ioc 类型初始值设定项引发异常,The type name or alias SqlServer could not be resolved. Please check your configuration file and verify this type name.
先看一下unity的配置信息 <unity> <typeAliases> <typeAlias alias="IDatabase" type=&quo ...