2014-02-14 53 views
-1

我想通过使用下面的代码采取MySQL数据库备份,但我运行该程序时得到像下面的异常。 Plz任何人都可以帮助解决这个问题。如何使用java进行mysql数据库备份?

Java代码:

 String path = "D:/databasbac.sql"; 
     String username = "root"; 
     String password = ""; 
     String dbname = "ranjith"; 
     String executeCmd = "<Path to MySQL>/bin/mysqldump -u " + username + " -p" + password + " --add-drop-database -B " + dbname + " -r " + path; 
     Process runtimeProcess; 
     try { 
//   System.out.println(executeCmd);//this out put works in mysql shell 
      runtimeProcess = Runtime.getRuntime().exec(new String[] { "cmd.exe", "/c", executeCmd }); 
//   runtimeProcess = Runtime.getRuntime().exec(executeCmd); 
      int processComplete = runtimeProcess.waitFor(); 

      if (processComplete == 0) { 
       System.out.println("Backup created successfully"); 

      } else { 
       System.out.println("Could not create the backup"); 
      } 
     } catch (Exception ex) { 
      ex.printStackTrace(); 
     } 
+0

例外是不是现在,但sop打印就像不能创建备份 – user3214269

回答

0

至少有两个问题:

  1. 提供了一个完整的路径mysqldump.exe(如C:\Program Files\MySQL\bin\mysqldump.exe
  2. -p参数没有密码值势力的mysqldump提示。你不需要它,因为你在批处理模式下运行它。因此,要么提供密码-p"your password"或更好(更安全)使用选项文件以避免在命令行上输入密码。阅读更多关于此End-User Guidelines for Password Security
+0

我已经更新了我的答案可以üPLZ检查并告诉我 – user3214269