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

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 数据库备份与还原的更多相关文章

  1. Mysql数据库备份和还原常用的命令

    Mysql数据库备份和还原常用的命令是进行Mysql数据库备份和还原的关键,没有命令,什么都无从做起,更谈不上什么备份还原,只有给系统这个命令,让它去执行,才能完成Mysql数据库备份和还原的操作,下 ...

  2. [转]MySQL数据库备份和还原的常用命令小结

    MySQL数据库备份和还原的常用命令小结,学习mysql的朋友可以参考下: 备份MySQL数据库的命令 mysqldump -hhostname -uusername -ppassword datab ...

  3. MySQL数据库备份和还原的常用命令

    其实很多情况下mysql备份就是采用了这些命令,例如: mysql导入和导出数据 linux自动定时备份web程序和mysql数据库 备份MySQL数据库的命令 mysqldump -hhostnam ...

  4. JSP 实现 之 调用java方法实现MySQL数据库备份和恢复

    package cn.qm.db; import java.io.BufferedReader; import java.io.DataInputStream; import java.io.IOEx ...

  5. mysql数据库备份与还原(转)

    MySQL备份和还原,都是利用mysqldump.mysql和source命令来完成的. 1.Linux下MySQL的备份与还原 1.1 备份 [root@localhost ~]# cd /var/ ...

  6. mysql数据库-备份与还原实操

    目录 备份工具 1 基于 LVM 的快照备份(几乎热备) 2 数据库冷备份和还原 3 mysqldump备份工具 3.1 实战备份策略 3.1.1 全备份 3.1.2 分库分表备份 3.2 mysql ...

  7. mysql数据库-备份与还原-Percona XtraBackup 2.4备份工具使用

    目录 xtrabackup 特点 备份生成的相关文件 xtrabackup 安装 xtrabackup 用法 1 备份 2 预备份 3 还原 4 其他 还原注意事项 xtrabackup实现完全备份及 ...

  8. java实现的MySQL自动备份和还原(struts2+Hibernate)---兼容 window+Linux

    相信很多朋友都经历过数据库出问题的情况,我也同样(见我的上一篇博文:phpmyadmin误删表后的恢复过程(心惊胆跳啊)   ).如果数据很大或者很重要,那么恢复起来是相当困难的,所以我们在做一个相对 ...

  9. mysql数据库备份及还原

    数据库备份代码: package com.gd.test; import java.io.BufferedReader; import java.io.FileOutputStream; import ...

随机推荐

  1. Cobar SQL审计的设计与实现

    背景介绍 Cobar简介 Cobar 是阿里开源的一款数据库中间件产品. 在业务高速增长的情况下,数据库往往成为整个业务系统的瓶颈,数据库中间件的出现就是为了解决数据库瓶颈而产生的一种中间层产品. 在 ...

  2. JavaScript 简单介绍

    一.简介 JavaScript是一门面向对象的动态语言,他一般用来处理以下任务: 修饰网页 生成HTML和CSS 生成动态HTML内容 生成一些特效 提供用户交互接口 生成用户交互组件 验证用户输入 ...

  3. properties 文件解析

    1.提供properties文件 jdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/future?useUn ...

  4. TypeScript 泛型及应用

    TypeScript 泛型及应用 一.泛型是什么 二.泛型接口 三.泛型类 四.泛型约束 4.1 确保属性存在 4.2 检查对象上的键是否存在 五.泛型参数默认类型 六.泛型条件类型 七.泛型工具类型 ...

  5. CentOS8安装VNC-Server,并使用VNC Viewer连接

    1.查看系统信息 # 查看red-hat版本信息 cat /etc/redhat-release CentOS Linux release 8.0.1905 (Core) 2.安装VNC Server ...

  6. C# 合并两个数组总结

    byte[] b1 = new byte[] { 1, 2, 3, 4, 5 }; byte[] b2 = new byte[] { 6, 7, 8, 9 }; byte[] b3 = new byt ...

  7. 『学了就忘』Linux软件包管理 — 46、yum命令详细介绍

    目录 1.yum命令的查询操作 2.使用yum命令安装服务 3.使用yum命令升级服务 4.使用yum命令卸载服务 5.yum组管理命令 (1)查询可以安装的软件组 (2)查询软件组内包含的软件 (3 ...

  8. [cf1361E]James and the Chase

    称一个点是"好点",当且仅当其到其余所有点恰存在一条简单路径 结论1:$x$为好点当且仅当以$x$为根的dfs树包含所有点且非树边均为返祖边 若不包含所有点,那么$x$到不被包含的 ...

  9. Hi3516开发笔记(四):Hi3516虚拟机编译uboot、kernel、roofts和userdata以及分区表

    若该文为原创文章,转载请注明原文出处本文章博客地址:https://hpzwl.blog.csdn.net/article/details/121572767红胖子(红模仿)的博文大全:开发技术集合( ...

  10. 使用bootstrap-table时导出excel开头的0被自动省略

    原因是excel"智能"识别数据格式,有时聪明反被聪明误. 解决方案:修改tableExport.js 搜索: if (typeof tdcss != 'undefined' &a ...