完整备份MySQL的某个数据库


package com.manze.stu;
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("C:/Program Files/MySQL/MySQL Server 5.0/bin/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 = "192.168.26.200";
String dataBase = "ec";//is
String userName = "root";
String passwd = "bjbjbj";
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 成功");
}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值