如何使用java程序备份和恢复MySql数据库?

如何使用java程序备份和恢复MySql数据库?
注:要将mysql的bin目录加入到环境变量Path中

将MySql中的数据库导出到文件中 备份

import java.io.*;
import java.lang.*;

public class BeiFen {

public static void main(String[] args) {
// 数据库导出
String user = "root"; // 数据库帐号
String password = "root"; // 登陆密码
String database = "test"; // 需要备份的数据库名
String filepath = "e:\\test.sql"; // 备份的路径地址

String stmt1 = "D:\\mysql5027\\bin\\mysqldump " + database + " -u " + user + " -p"
+ password + " --result-file=" + filepath;


/*
* String stmt1 = "mysqldump " + database + " -u " + user + " -p"
* + password + " --result-file=" + filepath;
*
* String mysql="mysqldump test -u root -proot
* --result-file=d:\\test.sql";
*/

try {
Runtime.getRuntime().exec(stmt1);
System.out.println("数据已导出到文件" + filepath + "中");
}
catch (IOException e) {
e.printStackTrace();
}
}
}



将数据从磁盘上的文本文件还原到MySql中的数据库

import java.io.*;
import java.lang.*;

/*
* 还原MySql数据库
* */
public class Recover {

public static void main(String[] args) {

String filepath = "d:\\test.sql"; // 备份的路径地址
//新建数据库test

String stmt1 = "mysqladmin -u root -proot create test";

String stmt2 = "mysql -u root -proot test < " + filepath;
String[] cmd = { "cmd", "/c", stmt2 };

try {
Runtime.getRuntime().exec(stmt1);
Runtime.getRuntime().exec(cmd);
System.out.println("数据已从 " + filepath + " 导入到数据库中");
} catch (IOException e) {
e.printStackTrace();
}
}
}


另外的程序

package jakie;

//import java.io.*;

public class Backup {
private String user_name;//数据库用户名
private String user_psw;//数据库密码
private String db_name;// 需要备份的数据库名
private String host_ip;
private String user_charset;
private String backup_path; //存放备份文件的路径
private String stmt;

public Backup(String user_name,String user_psw,String db_name,String host_ip,String user_charset,String backup_path){
this.user_name=user_name;
this.user_psw=user_psw;
this.db_name=db_name;
//主机IP;
if(host_ip==null||host_ip.equals(""))
this.host_ip="localhost";//默认为本机
else
this.host_ip=host_ip;
//字符集
if(user_charset==null||user_charset.equals(""))
this.user_charset=" "; //默认为安装时设置的字符集
else
this.user_charset=" --default-character-set="+user_charset;
this.backup_path=backup_path;

this.stmt="d:\\MYSQL\\bin\\mysqldump "+this.db_name+" -h "+this.host_ip+" -u"+this.user_name+" -p"+this.user_psw
+this.user_charset+" --result-file="+this.backup_path;
}

public boolean backup_run(){
boolean run_result=false;
try{
Runtime.getRuntime().exec(this.stmt);
run_result=true;
}catch(Exception e){
e.printStackTrace();
}finally{
return run_result;
}
}
public static void main(String[] args){
Backup backup=new Backup("root","000000","jakie",null,"utf8","e:\\test.sql");
boolean result=backup.backup_run();
if(result)
System.out.println("备份成功");

}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值