Jump to content

[RESOLVIDO]fazer backup da bd


rjsma

Recommended Posts

  • Replies 48
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

shell("C:\xampp\mysql\bin\mysqldump --opt --password=pass -user=root --database tua_bd -r c:\tuabd.sql") 

Atenção que o exemplo acima faz o backup mas não o encripta nem zipa nem nada. É apenas um exemplo para veres como funciona. Com mais calma modifico uma rotina de backup e restore e ponho-ta cá. Para já puxa um bocadinho pela broa que eu vou à janta! 😁

Cumprimentos

"A paciência é uma das coisas que se aprendeu na era do 48k" O respeito é como a escrita de código, uma vez perdido, dificilmente se retoma o habito"

Link to comment
Share on other sites

Como é que fizeste isso??

Ele devia ter feito o dump da tuabd para c:\tuabd.sql

Não percebi a logica. Qualquer parametro da linha que de codigo que te indiquei pode ser passado como variaveis do tipo string, só precisa de um bocadinho de engenho e consegues fazer o backup para onde quizeres.

Se tiver tempo logo ainda coloco as rotinhas de backup e restore que uso. (É só o trabalho de as modificar um pouco)

Cumprimentos

"A paciência é uma das coisas que se aprendeu na era do 48k" O respeito é como a escrita de código, uma vez perdido, dificilmente se retoma o habito"

Link to comment
Share on other sites

shell("C:\xampp\mysql\bin\mysql -u=root -p=password tuabd < c:\tuabd.sql") 

Assim já ficas com uma ideia. Ainda não tive 5 minutos para vir para aqui, modificar as sub's para as disponibilizar. Hoje tá a ser um dia de cão 😞

Cumprimentos

"A paciência é uma das coisas que se aprendeu na era do 48k" O respeito é como a escrita de código, uma vez perdido, dificilmente se retoma o habito"

Link to comment
Share on other sites

fiz uma coisa assim mas nao me esta a fazer o backup aparece sempre a mensagem(Erro ao fazer cópia de segurança.Tente novamente, se o erro persistir reinicie o sistema)

Dim conexao As New MySqlConnection("server=127.0.0.1;user id=Administrador;password=programa;database=programa")

        Dim comando As New MySqlCommand()

        comando.Connection = conexao

        Try

            comando.CommandText = "BACKUP DATABASE programa to Disk = " & "C:" + "\programa.SQL" & ""

            conexao.Open()

            comando.ExecuteNonQuery()

            conexao.Close()

            MsgBox("Backup Realizado com Sucesso.", MsgBoxStyle.Information)

        Catch ex As Exception

            MsgBox("Erro ao fazer cópia de segurança.Tente novamente, se o erro persistir reinicie o sistema.", MsgBoxStyle.Information, "Erro")

        End Try

    End Sub

cumps 😞

Link to comment
Share on other sites

try

shell("C:\xampp\mysql\bin\mysqldump --opt --password=pass -user=root --database tua_bd -r c:\tuabd.sql")            

MsgBox("Backup Realizado com Sucesso.", MsgBoxStyle.Information)

        Catch ex As Exception

            MsgBox("Erro ao fazer cópia de segurança.Tente novamente, se o erro persistir reinicie o sistema.", MsgBoxStyle.Information, "Erro")

        End Try

    End Sub

Não percebi bem a tua sub, ela basicamente devia executar um comando SQL mas não executa nada. abre uma connecção a instrução SQL não é reconhecida, ele lança a excepção e dá erro, sem sequer fechar a connecção.

Como estavas a pensar fazer o backup??

Por shell comand o codigo fica semelhante ao que te deixei acima. Vou tentar ainda hoje por cá uma sub de backup e uma de restore, mas isto deve dar para veres como fazer backup da BD.

Cumprimentos

"A paciência é uma das coisas que se aprendeu na era do 48k" O respeito é como a escrita de código, uma vez perdido, dificilmente se retoma o habito"

Link to comment
Share on other sites

Passas a path como uma variavel de texto. Vê este exemplo, foi escrito à pressa não tive tempo de o testar. Isto de estar com uma mão no teclado outra no garfo não tem assunto 😞

dim dbbckpath as string
dim shellcomand as string
try
shellcomand = "C:\C:\xampp\mysql\bin\mysqldump --opt --password=pass -user=root --database tua_bd -r " & path & " ") "

MsgBox("Backup Realizado com Sucesso.", MsgBoxStyle.Information)

        Catch ex As Exception

            MsgBox("Erro ao fazer cópia de segurança.Tente novamente, se o erro persistir reinicie o sistema.", MsgBoxStyle.Information, "Erro")

        End Try

    End Sub

Cumprimentos

"A paciência é uma das coisas que se aprendeu na era do 48k" O respeito é como a escrita de código, uma vez perdido, dificilmente se retoma o habito"

Link to comment
Share on other sites

como vais executar um comando externo via shell tens duas path a path até ao comando que vais executar no caso: C:\xampp\mysql\bin\mysqldump existe um par de erros por descuido meu. Abaixo deixo o codigo devidamente corrigido.

E a path de onde vai ficar o ficheiro com o backup que essa é definida pela variavel bdbckpath.

No codigo que deixo agora tens isso devidamente corrigido e documentado, atenção que eu atribuo o valor "c:\backup\tua_db.sql" à variavel dbbckpath, apenas por exemplo, esse valor pode vir de qualquer outro sitio.

dim dbbckpath as string
dim shellcomand as string
dbbckpath = "c:\backup\tua_db.sql"
try
shellcomand = "C:\xampp\mysql\bin\mysqldump --opt --password=pass -user=root --database tua_bd -r " & bdbckpath & " ") "
Shell  (shellcomand)

MsgBox("Backup Realizado com Sucesso.", MsgBoxStyle.Information)

        Catch ex As Exception

            MsgBox("Erro ao fazer cópia de segurança.Tente novamente, se o erro persistir reinicie o sistema.", MsgBoxStyle.Information, "Erro")

        End Try

    End Sub

Cumprimentos

"A paciência é uma das coisas que se aprendeu na era do 48k" O respeito é como a escrita de código, uma vez perdido, dificilmente se retoma o habito"

Link to comment
Share on other sites

Agora puxa pela cabeça....

Ele vai gravar na path que está no valor da variavel dbbckpath ou seja c:\backup\tua_db.sql

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim path As String
        FolderBrowserDialog1.ShowDialog()
        path = FolderBrowserDialog1.SelectedPath
        MsgBox(path, MsgBoxStyle.DefaultButton1, AcceptButton)
    End Sub

Camarada um bocadinho de estudo e tinhas feito tu isto 😞 Vá o google é um gajo muita fixe! 😉

Aqui tens o exemplo de uma sub que te deixa navegar entre todos os directorios possiveis para escolheres o directorio onde queres gravar o backup.

Agora puxa um bocadinho pela mona! Qualquer duvida diz 😉

Cumprimentos

"A paciência é uma das coisas que se aprendeu na era do 48k" O respeito é como a escrita de código, uma vez perdido, dificilmente se retoma o habito"

Link to comment
Share on other sites

Não tens nada que pedir desculpa...  eu estava resingão porque estava a almoçar 😉

Tive de fazer aquela sub à pressa... com a pizza numa mão e o teclado na outra....

Não fui pesquizar, apenas puxei um bocadinho pela tola, e conclui que o objectivo era poder andar na arvore de directorios e escolher um, assim puxei um componente FolderBrowserDialog, e depois foi quase intuitivo.

Se entretanto acabares uma rotina funcional coloca cá 😞 Assim o resto do pessoal pode consultar.

Cumprimentos

"A paciência é uma das coisas que se aprendeu na era do 48k" O respeito é como a escrita de código, uma vez perdido, dificilmente se retoma o habito"

Link to comment
Share on other sites

tenho quase pronto ,so esta a dar problemas em criar o ficheiro fisicamente

Dim shellcomand As String
        Dim dbbckpath As String
        Dim path As String
        FolderBrowserDialog1.ShowDialog()
        path = FolderBrowserDialog1.SelectedPath
        dbbckpath = path + " ginasio.sql"
        Try
            shellcomand = "C:\xampp\mysql\bin\mysqldump --opt --password=ginasio -user=Administrador --database ginasio -r " & dbbckpath & ")"
            Shell(shellcomand)

            MsgBox("Backup Realizado com Sucesso.", MsgBoxStyle.Information)

        Catch ex As Exception

            MsgBox("Erro ao fazer cópia de segurança.Tente novamente, se o erro persistir reinicie o sistema.", MsgBoxStyle.Information, "Erro")

        End Try

    End Sub
Link to comment
Share on other sites

    Dependendo da versão do windows que estiveres a utilizar o windows tem "algumas dores de barriga" no que diz respeito a gravar em determinados directorios. nomeadamente em C:\, C:\programas, c:\windows ... e por aí fora.

Experimenta gravar por exemplo para uma pen-drive, e coloca cá o erro que ele te está a dar ou uma imagem do erro.

Cumprimentos e parabens pelo codigo, aprendes-te rapido 😞

P.S. Começa a colocar o codigo colorido, colocando no tag code o seguinte code=vbnet

"A paciência é uma das coisas que se aprendeu na era do 48k" O respeito é como a escrita de código, uma vez perdido, dificilmente se retoma o habito"

Link to comment
Share on other sites

    Tinhas um espaço a mais

    Instrução corrigida:

dbbckpath = path + "ginasio.sql" 

    A tua instrução:

dbbckpath = path + " ginasio.sql"

    Se comparares as duas vais ver que tems " ginasio.sql" ou seja se juntares toda a string ficas com por exempo "e:\backups\ ginasio.sql " o espaço antes do nome é que está a causar os problemas.

Cumprimentos

"A paciência é uma das coisas que se aprendeu na era do 48k" O respeito é como a escrita de código, uma vez perdido, dificilmente se retoma o habito"

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.