Backup MySql mysqldump

olá pessoal, estou tentando fazer o backup do meu bd com o mysqldump, mas não to conseguindo:

try {
Runtime.getRuntime().exec("cmd /c C:/Arquivos de programas/MySQL/MySQL Server 5.0/bin/mysqldump.exe " +
“-uroot -proot pizzabanco > /backup.sql”);
} catch (Exception e) {
e.printStackTrace();
}

ele cria um arquivo, mas sem nada, com 0KB. Fiz um arquivo .bat com os seguintes comandos:
cd C:/Arquivos de programas/MySQL/MySQL Server 5.0/bin/
mysqldump.exe -uroot -proot pizzabanco > /backup.sql

ae ele gera o arquivo certinho, porém se eu chamar esse arquivo pelo programa:
Runtime.getRuntime().exec("/backup.bat");

dá o mesmo pau, cria o arquivo, mas em branco…

alguém tem a solução aí?

valeu!

E ae pessoal,

consegui rodar o .bat:

Runtime.getRuntime().exec(“cmd.exe /C start c:\backup.bat”);
Ele roda certinho, gera o arquivo normal, mas só consegui fazer gravar na raiz C:
mas ainda nao consegui colocar os comandos dentro do programa…
Arquivo backup.bat :
cd C:\Arquivos de programas\MySQL\MySQL Server 5.0\bin\
mysqldump.exe -uroot -proot pizzabanco > \backup.sql

o problema agora está na hora de fazer o restore do banco, fiz também um outro bat:
cd C:\Arquivos de programas\MySQL\MySQL Server 5.0\bin\
mysqldump.exe -uroot -proot pizzabanco < \backup.sql

e no programa: Runtime.getRuntime().exec(“cmd.exe /C start c:\restore.bat”);

ele roda, mas o banco de dados nao atualiza pra versao que eu fizer esse restore…

alguém tem idéia do que é?

Cara…

Geralmente eu uso :

mysqldump -u root -psenha banco < backup.sql

Note o espaço depois do -u e a falta dele depois do -p

Tente isso e se funcionar avise :slight_smile:

Entao, fiz do jeito q vc falou ae, mas antes já estava funcionando.
Ele executa o script certinho, se eu entrar no prompt e digitar o comando vai, porém nao altera o bd

se eu dou um select lá no prompt do MySql continua o bd que estava mesmo, e nao o que eu acabei de restaurar… mto estranho, nao era pra sobrepor o que ja estava la?

valeu!

Tente atualizar o server…

Eu geralmente uso um client (Ex.: MySQL Query Browser)

sacou!?

como que eu faço essa atualização de dentro do programa?
eu não tenho a mínima idéia…

valeu!

Clica com o botao direito em cima do banco de dados escolhido e clica em refresh!

hum… foi mal, foi meio ambíguo o que eu escrevi… eu quis dizer no meu código…

acho q ele mando vc dar refresh no programa, que utiliza pra visualizar o bd mesmo nao no codigo, o seu codigo nao precisa de refresh

Cara, mas é complicado, a atualização deveria ser automática não? senão toda vez que eu fizer um backup e der um restore depois vou ter q entrar nesse programa pra dar o refresh? tudo bem de eu fazer isso, mas o usuário não pode ter que fazer isso.
A atualização teria que ser através da minha aplicação mesmo.
alguém sabe o que pode ser pq o bd não está atualizando?

valeu…

Tente restartar o mysql…

Na pior das hipóteses programe para sua aplicação fazer restart dele assim que o usuário fizer backup :slight_smile:

Acho q a comunicação se perdeu no momento ai deste quote q dei, bem se vc deu restore o banco de dados tem q sobrepor sim. se nao sobrepos algo esta errado. a ideia de dar um refresh foi soh para vc verificar se nao estava achando q nao atualizou qnd ja estava atualizado. ou seja pra testar se o codigo funcionou ou nao.

resumindo tem q sobrepor se nao ta acontecendo algum problema existe

nao eh preciso dar um refresh no seu programa toda vez que restaurar o seu banco de dados, verifique se quando vc restaura as infamações estão corretas, faça o seguinte, restaure o seu banco, faça inserção de alguns registros e faça um novo backup e restaure para ver se os dados inseridos estão lah. Se nao der certo vc estã com problemas com seu servidor

vlws

ola pessoal… ainda nao consegui fazer funcionar o restore, mesmo pelo prompt de comando… ele executa, mas os dados do bd continuam os mesmos, ele nao pega o que foi restaurado… qq pode ser?

Alguém tem idéia do que pode estar acontecendo? o backup funciona perfeito, gera o arquivo legalzinho, mas na hora de dar o restore, não funciona, o banco não atualiza.
alguma luz?

amigo o restore funcionou pelo prompt? se tiver funcionado eh algum problem na sua aplicação, se nao tiver funcionado alguma coisa vc esta fazendo errado, como esta tentando fazer o restore?

vlws

e ae!!

olha o que eu fiz:
Backup:
mysqldump.exe -uroot -proot pizzabanco > \backup.sql

Restore
mysqldump.exe -u root -proot pizzabanco < \backup.sql

Olá a todos!

consegui fazer o restore através deste comando:

mysql --database="[nome_banco]" --user="[usuario]" --password="[senha]" --execute=“source \backup.sql”

porém só consegui executando um arquivo .bat

como faço para executar essa linha de comando dentro de um programa Java?

valeu galera!

cmd /c mysql -u root -proot aula < C:/bkp.sql

Cara eu fiz assim para Restaurar o BD!

xD~~

PS: Só que o meu não funciona no Windows Vista =/
Nem Restore nem Backup

Ele não está tentando criar o banco de dados do backup sobre o atual?

Se não forem informações importantes, faça um teste. Vai lá no MySQL, dá um

DROP DATABASE nome_banco;

E em seguida tenta restaurar o backup novamente.

Até mais