Para hacer un backup de la base de datos, para luego enviar el fichero por email, probé muchos códigos por internet y en mi caso sólo me funcionó correctamente este de aquí.
Crear un backup de la base de datos MySQL
- Creamos un método backupDB que se encargará de hacer el backup automáticamente y luego llamar al método enviarEmail que veremos en otra entrada.
- El botón EmailButton se encarga de mostrar un mensaje de confirmación para realizar la copia y luego enviar el email.
Private Sub EmailButton_Click(sender As Object, e As EventArgs) Handles EmailButton.Click
Dim Message As String = "¿Quieres enviar por email la copia de la base de datos?"
Dim Caption As String = "Atención, vas a enviar la copia de la base de datos."
Dim Buttons As MessageBoxButtons = MessageBoxButtons.OKCancel
Dim Result As DialogResult
Result = MessageBox.Show(Message, Caption, Buttons)
If Result = System.Windows.Forms.DialogResult.OK Then
backupDB()
End If
End Sub
- En el método de backup le asignamos la ruta donde se encuentra nuestro mysqldump
- Le asignamos los argumentos de nuestro servidor
- Y le decimos donde queremos guardar el archivo
- Luego creamos un proceso, le asignamos el FileName y los Arguments
- Le puse que se hiciera de manera oculta para que no aparezca la ventana de MSDOS, de ahí la línea Pr.StartInfo.WindowStyle = ProcessWindowStyle.Hidden
- Después ejecutamos el proceso y si todo es correcto llamará al método que se encarga de enviar por email este backup
Public Sub backupDB()
Dim correcto As Boolean = True
Dim cmd, arg As String
Try
cmd = "C:\Archivos de programa\MySQL\MySQL Server 5.5\bin\mysqldump"
arg = " --opt --force --host=localhost --port=3306 --user=root--password=1234 --databases vb -r C:\Programa\Email\baseDatos.sql"
Dim Pr As New Process()
Pr.StartInfo.FileName = cmd
Pr.StartInfo.Arguments = arg
Pr.StartInfo.WindowStyle = ProcessWindowStyle.Hidden
Pr.Start()
Catch
MsgBox("No se pudo generar la copia", MsgBoxStyle.Exclamation, "Error")
correcto = False
End Try
If correcto Then
enviarEmail()
End If
End Sub
No hay comentarios:
Publicar un comentario