Fazer backup mysql em tempo de execução

Olá pessoal!

Estou tentando fazer backup do banco de dados mysql em tempo de execução e não estou conseguindo, veja o que tentei:

[code]package folder;

public class Backup {
public static void main(String[] args) {
try {
Runtime.getRuntime().exec(“mysqldump -u root -p 123 Teste > /home/gustavo/Desktop/BACKUP/Backup000000.sql”);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

[/code]
Tudo que encontro pela net é parecido. Quando eu usava o Rwindow$ isso funcionava (“mysqldump -u root -p 123 Teste > /home/gustavo/Desktop/BACKUP/Backup000000.sql”) mas parece que no mysql para Linux o mysqldump não existe?!

O que faço?

Obrigado a todos!

Olá,

lembre-se que o man é seu amigo:

o problema tá na forma como vc ta passando o passwd.
Agora, pra que usar java pra rodar um comando?

[]'s

Porque a minha aplicação vai fazer isso e muito mais. Isso é só um trecho … um teste…

Assim?:

[code]package folder;

public class Backup {
public static void main(String[] args) {
try {

				Runtime.getRuntime().exec("mysqldump -u root --p=123 Teste > /home/gustavo/Backup000000.sql");
			
			} catch (Exception e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}

}

[/code]
Não funcionou…

Olá.

mão pode ter espaço entre o -p e o password.
Ex:

[]'s

Deixei sem espaço e deu na mesma? Em que distribuição você testou? Tem certeza que o mysqldump tem no Linux?

olá,

depende da distribuição, se ela vem ou não instalado.
Vê na máquina que vc ta usando se tem ou não o comando, e se tá no path.
Se não tiver é só instalar.

[]'s

Encotrei um script na net e funcionou:

[code]#!/bin/bash

Exporta dados de uma base mysql para um txt

By Marcelo Garcia 06/11/2004

if [ $# -lt “1” ] ; then # Teste se tem ao menos 1 parametro - database
echo -e "\nSyntaxe : ./mybackup.sh database [user] [password] [host] \n"
exit 1 # exibo sintaxe e saio com codigo de erro
fi

Atribuo parametros para variaveis

database=$1
user=$2
passwd=$3
host=$4
backup_file=$5".sql"

Verifico as variaveis (parametros) opcionais e atribuo o default caso vazio

let ${passwd:=“backup”}
let ${user:=“backup”}
let ${host:=“localhost”}

#Exceta a exportacao de dados
mysqldump --host=$host --user=$user --password=$passwd --databases $database > $backup_file
[/code]Também tentei isso e funcionou:

Mas fazendo isso não dá certo:

Runtime.getRuntime().exec("mysqldump --host=localhost --user=root --password=123 --databases Teste > /home/gustavo/Desktop/BACKUP/Backup.sql");
Como faço para colocar o script na minha aplicação e chama-lo?

olá,

basta que o seu script tenha permissão de execução, e chamá-lo como se chama qualquer programa.

[]'s