2013-02-17 4 views
1

Я пытался выполнить команду mysql с помощью java, но это всегда приводит к ошибке.Ошибка при выполнении команды mysql из java

String dbName = "dth"; 
    String dbUser = "root"; 
    String dbPass = "root"; 

    String executeCmd = ""; 
    executeCmd = "mysqldump -u " + dbUser + " -p" + dbPass + " " + dbName + " -r C:\\backup.sql"; 

    Process runtimeProcess = Runtime.getRuntime().exec(executeCmd); 
    int processComplete = runtimeProcess.waitFor(); 
    if (processComplete == 0) { 
     System.out.println("Backup taken successfully"); 
    } else { 
     System.out.println("Could not take mysql backup"); 
    } 

} catch (Exception e) { 
    System.out.println(e.getMessage()); 
} 

Я попытался выше код, но я не мог сделать это, продолжает давать мне

CreateProcess ошибка = 2, система не может найти указанный файл ошибку.

Я пробовал это, создав файл .sql на месте, и все же получаю ту же ошибку.

+1

Может быть, что он не может найти туздЫшпр? Возможно, это не на вашем пути? – kufudo

+1

Я думаю, что это похоже на поток .... http://stackoverflow.com/questions/13376132/backup-mysql-database-java-code – Amit

+0

Я сделал это, но теперь он заставляет программу никогда не останавливаться. Т.е. он запускается, он создает файл backup.sql, но он никогда не останавливается! как бесконечный цикл. – chettyharish

ответ

1

Добавьте каталог, в котором туздЫшпр пребывает в переменную окружения пути или использовать полный путь к файлу с то есть: \ каталог \ туздЫшпр

+0

Я сделал это, но теперь это заставляет программу никогда не останавливаться. Т.е. он запускается, он создает файл backup.sql, но он никогда не останавливается! как бесконечный цикл. – chettyharish

+0

Вы уверены, что это просто не дожидаясь завершения дампа? Я бы проверял запущенные процессы, чтобы убедиться, что это сделано. – Bushbert

+0

ОК, это было не так, я экспериментировал со строкой и оставил пробел после -p и вызвал бесконечную ошибку. – chettyharish

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