none
backup bd mysql en visual basic 2010 RRS feed

  • Pregunta

  • Hola alguien me puede dar una mano para guardar una copia de mi base de datos en otro disco?

    Mi base de datos es de mysql y utilizo visual basic 2010.

    Saludos

    • Cambiado Enrique M. Montejo miércoles, 7 de junio de 2017 6:38 Pregunta relacionada con el acceso a datos con MySql.
    martes, 2 de octubre de 2012 20:43

Respuestas

  • Backup se hace así

    Imports System.IO.StreamWriter
    Imports System.IO
    Public Class Form1
    
        Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
            abrir.DefaultExt = "sql"
            Dim pathmysql As String
            Dim comando As String
            Dim arg As String
            abrir.Filter = "File MYSQL (*.sql)|*.sql"
            pathmysql = My.Computer.Registry.GetValue("HKEY_LOCAL_MACHINE\SOFTWARE\MySQL AB\MYSQL Server 5.5", "Location", 0)
            If pathmysql = Nothing Then
                MsgBox("No se encontro en tu equipo Mysql, escoge la carpeta donde esta ubicado")
                carpeta.ShowDialog()
                pathmysql = carpeta.SelectedPath
            End If
    
            If abrir.ShowDialog() = Windows.Forms.DialogResult.OK Then
                'Try
    
                comando = pathmysql & "\bin\mysql.exe"
                comando.Replace("\\", "\")
                arg = " --user=root --password= --host=localhost --database catalogos < " & Chr(34) & abrir.FileName & Chr(34)
                Dim proceso As New Process
                proceso.StartInfo.FileName = "cmd.exe"
                proceso.StartInfo.WindowStyle = ProcessWindowStyle.Hidden
                proceso.StartInfo.UseShellExecute = False
                proceso.StartInfo.RedirectStandardOutput = True
                proceso.StartInfo.RedirectStandardInput = True
                proceso.StartInfo.CreateNoWindow = True
                proceso.Start()
                Dim escribeconsola As StreamWriter = proceso.StandardInput
                Dim leyendoconsola As StreamReader = proceso.StandardOutput
                escribeconsola.WriteLine(comando & arg)
                escribeconsola.Close()
                proceso.WaitForExit()
                proceso.Close()
    
            End If
        End Sub
    
        Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
            respaldar.DefaultExt = "sql"
            Dim pathmysql As String
            Dim comando As String
            pathmysql = My.Computer.Registry.GetValue("HKEY_LOCAL_MACHINE\SOFTWARE\MySQL AB\MYSQL Server 5.5", "Location", 0)
            If pathmysql = Nothing Then
                MsgBox("No se encontro en tu equipo Mysql, escoge la carpeta donde esta ubicado")
                carpeta.ShowDialog()
                pathmysql = carpeta.SelectedPath
            End If
            respaldar.Filter = "File MYSQL (*.sql)|*.sql"
            If respaldar.ShowDialog() = Windows.Forms.DialogResult.OK Then
                Try
                    comando = pathmysql & "\bin\mysqldump --user=root --password= --databases catalogos -r """ & respaldar.FileName & """"
                    Shell(comando, AppWinStyle.MinimizedFocus, True)
                Catch ex As Exception
                    MsgBox("Ocurrio un error al respaldar", MsgBoxStyle.Critical, "Informacion")
                End Try
    
            End If
        End Sub
    End Class
    

    Sólo usé dos botones espero que te sirva :)


    Respuestas de la pagina Partner de Microsoft

    • Marcado como respuesta Mauricio Hamak viernes, 5 de octubre de 2012 22:34
    miércoles, 3 de octubre de 2012 1:41

Todas las respuestas

  • Hola buenas tarde Mauricio solo copia el .bak que debe estar en la carpeta de mysql en el disco C y pegalo en el otro disco que deseas verlo o correrlo, no se si me explique bien y si esto es lo que realmente necesitas.

    saludos 

    martes, 2 de octubre de 2012 20:58
  • Backup se hace así

    Imports System.IO.StreamWriter
    Imports System.IO
    Public Class Form1
    
        Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
            abrir.DefaultExt = "sql"
            Dim pathmysql As String
            Dim comando As String
            Dim arg As String
            abrir.Filter = "File MYSQL (*.sql)|*.sql"
            pathmysql = My.Computer.Registry.GetValue("HKEY_LOCAL_MACHINE\SOFTWARE\MySQL AB\MYSQL Server 5.5", "Location", 0)
            If pathmysql = Nothing Then
                MsgBox("No se encontro en tu equipo Mysql, escoge la carpeta donde esta ubicado")
                carpeta.ShowDialog()
                pathmysql = carpeta.SelectedPath
            End If
    
            If abrir.ShowDialog() = Windows.Forms.DialogResult.OK Then
                'Try
    
                comando = pathmysql & "\bin\mysql.exe"
                comando.Replace("\\", "\")
                arg = " --user=root --password= --host=localhost --database catalogos < " & Chr(34) & abrir.FileName & Chr(34)
                Dim proceso As New Process
                proceso.StartInfo.FileName = "cmd.exe"
                proceso.StartInfo.WindowStyle = ProcessWindowStyle.Hidden
                proceso.StartInfo.UseShellExecute = False
                proceso.StartInfo.RedirectStandardOutput = True
                proceso.StartInfo.RedirectStandardInput = True
                proceso.StartInfo.CreateNoWindow = True
                proceso.Start()
                Dim escribeconsola As StreamWriter = proceso.StandardInput
                Dim leyendoconsola As StreamReader = proceso.StandardOutput
                escribeconsola.WriteLine(comando & arg)
                escribeconsola.Close()
                proceso.WaitForExit()
                proceso.Close()
    
            End If
        End Sub
    
        Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
            respaldar.DefaultExt = "sql"
            Dim pathmysql As String
            Dim comando As String
            pathmysql = My.Computer.Registry.GetValue("HKEY_LOCAL_MACHINE\SOFTWARE\MySQL AB\MYSQL Server 5.5", "Location", 0)
            If pathmysql = Nothing Then
                MsgBox("No se encontro en tu equipo Mysql, escoge la carpeta donde esta ubicado")
                carpeta.ShowDialog()
                pathmysql = carpeta.SelectedPath
            End If
            respaldar.Filter = "File MYSQL (*.sql)|*.sql"
            If respaldar.ShowDialog() = Windows.Forms.DialogResult.OK Then
                Try
                    comando = pathmysql & "\bin\mysqldump --user=root --password= --databases catalogos -r """ & respaldar.FileName & """"
                    Shell(comando, AppWinStyle.MinimizedFocus, True)
                Catch ex As Exception
                    MsgBox("Ocurrio un error al respaldar", MsgBoxStyle.Critical, "Informacion")
                End Try
    
            End If
        End Sub
    End Class
    

    Sólo usé dos botones espero que te sirva :)


    Respuestas de la pagina Partner de Microsoft

    • Marcado como respuesta Mauricio Hamak viernes, 5 de octubre de 2012 22:34
    miércoles, 3 de octubre de 2012 1:41
  • Hola muchas gracias, como defino respaldar y carpeta? que son los dos que me dan error. Saludos
    viernes, 5 de octubre de 2012 22:35
  • me uno a la pregunta de mauricio, como se definen respaldar y carpeta??

    espero que responda el amigo xD

    martes, 6 de noviembre de 2012 5:11
  • Hola muchas gracias, como defino respaldar y carpeta? que son los dos que me dan error. Saludos
    Amigo corregiste los errores no he podido resover eso
    jueves, 6 de diciembre de 2012 16:18
  • Que tal buen día compañeros programadores, sólo quería aportar con algo. Para tu error solo copia estas declaraciones

    Dim carpeta As New FolderBrowserDialog

    Dim respaldar As New SaveFileDialog

    Espero que te sirva

    Saludos

    lunes, 10 de diciembre de 2012 15:42
  • Gracias amigo si era eso y tambien abrir pero lo resolvi muchas gracias
    sábado, 15 de diciembre de 2012 2:22
  • como reolviste el abrir

    sábado, 29 de junio de 2013 16:45
  • La variable abrir es un Openfiledialog puedes declararla de esta manera 

    dim abrir as new OpenFileDialog

    espero te sirva un Saludo

    lunes, 8 de julio de 2013 21:34
  • UNA PREGUNTA ESTOY FUERA DE CASA Y NO PUEDO PRBAR EL CODIGO ME GUSTARIA SABER EN QUE PARTE SE DA LA RUTA PARA ALMACENAR EL BACKUP, AGRADECERIA ME RESPONDIERAN
    viernes, 19 de julio de 2013 22:10
  • hola sabes yo también estoy en este tipo de solución pero yo estoy trabajando con sql server. como seria el código!!! ayuda porfavor

    sábado, 3 de agosto de 2013 20:28
  • Muchas gracias por ayudar amigo es que me desconecte un tiempo para estudiar más a fondo ya que el internet me distrae mucho :)

    Respuestas de la pagina Partner de Microsoft

    lunes, 23 de septiembre de 2013 20:36
  • Mauricio estoy usando tu código para backup de base de datos.. tengo un problema el respaldo lo hace correctamente pero no me quiere restaurar la base de datos.. tengo mysql 5.5 y visual 2010

    este es mi correo necesito de tu ayuda.. jmoya98@hotmail.com

    de antemano gracias

    martes, 5 de noviembre de 2013 3:43
  • Saludos a todos... estoy empezando en ésto de bases de datos, y ahorita tengo un proyecto... quiero utilizar éstos codigos y me funcionan perfectamente, el único problema que tengo es que yo estoy usando Xamp, y por ese motivo no me reconoce directamente mysql en: 

    ("HKEY_LOCAL_MACHINE\SOFTWARE\MySQL AB\MYSQL Server 5.5", "Location", 0)

    El xamp me la instala en la el disco duro C: y cuando intento cambiar la dirección me tira error... me pueden ayudar? Gracias

    Y una pequeña consulta... cuando escribes database: catalogs... te refieres a tu base de datos no? tendría que colocar la mia?

    • Editado Axel Pineda miércoles, 13 de noviembre de 2013 4:34
    miércoles, 13 de noviembre de 2013 4:19