java下通过EXEC解决mysql数据库备份、恢复问题

  Java代码
//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的数据库备份与恢复的源代码,与大家共享:
 

你可能感兴趣的:(java,mysql,数据库备份,恢复,exec)