http://bbs.linuxpk.com/thread-38705-1-1.html
由于项目中需要做一个数据库备份,所以小看了一下mysql数据库备份的东西,然后研究了一下JAVA语言中怎么来调用cmd的命令来实现mysqldump的备份功能。具体实现如下:
1.首先设置环境变量:有两种方式。第一种,在环境变量中添加 MYSQL_HOME,设置内容为 mysql的安装路径,然后,在path中添加路径 %MYSQL_HOME%\bin 。第二种方法,不新建MYSQL_HOME,而是直接在path中添加 mysql安装路径\bin 。这样,调用cmd的时候可以直接找到mysqldump和mysql命令了。
2.现在编写JAVA方法类来实现数据库的备份和还原。代码如下:
import java.io.IOException;
public class db_deal {
private static String str=null;
public static void backup(){
//使用mysqldump来备份数据库,格式“mysqldump -u username -pPassword --opt database_name > direction/backup_name.sql”
str="mysqldump -u root -proot --opt hjh > d:/test.sql";
try {
Runtime rt=Runtime.getRuntime();
rt.exec("cmd /c"+str);
//Runtime.getRuntime().exec( )这个方法可以实现对命令的调用。具体内容看API
//上面可以cmd调用控制台,然后执行str中的字符串表示的命令。
System.out.println("successly!");
} catch (IOException e) {
e.printStackTrace();
System.out.println("something wrong!");
}
}
public static void load(){
str="mysql -u root -proot j2603 < d:/test.sql";
// mysql命令可以实现数据库的还原。格式“mysql -u Username -pPassword database_name < back_up_dir ”
Runtime rt=Runtime.getRuntime();
try {
rt.exec("cmd /c"+str);
System.out.println("restore successly!");
} catch (IOException e) {
e.printStackTrace();
System.out.println("restore fail!");
}
}
}
3.最后要备份的地方给这个类实例化,然后调用backup(),load()来实现mysql数据库的简单备份跟还原。
这个是win下实现的,如果要在linux下实现,就更加容易,将exec()中的参数换一下就OK了。
同时,备份的时候可以以流的形式将数据库的数据写出来,有兴趣的朋友可以试试。
由于项目中需要做一个数据库备份,所以小看了一下mysql数据库备份的东西,然后研究了一下JAVA语言中怎么来调用cmd的命令来实现mysqldump的备份功能。具体实现如下:
1.首先设置环境变量:有两种方式。第一种,在环境变量中添加 MYSQL_HOME,设置内容为 mysql的安装路径,然后,在path中添加路径 %MYSQL_HOME%\bin 。第二种方法,不新建MYSQL_HOME,而是直接在path中添加 mysql安装路径\bin 。这样,调用cmd的时候可以直接找到mysqldump和mysql命令了。
2.现在编写JAVA方法类来实现数据库的备份和还原。代码如下:
import java.io.IOException;
public class db_deal {
private static String str=null;
public static void backup(){
//使用mysqldump来备份数据库,格式“mysqldump -u username -pPassword --opt database_name > direction/backup_name.sql”
str="mysqldump -u root -proot --opt hjh > d:/test.sql";
try {
Runtime rt=Runtime.getRuntime();
rt.exec("cmd /c"+str);
//Runtime.getRuntime().exec( )这个方法可以实现对命令的调用。具体内容看API
//上面可以cmd调用控制台,然后执行str中的字符串表示的命令。
System.out.println("successly!");
} catch (IOException e) {
e.printStackTrace();
System.out.println("something wrong!");
}
}
public static void load(){
str="mysql -u root -proot j2603 < d:/test.sql";
// mysql命令可以实现数据库的还原。格式“mysql -u Username -pPassword database_name < back_up_dir ”
Runtime rt=Runtime.getRuntime();
try {
rt.exec("cmd /c"+str);
System.out.println("restore successly!");
} catch (IOException e) {
e.printStackTrace();
System.out.println("restore fail!");
}
}
}
3.最后要备份的地方给这个类实例化,然后调用backup(),load()来实现mysql数据库的简单备份跟还原。
这个是win下实现的,如果要在linux下实现,就更加容易,将exec()中的参数换一下就OK了。
同时,备份的时候可以以流的形式将数据库的数据写出来,有兴趣的朋友可以试试。