使用java备份mysql数据库

时间:2013-07-30 18:52:27

标签: java mysql database

我的应用程序包含一个用于备份的java框架。我在公共类中添加以下代码并调用它。我需要的是在应用程序中创建MySQL转储文件。如何使用java代码,以下集合代码将为您提供我的程序中的确切功能。

  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();
}

当我试图跑步时它停滞不前。跑完后我无法关闭框架。只能通过taskmanager.why?

3 个答案:

答案 0 :(得分:0)

确保mysqldump位于系统PATH环境变量

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

答案 1 :(得分:0)

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

/<fullpath>/mysqldump -u

答案 2 :(得分: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";