Tenho uma aplicação desktop que necessita fazer um backup da base de dados. O SGBD utilizado é o MySQL. Utilizo a ferramenta mysqldump para realizar o backup. O código utilizado para executar tal tarefa está abaixo:
try {
Runtime rt = Runtime.getRuntime();
Process proc = rt.exec("C:\\Program Files\\MySQL\\MySQL Server 5.1\\bin\\mysqldump -uroot -psenha mysql > backup_test.sql");
InputStream stdin = proc.getInputStream();
InputStreamReader in = new InputStreamReader(stdin);
BufferedReader br = new BufferedReader(in);
String line = null;
while ( (line = br.readLine()) != null)
System.out.println(line);
int exitVal = proc.waitFor();
System.out.println("exitValue: " + exitVal);
} catch (Throwable t)
{
t.printStackTrace();
}
A mensagem de saída é essa:
-- MySQL dump 10.12
--
-- Host: localhost Database: mysql
-- ------------------------------------------------------
-- Server version 5.1.19-beta-community-nt-debug
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
exitValue: 6
Tudo dá certo, porém o backup não é efetuado. O arquivo não é gerado no diretório raiz (já testei noutros diretórios e não funcionou).
Já testei o mesmo código pelo prompt (Windows) e funcionou.
Se alguém puder ajudar ficarei muito grato.
Caso não consiga, retornarei. 