1.MySQL数据库备份和恢复,java代码实现:详情见下面:

package com.spring.util;

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;

//MYSQL数据库备份
public class MySQLDump {

//备份数据库
public static boolean sqlDump(String cmd,String filePath){
boolean falg = false;
try {
Runtime run = Runtime.getRuntime();
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();
Process child = rt.exec(cmd);
OutputStream out = child.getOutputStream();//控制台的输入信息作为输出流
//输入流
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(sqlPath),"utf-8"));
//输出流
OutputStreamWriter writer = new OutputStreamWriter(out,"utf-8");
String inStr;
while((inStr = br.readLine()) != null){
writer.write(inStr);
writer.write("\n\r");
}
writer.flush();
//别忘记关闭输出流
out.close();
br.close();
writer.close();
System.out.println("/* Load SQL File "+sqlPath+" OK!*/");
} catch (IOException e) {
throw new RuntimeException(e);
}
}

public static void main(String[] args){
//备份数据库
sqlDump("C:/Program Files/MySQL/MySQL Server 5.5/bin/mysqldump -uroot -proot itcastoa", "d:/itcastOA.sql");
//恢复数据库
sqlLoad("C:/Program Files/MySQL/MySQL Server 5.5/bin/mysql.exe -uroot -proot itcastoa", "d:/itcastOA.sql");
}

}

java写的MySQL数据库备份和恢复代码:相关推荐

  1. javaweb实现mysql备份功能_java web 实现mysql 数据库备份、恢复

    如题,由于项目需要,研究并实现了java web的 mysql数据库的备份.下载.恢复功能,中间遇到一些问题,耗费了不少时间,下面让我一一道来: 背景介绍: window 7系统 mysql 5.7 ...

  2. MySQL数据库备份和恢复方案小结

    这两天在调研MySQL数据库的备份和恢复方案,备份对象是对大量Innodb表,或者加上少量的MyISAM表. InnoDB备份常见问题: 文件一致性:数据文件.缓存.日志文件必须保持严格一致.加锁的方 ...

  3. Linux下Mysql数据库备份和恢复全攻略

    [IT168 专稿]很多用户都有过丢失宝贵数据的经历,随着大量的数据被存入到MySQL数据库中,再加上错误地使用DROP DATABASE命令.系统崩溃或对表结构进行编辑等操作,都可能酿成灾难性的损失 ...

  4. Mysql数据库备份和恢复总结

    前言:数据库备份是我们服务端开发经常遇到的问题.为了用户体验,我们要尽量减少服务器备份时的损失.所以备份时间尽量选在半夜,而且要尽量减少备份所用的时间. 一.数据库备份的目的 做灾难恢复:对损坏的数据 ...

  5. mysql设置停止二进制文件的操作_window下使用二进制文件对mysql数据库备份及恢复(再现用户操作)...

    1,查看二进制日志文件是否启用 mysql>show variables like 'log_bin'; 如果未启用,则启用二进制文件(默认是关闭的 ) 2,在mysql的配置文件[mysqld ...

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

    前段时间某某删库事故付出的惨重代价告诉我们: 数据备份的必要性是企业数据管理极其重要的一项工作. 1. Mysql备份与还原命令 备份命令: mysqldump -h127.0.0.1 -uroot ...

  7. mysql数据库备份和恢复

    命令备份:mysqldump   dump   泵   数据从数据库抽取  ---->硬盘中保存 xxx.sql mysqldump 用户名 和 密码  声明需要备份的数据库名称  databa ...

  8. mysql数据库备份及恢复命令mysqldump,source的用法

    还原一个数据库:mysql -h localhost -u root -p123456 www<c:/www.sql 备份一个数据库:mysqldump -h localhost -u root ...

  9. windows系统mysql5.7 重装以及mysql数据库备份和恢复

    mysql 服务由于改错配置无法启动,频繁出现"MySQL服务正在启动或停止中,请稍候片刻后再试一次"错误信息无法启动.看了网上很多修复方法,感觉都还是比较繁琐,重置也各种繁琐,索 ...

最新文章

  1. FPGA之道(27)VHDL的操作符号
  2. 爬取虎牙之一:(王者荣耀主播信息普通爬取)
  3. Python69个内置函数分类总结
  4. loj#2542 [PKUWC2018]随机游走 (概率期望、组合数学、子集和变换、Min-Max容斥)
  5. 使用签名保护基于HTTP的API
  6. 104. 二叉树的最大深度 golang DFS
  7. docker下创建crontab定时任务失败
  8. JS生成随机数并排序
  9. Android事件处理
  10. MySQL入门:如何创建数据库?
  11. Python 和Java 哪个更适合做自动化测试?
  12. 集成海康威视Sadp SDK实现设备激活
  13. sciencesoftware科学软件
  14. Win11快捷键大全
  15. 如何解决高分辨率下文本、图像和字体和布局?
  16. 大数据挖掘的意义是什么?
  17. 疯子网页采集器之提取内容教程
  18. 专升本英语——应试题型突破——阅读理解——阅读理解做题技巧【学习笔记】
  19. linux网卡驱动开发视频,Linux下网卡驱动程序的开发.doc
  20. GIF图片怎么压缩?如何快速缩小GIF图片?

热门文章

  1. 【移动端html5】 android video播放进度精确控制
  2. java生成四则运算表达式_生成四则运算(java实现)
  3. android 对话框 图片,android – AlertDialog按钮的图像
  4. 安卓投屏大师_苹果,安卓手机如何免费投屏?只要悄悄按下这里,便能轻松实现...
  5. linux打开另一台linux的图形化,【工具大道】ssh登录Linux服务器,并显示图形化界面...
  6. epoll怎么实现的
  7. 定界符在php中,php定界符如何使用
  8. java5的递归算法_java递归算法 java面试题(5)
  9. 【转】什么是CT使用的水模、体模
  10. 使用开源工具ELK可视化 Azure NSG日志