Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

onedev

Backup de banco MySQL via script ASP

Recommended Posts

Olá Pessoal,

 

uma dúvida que acho que pode ser útil para muitos programadores. Existe alguma forma de fazer uma backup de um banco Mysql via script asp?

O meu objetivo é oferecer uma função como essa em uma painel administrativo para o cliente.

 

Procurei por material como esse o dia a todo, encontrei as seguintes informações:

(1) Site que vende uma solução, diz que funciona!

http://www.hkprog.com/hkdbdemo/

Existe um demo nesse site mas não consegui fazer funcionar.

 

(2) SQL-DMO

http://www.asp101.com/articles/carvin/sqldmobackup/default.asp

Essa é uma outra opção, não consegui testar pois meu servidor não aceita esse componente SQLDMO.SQLServer

 

Alguem já viu algo para solucionar isso, pode dar uma dica?

 

Achei uma outra opção, mas essa é ainda mais complicada. Ela precisa de um componente proprio.

http://www.aspfree.com/c/a/ASP-Code/DB-Tables-Backup-using-ASP-OO4O-and-Oracles-Export-Utility-by-Jenny-Corpus/

Compartilhar este post


Link para o post
Compartilhar em outros sites

tenta esse exemplo simples

 

dim fso
set fso = createobject("scripting.filesystem")
fso.copyfolder "C:\mysql\data\YOURDB","C:\backup\YOURDB" & day(now) & month(now) & year(now),true

ou direto na SQL

 

set cnConn=server.CreateObject("ADODB.Connection")
cnconn.open(Application("cnStr"))
strBack="mysqldump -u myUid -p mypass mydb > myBack.sql"
cnConn.Execute(strBack)

você também pode utilizar um exemplo de backup e apontar para seu local onde se encontra os dados, ou também você pode usar uma instrução SQL para fazê-la.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Xanburzum,

 

obrigado pela respostas. Me deu uma luz.

Mas estou tentando o seu exemplo abaixo e está apresentando um erro:

 

<%
Set Conexao = Server.CreateObject("ADODB.Connection")
Conexao.Open "Driver={MySQL ODBC 5.1 Driver}; SERVER=200.145.41.20; DATABASE=mybase; UID=myuser; PWD=mypass;"
strBack="mysqldump -u myUid -p mypass mydb > myBack.sql"
Conexao.Execute(strBack) 
Response.Write "Backup Efetuado!"
%>

Apresentou o seguinte erro:

Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[MySQL][ODBC 5.1 Driver][mysqld-4.1.18-nt-log]You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'mysqldump -u myUid -p mypass mydb > myBack.sql' at line 1

 

Outra dúvida

aonde vai parar o backup se o codigo der certo? eu precisava tipo que aparece o arquivo para salvar no HD do cliente. O primeiro exemplo acho seria para fazer isso mas é que como o site roda na locaweb com certeza não vou conseguir o URL de onde fica localizado essa base.

 

Alguem pode ajudar? preciso muito disso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Verifique a ortografia. pode ser um nome de coluna Invalido 'sua_coluna'. A coluna a qual você se refere na Base de Dados não foi encontrada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

A mensagem diz que existe um erro na clausula sql.

dá uma ohada aqui: http://dev.mysql.com/doc/refman/5.1/en/mysqldump.html

talvez lhe esclareca suas duvidas.

Um problema que pode ocorrer, é permissão para escrita (criar o arquivo) no diretório do servidor.

Se isso ocorrer precisa ver como fazer para criar um diretório com essa permissão e na linha onde está isto: > myBack.sql"

acho que deve colocar algo como :> ./meudiretorio/myBack.sql"

 

O detalhe de criar um arquivo no computador do cliente, acho que é possivel criar isso com fso, ou copiando o arquivo original para a pasta do cliente, ou lendo o arquivo original e escrevendo no arquivo do cliente.

Existem alguns exemplos disso no laboratorio de scripts.

Pode ser que não dê tão certo assim, com as diretivas de segurança e permissão do windows do cliente, precisa observar isso.

Uma alternativa seria criar o arquivo de backup e enviar como anexo num e-mail para o cliente.

É possivel e talvez dê menos trabalho que o fso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

é como falei

Verifique a ortografia

, isso pode ser um nome errado de coluna,campo etc ou sintaxe da SQL.......

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.