//data output
String path2 = "C:/Program Files/MySQL/MySQL Server 5.0/bin/mysqldump.exe -uroot -proot -t turboshop > d:\\turboshop.sql";
java.lang.Runtime.getRuntime().exec(path2);
System.out.println("data output in xx.sql file");
// import data
String path1 = "mysqladmin -uroot -p create databasename";
java.lang.Runtime.getRuntime().exec("cmd /c " + path1);
//restore
path = "mysql databasename < d:/databack/xx.sql";
java.lang.Runtime.getRuntime().exec("cmd /c " + path);
System.out.println("import data from xx.sql file");
//data output String path2 = "C:/Program Files/MySQL/MySQL Server 5.0/bin/mysqldump.exe -uroot -proot -t turboshop > d:\\turboshop.sql"; java.lang.Runtime.getRuntime().exec(path2); System.out.println("data output in xx.sql file"); // import data String path1 = "mysqladmin -uroot -p create databasename"; java.lang.Runtime.getRuntime().exec("cmd /c " + path1); //restore path = "mysql databasename < d:/databack/xx.sql"; java.lang.Runtime.getRuntime().exec("cmd /c " + path); System.out.println("import data from xx.sql file");
之类的东东。经过测试,上面的方法根本行不通——得到的备份文件是空文件。
【重定向功能本身是把一个command命令的执行输出结果到另外一个command命令的输入。
你用Java执行,每次只能执行一条command命令,重定向是不支持的。
要用Process.getOutputStream(),获取第一条command命令的输出流,然后自己再写入硬盘文件。】
因此有心整理了一份mysql的数据库备份与恢复的源代码,与大家共享: