如何使用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(""))
&nbs