2013-07-30 164 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輸出的完整路徑,並確保這個文件夾是可寫的 –