2013-07-30 5 views
0

Мое приложение содержит один фрейм java для резервного копирования. Я добавляю следующий код в открытый класс и вызываю его. Мне нужно создать файл дампа MySQL в приложении. Как я могу это сделать с помощью 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(); 
} 

Он застрял, когда я пытаюсь run.After перспективе я не могу закрыть frame.only возможно через taskmanager.why?

+0

Возможно, вам придется запустить «C: \\ Program Files \\ mysql \\ mysqldump» или что-то в этом роде. –

+0

снова такая же ошибка –

+0

u meanmysql.dump? –

ответ

0

Убедитесь, что туздЫшпр на вашем PATH среды системной переменной

ошибка говорит о том, что он не может найти ту программу, которая означает, что, скорее всего, ищет в рабочем каталоге.

+0

Как я могу проверить, является ли mysqldump в вашей переменной среды PATH системы? –

+0

Файл летучая создан как @ECHO от множества datefix =% DATE% множества datefix =% DATE:/= -% туздЫшпр -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 пробел в пути - проблема, используйте короткий путь окна, например - 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

отредактировал мою программу по предлагаемому коду. Но это stuck.i не удается закрыть кадр –

+0

Без какого-либо исключения Java? Является ли база данных довольно маленькой? Возможно, вы также должны добавить полный путь к выходу mysqldump и убедиться, что эта папка доступна для записи. –

Смежные вопросы