Java实现MySQL数据库备份(一)
下班了,利用闲暇时间总结一下如何使用Java语言实现MySQL数据库备份:
- import java.io.BufferedReader;
- import java.io.File;
- import java.io.FileOutputStream;
- import java.io.IOException;
- import java.io.InputStreamReader;
- import java.io.OutputStreamWriter;
- import java.io.PrintWriter;
- /**
- * MySQL数据库备份
- *
- * @author GaoHuanjie
- */
- public class MySQLDatabaseBackup {
- /**
- * Java代码实现MySQL数据库导出
- *
- * @author GaoHuanjie
- * @param hostIP MySQL数据库所在服务器地址IP
- * @param userName 进入数据库所需要的用户名
- * @param password 进入数据库所需要的密码
- * @param savePath 数据库导出文件保存路径
- * @param fileName 数据库导出文件文件名
- * @param databaseName 要导出的数据库名
- * @return 返回true表示导出成功,否则返回false。
- */
- public static boolean exportDatabaseTool(String hostIP, String userName, String password, String savePath, String fileName, String databaseName) throws InterruptedException {
- File saveFile = new File(savePath);
- if (!saveFile.exists()) {// 如果目录不存在
- saveFile.mkdirs();// 创建文件夹
- }
- if(!savePath.endsWith(File.separator)){
- savePath = savePath + File.separator;
- }
- PrintWriter printWriter = null;
- BufferedReader bufferedReader = null;
- try {
- printWriter = new PrintWriter(new OutputStreamWriter(new FileOutputStream(savePath + fileName), "utf8"));
- Process process = Runtime.getRuntime().exec(" mysqldump -h" + hostIP + " -u" + userName + " -p" + password + " --set-charset=UTF8 " + databaseName);
- InputStreamReader inputStreamReader = new InputStreamReader(process.getInputStream(), "utf8");
- bufferedReader = new BufferedReader(inputStreamReader);
- String line;
- while((line = bufferedReader.readLine())!= null){
- printWriter.println(line);
- }
- printWriter.flush();
- if(process.waitFor() == 0){//0 表示线程正常终止。
- return true;
- }
- }catch (IOException e) {
- e.printStackTrace();
- } finally {
- try {
- if (bufferedReader != null) {
- bufferedReader.close();
- }
- if (printWriter != null) {
- printWriter.close();
- }
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- return false;
- }
- public static void main(String[] args){
- try {
- if (exportDatabaseTool("172.16.0.127", "root", "123456", "D:/backupDatabase", "2014-10-14.sql", "test")) {
- System.out.println("数据库成功备份!!!");
- } else {
- System.out.println("数据库备份失败!!!");
- }
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- }
- }
Java实现MySQL数据库备份(一)的更多相关文章
- Java实现MySQL数据库备份(二)
权声明:本文为博主原创文章,未经博主允许不得转载. 博客<Java实现MySQL数据库备份(一)>使用I/O流的方式实现了MySQL数据库的备份,这种方法比较繁杂,下面介绍另一种备份MyS ...
- Java实现mysql数据库备份
Runtime是一个与JVM运行时环境有关的类,这个类是Singleton的. Runtime.getRuntime()可以取得当前JVM的运行时环境,这也是在Java中唯一一个得到运行时环境的方法. ...
- Java达到MySQL数据库备份(两)
博客<Java实现MySQL数据库备份(一)>使用I/O流的方式实现了MySQL数据库的备份,这样的方法比較繁杂.以下介绍还有一种备份MySQL数据库的方法: import java.io ...
- java 实现mysql数据库备份
package com.itenp.gen.action; import java.io.BufferedReader; import java.io.FileInputStream; import ...
- JSP 实现 之 调用java方法实现MySQL数据库备份和恢复
package cn.qm.db; import java.io.BufferedReader; import java.io.DataInputStream; import java.io.IOEx ...
- Java连接mysql数据库攻略
一. 软件下载 Mysql 下载版本:4.1.11 http://dev.mysql.com/downloads/mysql/4.1.html JDBC驱动 下载版本:3.1.8 http://dev ...
- Xtrabackup原理及使用innobackupex进行MySQL数据库备份恢复
Xtrabackup是由percona提供的mysql数据库备份工具,据官方介绍,这也是世界上惟一一款开源的能够对innodb和xtradb数据库进行热备的工具. Xtrabackup中主要包含两个工 ...
- TODO:MongoDB MySQL数据库备份
TODO:MongoDB MySQL数据库备份 1. MongoDB使用命令备份 mongodump进行整个数据库备份,主要用到的命令参数: -d 要备份的数据库 -o 输出的路径 ./mongodu ...
- Java实现MySQL数据库导入
距离上班还有一段时间.现在总结一下如何使用Java语言实现MySQL数据库导入: 首先新建名为test的数据库: 其次执行下面Java代码: import java.io.File; import j ...
随机推荐
- SqlServer数据库大型应用解决方案总结
随着互联网应用的广泛普及,海量数据的存储和访问成为了系统设计的瓶颈问题.对于一个大型的互联网应用,每天百万级甚至上亿的PV无疑对数据库造成了相当高的负载.对于系统的稳定性和扩展性造成了极大的问题. 一 ...
- [Sass]命令编译
[Sass]命令编译 命令编译是指使用你电脑中的命令终端,通过输入 Sass 指令来编译 Sass.这种编译方式是最直接也是最简单的一种方式.因为只需要在你的命令终端输入: 单文件编译: sass & ...
- VS更改编辑窗背景
打开Visual Studio 工具→扩展和更新→联机 在搜索框里输入“background”后,搜索结果有很多插件可以更改 Visual Studio 的背景,选择其中的一项,可以在右边进行预览 ...
- Xshell5连接虚拟机出现连Could not connect to '192.168.47.128' (port 22): Connection failed,解决办法
该日记写于2016年11月28日.在用Xshell5连接ubuntu虚拟OS时一直连接不上.出现这种情况的原因可能很多,有像百度上面说的没有关闭linux的防火墙,没有启动linux的ssh服务.但这 ...
- LATTICE 存储之FIFO的使用
坑,,以后填 对于Lattice 的 FIFO 存储器分为两种,见下图: 这两个的主要区别是一个后面加DC一个不加,那这个DC是什么意思呢??DC这里是Dual Clock的意思,也就是双时钟的意 ...
- Semaphore
信号量玩的也是aqs的state. package com.hust.grid.leesf.semaphore; import java.util.concurrent.Semaphore; clas ...
- linux下将不同线程绑定到不同core和cpu上——pthread_setaffinity_np
=============================================================== linux下的单进程多线程的程序,要实现每个线程平均分配到多核cpu,主 ...
- jQuery- 常规选择器(一)
注意:用size的时候有(),而length没有括号 除了这种方式之外,还可以用转换为 DOM 对象的方式来判断,例如:i$('#pox').get(0) 或 $('#pox')[0] //通过数 ...
- BestCoder 2nd Anniversary
A题 Oracle http://bestcoder.hdu.edu.cn/contests/contest_chineseproblem.php?cid=703&pid=1001 大数相加: ...
- CodeForces 551E 分块
题目链接:http://codeforces.com/problemset/problem/551/E 题意:给定一个长度为N的序列. 有2个操作 1 l r v:序列第l项到第r项加v(区间加), ...