MySQL代码备份
- package com.dus.utils;
- import java.io.BufferedReader;
- import java.io.BufferedWriter;
- import java.io.FileInputStream;
- import java.io.FileOutputStream;
- import java.io.IOException;
- import java.io.InputStream;
- import java.io.InputStreamReader;
- import java.io.OutputStream;
- import java.io.OutputStreamWriter;
- //数据库备份
- public class MySQLDump {
- public static boolean sqlDump(String cmd,String filePath){
- boolean falg = false;
- try {
- Runtime run = Runtime.getRuntime();
- //cmd 命令:"C:/Program Files/MySQL/MySQL Server 5.1/bin/mysqldump -uroot -proot email"
- Process p = run.exec(cmd);
- InputStream is = p.getInputStream();// 控制台的输出信息作为输入流
- InputStreamReader isr = new InputStreamReader(is,"UTF-8");//设置输入流编码格式
- BufferedReader br = new BufferedReader(isr);
- //将控制台输入信息写入到文件输出流中
- FileOutputStream fos = new FileOutputStream(filePath);
- BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(fos,"UTF-8"));
- String temp = null;
- while( (temp = br.readLine()) !=null){
- bw.write(temp);
- bw.newLine();
- }
- bw.flush();
- bw.close();
- br.close();
- falg = true;
- System.out.println("/* Dump SQL File "+filePath+" OK! */");
- } catch (IOException e) {
- throw new RuntimeException("请将mysql命令添加到path中!",e);
- }
- return falg;
- }
- //恢复数据库
- /**
- * 导入
- *
- */
- public static void sqlLoad(String cmd,String sqlPath) {
- try {
- Runtime rt = Runtime.getRuntime();
- // 调用 mysql 的 cmd: C:/Program Files/MySQL/MySQL Server 5.1/bin/mysql.exe -uroot -proot email
- Process child = rt.exec(cmd);
- OutputStream out = child.getOutputStream();//控制台的输入信息作为输出流
- //输入流
- BufferedReader br = new BufferedReader(new InputStreamReader(
- new FileInputStream(sqlPath), "utf8"));
- //输出流
- OutputStreamWriter writer = new OutputStreamWriter(out, "utf8");
- String inStr;
- while ((inStr = br.readLine()) != null) {
- writer.write(inStr);
- writer.write("\r\n");
- }
- writer.flush();
- // 别忘记关闭输入输出流
- out.close();
- br.close();
- writer.close();
- System.out.println("/* Load SQL File "+sqlPath+" OK! */");
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- public static void main(String[] args) {
- sqlDump("D:/Program Files/MySQL/MySQL Server 5.0/bin/mysqldump -uroot -proot weddingdb","e:/DBBack/weddingdb.sql");
- //sqlLoad("C:/Program Files/MySQL/MySQL Server 5.1/bin/mysql.exe -uroot -proot email","c:/email.sql");
- }
- }
servlet
- package com.dus.web;
- import java.io.IOException;
- import java.io.PrintWriter;
- import java.util.Date;
- import javax.servlet.ServletException;
- import javax.servlet.http.HttpServlet;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import javax.servlet.http.HttpSession;
- import com.dus.model.Log;
- import com.dus.service.LogService;
- import com.dus.utils.AppException;
- import com.dus.utils.MySQLDump;
- /**
- * 备份数据库 servlet
- */
- public class MySQLDumpServlet extends HttpServlet {
- @Override
- protected void doGet(HttpServletRequest request, HttpServletResponse response)
- throws ServletException, IOException {
- doPost(request, response);
- }
- @Override
- protected void doPost(HttpServletRequest request, HttpServletResponse response)
- throws ServletException, IOException {
- response.setContentType("text/html;charset=UTF-8");
- request.setCharacterEncoding("UTF-8");
- response.setCharacterEncoding("UTF-8");
- PrintWriter pw = response.getWriter();
- boolean flag = false;
- // 声明session
- HttpSession session = null;
- // 使用request对象取得session
- session = request.getSession();
- Integer userId = (Integer)session.getAttribute("userId");
- // 若用户没有登录,则跳转到登录页面
- if (userId == null) {
- response.sendRedirect("toLogin");
- } else {
- flag = MySQLDump.sqlDump("C:/Program Files/MySQL/MySQL Server 5.5/bin/mysqldump -uroot -proot dusdb", "e:/DBBack/dusdb.sql");
- if(flag) {
- pw.print("<script type='text/javascript'> alert('备份数据库成功! SQL脚本路径:e:/DBBack/dusdb.sql'); </script>");
- // 添加操作日志
- Log log = new Log();
- log.setUser_id(userId);
- log.setContent("数据库备份");
- log.setTime(new Date());
- LogService logService = new LogService();
- try {
- logService.save(log);
- } catch (AppException e) {
- e.printStackTrace();
- }
- } else {
- pw.print("<script type='text/javascript'> alert('备份数据库失败!'); </script>");
- }
- }
- }
- }
MySQL代码备份的更多相关文章
- MySQL 数据备份与还原的示例代码
MySQL 数据备份与还原的示例代码 这篇文章主要介绍了MySQL 数据备份与还原的相关知识,本文通过示例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下 一.数据备份 1.使用 ...
- Ubuntu Server下MySql数据库备份脚本代码
明: 我这里要把MySql数据库存放目录/var/lib/mysql下面的pw85数据库备份到/home/mysql_data里面,并且保存为mysqldata_bak_2012_04_11.tar. ...
- Java实现MySQL数据库备份(二)
权声明:本文为博主原创文章,未经博主允许不得转载. 博客<Java实现MySQL数据库备份(一)>使用I/O流的方式实现了MySQL数据库的备份,这种方法比较繁杂,下面介绍另一种备份MyS ...
- Java实现MySQL数据库备份(一)
下班了,利用闲暇时间总结一下如何使用Java语言实现MySQL数据库备份: import java.io.BufferedReader; import java.io.File; import jav ...
- windows mysql 自动备份的几种方法
转自:http://www.cnblogs.com/liongis/archive/2013/03/12/2956573.html 1.复制date文件夹备份===================== ...
- MYSQL自动备份策略的选择
目前流行几种备份方式: 1.逻辑备份:使用mysql自带的mysqldump工具进行备份.备份成sql文件形式.优点:最大好处是能够与正在运行的mysql自动协同工作,在运行期间可以确保备份是当时的点 ...
- Java实现mysql数据库备份
Runtime是一个与JVM运行时环境有关的类,这个类是Singleton的. Runtime.getRuntime()可以取得当前JVM的运行时环境,这也是在Java中唯一一个得到运行时环境的方法. ...
- mysql 数据库备份,恢复。。。。
mysql 数据备份,恢复,恢复没写,这里只写了备份... 先暂作记录吧! 备份:表结构和数据完全分开,默认有一个文件会记录所有表的结构,然后表中数据的备份 如果超过分卷的大小则会分成多个文件,不然则 ...
- MySQL定时备份之使用Linux下的crontab定时备份实例
这篇文章主要介绍了使用Linux下的crontab进行MySQL定时备份的例子,需要的朋友可以参考下 复制代码代码如下: ##################################### ...
随机推荐
- Jquery动态绑定事件处理函数 bind / on / delegate
1.bind方法绑定的事件处理函数不会应用到后来添加到DOM中的新元素.比如你在用bind给页面元素绑定事件之后,又新添加了一些与之前绑定过事件的元素一样的DOM元素,但是这些事件并不能在新的DOM元 ...
- UVALive - 2678 二分/尺取
题意:求最小的长度L满足该长度上的元素和大于等于S 最近dp做多了总有一种能用dp解决一切的错觉 二分长度解决 #include<iostream> #include<algorit ...
- 全排列 next_permutation() 函数的使用
看来看去还是这篇博客比较简洁明了 https://www.cnblogs.com/My-Sunshine/p/4985366.html 顺便给出牛客网的一道题,虽然这道题用dfs写出全排列也能做,题意 ...
- Python学习 day08
一.open打开文件 文件操作包含以下三个步骤: 1.文件路径 2.编码方式 3.操作方式:‘’只读‘’.“只写”.“读写” 等 1.只读 r (mode默认值) 例: f = open('d:\py ...
- 解决matplotlib绘图中文乱码
# 指定默认字体 下面三条代码用来解决绘图中出现的乱码 matplotlib.rcParams['font.sans-serif'] = ['SimHei'] matplotlib.rcParams[ ...
- URL篇之URL
URL(统一资源定位)是网络上使用的资源定位的方案,它是URI(由URL和URN组成)的子集. URL的通用格式 <scheme>://<user>:<password& ...
- 飞檐走壁navMesh
http://www.manew.com/thread-106030-1-1.html
- 1.2 js基础
1.onchange 99%用到select上边. 2.js是干什么的,修改css样式和属性 3.选项卡步骤 1.获取元素 2.循环给按钮加自定义属性 3.循环给按钮加事件 4.封装 ...
- postgres formencode.api.Invalid
错误提示: Invalid: expected an int in the IntCol 'geom', got <type 'str'> '010100000007EBFFFC3A611 ...
- 1.Vue.js的常用指令
Vue.js介绍 Vue.js是当下很火的一个JavaScript MVVM库,它是以数据驱动和组件化的思想构建的.相比于Angular.js,Vue.js提供了更加简洁.更易于理解的API,使得 ...