Backup MySql mysqldump

25 respostas
C

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!

25 Respostas

C

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 é?

D

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:

C

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!

D

Tente atualizar o server…

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

sacou!?

C

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

valeu!

D

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

C

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

P

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

C

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…

D

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:

P

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

G

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

C

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?

C

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?

G

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

C

e ae!!

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

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

C

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!

A
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

T

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

H

Como que faz o Backup pelo .bat pessoal ???
Estou tentando assim: E está criando o Arquivo em Branco

@echo 
cd C:\\Arquivos de programas\\MySQL\\MySQL Server 5.0\\bin\\mysqldump.exe mysqldump -u root -proot agilcms_desktop > C:\\Backup.sql
exit

Onde estaria o meu erro ?
Qualquer ajuda ficaria bastante grato.

A

@echo cmd /c mysqldump -u root -proot scge > c:/Backup.sql exit

Faz assim!!

desse jeito só funciona no XP, no vista tem q por o caminho inteiro do mysqldump

xD~~

H

altitdb:
@echo cmd /c mysqldump -u root -proot scge > c:/Backup.sql exit

Faz assim!!

desse jeito só funciona no XP, no vista tem q por o caminho inteiro do mysqldump

xD~~

Fiz do mesmo jeito e criou o banco em branco.

@echo
cmd /c mysqldump -u root -proot agilcms_desktopweb > c:/Backup.sql
exit

O Meo S.O é XP.
Pelo MS-Dos eu testei aqui e funcionou direitinho… entrei até na pasta:

cd c:\Arquivos de programas\MySQL\MySQL Server 5.0\bin

//E depois executei esse comando e funcionou bleza
mysqldump -u root -proot agilcms_desktopweb > c:/DICA_Backup.sql

Como seria se eu passa-se o caminho absoluto ?

A
cmd /c "C:/Arquivos de programas/MySQL/MySQL Server 5.0/bin/mysqldump.exe" -u root -proot scge > c:/Backup.sql

O Meu ficou assim…

assim funciona tanto no vista qto no xp…

xD~~

H

altitdb:
cmd /c "C:/Arquivos de programas/MySQL/MySQL Server 5.0/bin/mysqldump.exe" -u root -proot scge > c:/Backup.sql

O Meu ficou assim…

assim funciona tanto no vista qto no xp…

xD~~

Beleza… Deu certinho aqui…
Agora para fazer o Restore é so trocar o sinal né ‘>’ ???

Vlw pela dica/ajuda.

A

Pra restaurar eh soh usar em vez de usar ‘>’, usar ‘<’

xD~~

precisando só chamar!!

XP eh susse pra bkp… duro eh vista e seven :S

Criado 19 de abril de 2008
Ultima resposta 15 de jan. de 2010
Respostas 25
Participantes 7