2013-07-30 162 views
0

我的应用程序包含一个用于备份的java框架。我在公共类中添加下面的代码并调用它。我需要的是在应用程序中创建MySQL转储文件。如何使用java代码,下面的一组代码会给你我的程序到底做了什么。使用java备份mysql数据库

public boolean backupDB() { 

    connection = (Connection) dbSource.getConnection(); 


    String executeCmd = "\"C:\\Program Files\\MySQL\\MySQL Server 5.1\\bin\\mysqldump\" -u root -p pass macfast -r backup.sql"; 
    Process runtimeProcess; 
    try { 

     runtimeProcess = Runtime.getRuntime().exec(executeCmd); 
     int processComplete = runtimeProcess.waitFor(); 

     if (processComplete == 0) { 
      System.out.println("Backup created successfully"); 
      return true; 
     } else { 
      System.out.println("Could not create the backup"); 
     } 
    } catch (Exception ex) { 
     ex.printStackTrace(); 
    } 

    return false; 
} 

我通过

private void backupbtnActionPerformed(java.awt.event.ActionEvent evt) { 
    backupDB(); 
} 

当我试图run.After来看,我无法通过taskmanager.why关闭frame.only可能它坚持称这个?

+0

您可能需要运行“C:\\ Program Files \\ mysql \\ mysqldump”,或类似的东西。 –

+0

再次同样的错误 –

+0

ümeanmysql.dump? –

回答

0

确保mysqldump的是在你的系统PATH环境变量

错误表明它无法找到该程序,这意味着它很可能是在寻找工作目录。

+0

我如何检查mysqldump是否在您的系统PATH环境变量? –

+0

作为关闭@echo 组datefix =%DATE% 组datefix =%日期创建的BAT文件:/ = - % 的mysqldump -u根-p通过MYDB> C:\ Program Files文件\ mbaplus \ backup.sql 出口。但不起作用 –

+0

对不起... mydb = macfast –

0

为什么不尝试使用实用程序的完整路径?

/<fullpath>/mysqldump -u 
+0

再次出错.... –

+0

java.io.IOException:无法运行程序“C:\ Program”:CreateProcess error = 2,系统找不到指定的文件 –

+0

if在路径中的空白是问题,使用Windows短路径例如 - C:\ PROGRA〜1 \ MySQL \ MYSQLS〜1.1 \ bin –

0

好像问题是...之间Program Files文件......,你需要括在“

变化String executeCmd = "C:\\Program Files\\MySQL\\MySQL Server 5.1\\bin\\mysqldump -u root -p pass macfast -r backup.sql";

String executeCmd = "\"C:\\Program Files\\MySQL\\MySQL Server 5.1\\bin\\mysqldump\" -u root -p pass macfast -r backup.sql"; 
路径中的空白
+0

它卡住了..... –

+0

编辑我的程序通过您的建议code.But它卡住。我无法关闭框架 –

+0

没有任何Java异常?数据库很小?也许你还应该添加mysqldump输出的完整路径,并确保这个文件夹是可写的 –