Java程序备份mysql数据库

注意:

1.必须把mysql bin目录加入到环境变量中,否则无法使用mysqlmysqldump命令

2.我程序中的EXE 命令其实是mysql安装bin目录中的mysqldump.exe文件,这个文件放在哪里没关系,但是路径中一定要有mysqldump.exe这个文件

public static final String USER = "root"// 数据库帐号

public static final String PASS = "123"// 登陆密码

public static final String DATABASE = "db_stusys"// 需要备份的数据库名

public static final String FILEPATH = "f:\\db_stusys.sql"// 备份的路径地址

public static final String HOST = "127.0.0.1"// 备份的路径地址

public static final String EXE = "f:/mysqldump "// mysqlb备份命令

/**

 * 备份数据库

 * @author:qiuchen

 * @createTime:2012-6-26

 */

public static void dumpDb(){

//备份文件命令创建

File file = new File(FILEPATH);

if(file.exists()){

file.delete();

}

//拼接备份命令

StringBuffer sb = new StringBuffer();

sb.append(EXE);

sb.append(DATABASE);

sb.append(" -h" + HOST);

sb.append(" -u" + USER);

sb.append(" -p" + PASS);

sb.append(" --set-charset=utf8");

sb.append(" --result-file="+FILEPATH);

try {

Process p = Runtime.getRuntime().exec(sb.toString());

// 获取进程的错误流

final InputStream is1 = p.getErrorStream();

// 获取进程的标准输入流

final InputStream is2 = p.getInputStream();

// 启动两个线程,一个线程负责读标准输出流,另一个负责读标准错误流

new Thread() {

public void run() {

BufferedReader br1 = new BufferedReader(

new InputStreamReader(is1));

try {

String line1 = null;

while ((line1 = br1.readLine()) != null) {

if (line1 != null) {

}

}

catch (IOException e) {

try {

is1.close();

catch (IOException e1) {

}

finally {

try {

is1.close();

catch (IOException e) {

e.printStackTrace();

}

}

}

}.start();

new Thread() {

public void run() {

BufferedReader br2 = new BufferedReader(

new InputStreamReader(is2));

try {

String line2 = null;

StringBuffer stringBuffer = new StringBuffer();

while ((line2 = br2.readLine()) != null) {

if (line2 != null) {

System.out.println(line2);

stringBuffer.append(line2);

}

}

catch (IOException e) {

try {

is2.close();

catch (IOException e1) {

}

finally {

try {

is2.close();

catch (IOException e) {

e.printStackTrace();

}

}

}

}.start();

int i = p.waitFor();

if(i==0){

System.out.println("备份成功!");

}

p.destroy();

catch (IOException e) {

e.printStackTrace();

catch (InterruptedException e) {

e.printStackTrace();

}

}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值