基本原理:使用RunTime.exec执行mysql的备份命令“mysqldump”,再把执行结果记录到文件中,在执行下面方法前必须保证 mysqldump命令能用。代码如下:
package com.SpringMvcTest.util.dbAutoBackup;
import java.io.BufferedReader;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
public class BackupMysqlDb {
/**
* www.itlife365.com
* 完整备份MySQL的某个数据库
* mysqldump –h hostname –u username –p password databasename > backupfile.sql
* 例如:将192.168.102.2服务器上的book数据库备份到192.168.102.3
* mysqldump -h 192.168.102.2 -u backup -p book >book.sql
* @author happymen001
* @version Jun 16, 2010 11:11:25 AM
* @param hostName
* @param dataBase
* @param userName
* @param passwd
* @param outFilePath
* @throws Exception
* @return void
*/
public static void backupMysqlDatabase(String hostName,String dataBase,String userName,
String passwd,String outFilePath )throws Exception {
//组装MySQL的备份命令
StringBuilder sqlStr = new StringBuilder();
sqlStr.append("mysqldump -u").append(userName)
.append(" -p").append(passwd)
.append(" ").append(dataBase);
if(hostName != null && !hostName.equals("") ){
sqlStr.append(" ")
.append(" -h").append(hostName);
}
// --default-character-set=gb2312
//调用系统cmd 命令执行备份命令
Runtime rt = Runtime.getRuntime();
Process process = rt.exec(sqlStr.toString());
InputStream in = process.getInputStream();//控制台的输出信息作为输入流
InputStreamReader isr = new InputStreamReader(in,"utf8");
StringBuilder sb = new StringBuilder("");
String inStr;
//组合控制台输出信息字符串
BufferedReader br = new BufferedReader(isr);
while((inStr = br.readLine()) != null){
sb.append(inStr)
.append("\r\n");
}
//把备份数据写入到文件中
FileOutputStream fout = new FileOutputStream (outFilePath);
OutputStreamWriter writer = new OutputStreamWriter(fout,"utf8");
writer.write(sb.toString());
writer.flush();
//写完文件,关闭相应的流
in.close();
isr.close();
br.close();
writer.close();
fout.close();
}
/**
* @author happymen001
* @version Jun 15, 2010 11:26:46 PM
* @param args
* @return void
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
BackupMysqlDb backupMysqlDb = new BackupMysqlDb ();
String hostName = "127.0.0.1";
String dataBase = "studentdb";//is
String userName = "root";
String passwd = "admin";
String outFilePath = "D:\\backupmysql.sql";
try {
backupMysqlDb.backupMysqlDatabase(hostName,dataBase, userName, passwd, outFilePath);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println(" 备份MySQL失败");
}
System.out.println(" 备份MySQL 成功");
}
}
参看:http://itlife365.com/?post=43
分享到:
相关推荐
java备份mysql、可执行jar文件、配置文件可修改、xml解析,执行sql语句,jdbc访问数据库,jdbc配置文件可修改
此mysqldump版本为5.6.12,内含详细使用方法,包括cmd的备份方式、java的备份方式
在实际应用中,定时备份数据库是一件非常重要的工作,下面是关于利用java程序实现数据库自动调用的方法,其实也不一定非要用 java语言了,只要原理会了...话不多说,下面就来演示一下如何自动备份mysql下的abc数据库:
通过Java代码备份Mysql数据库Demo,虽然比较简单,但是可以节省您很多学习时间、试错时间。
java实现mysql数据库的表导出到excel文件,已经基本的demo包含jar包,可以导入的eclipse里面。比较好用吧
java备份与恢复mysql数据库,在网上很难找到相关的资源,所有笔者参照了一些资料,自己用MyEclipse写了一个,里面有源码,有详细的说明.
mysql 数据库备份,通过 java 代码实现设定备份时间,定时每天进行备份。
文档中的代码采用java技术模拟mysql命令实现mysql数据库的备份!
java备份还原数据库
import java.io.BufferedReader; import java.io.File; import java.io.FileOutputStream; import java.io.IOException;... * MySQL数据库备份 * */ public class MySQLDatabase
远程备份MySQL数据库 利用sqldump 进行远程数据库备份到本地 非常方便
Java实现Mysql数据库完整、增量备份与还原
java实现对mysql数据库的备份与还原,可跨平台,windows与Linux通用,代码内含有利用注册表信息获取mysqldump命令实例
Java在线备份和还原MySQL数据库,使用mysqldump命令实现备份,使用mysql命令实现的还原,具体大家看源代码吧,在还原的时候足足整了我一个下午才找到错误原因,源代码里面有写原因。大家看代码就知道了。
NULL 博文链接:https://techpool.iteye.com/blog/553826
java备份与恢复MYSQL数据库,简单好用
java mysql 数据库备份和还原操作(csdn)————程序
mysql 数据库备份 java 源代码,通过hibernate获取数据库配置信息,进行选择性的数据库备份。
java备份数据库 备份数据库 手动备份数据库
利用JDBC连接数据库,不依耐mysql的shell命令, 适合b/s 服务器备份