Monday, 30 December 2013

Backup Restore Database Mysql VB.net

Bakcup database Mysql menggunakan Mysqldumb.exe. Sedangkan Restore menggunakan Mysql.exe.
Fungsi Backup ini untuk menyimpan seluruh isi Database n Strukturnya. Jika kita rajin membackup file kita setiap harinya, maka kita bisa mengetahui database yg kita miliki 5 hari lalu atau bahkan 50tahun lalu dengan me-RESTORE hasil backup database.

Berikut Adalah Langkah2 membuat Backup dan Restore Pada VB.net MYSQL database.
keterangan :
a. Nama database : hobimahasiswa
b. lokasi instalasi mysql / wamp : C:\wamp\bin\mysql\mysql5.5.8\bin\
c. lokasi backup n restore : D:\
d. nama File backup : hobimahasiswa(tanggalbacckup).sql


1. Sediakan masing2 satu buah Button Untuk Backup n Restore.


2. Kemudian Atur Propeties nya sperti berikut :
Button1 : Text : Backup
               Name : Btnbackup
Button2 : Text : Restore
               Name : Btnrestore
3. Kemudian Double Klik pada Btnbackup  / Restore dan ketikan kode berikut :

Imports System.IO
Public Class Form1

    Private Sub Btnbackup_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btnbackup.Click
        Dim tanya = MessageBox.Show("BACK UP DB ?", "WARNING", MessageBoxButtons.YesNo, MessageBoxIcon.Question)

        If tanya = Windows.Forms.DialogResult.Yes Then
            Dim tanggal = Format(Now, "yyyy-MM-dd")
            Dim nm = "hobimahasiswa" & tanggal
            Dim myProcess As New Process()

            Process.Start("C:\wamp\bin\mysql\mysql5.5.8\bin\mysqldump.exe", " -u root -p  hobimahasiswa -r ""d:\" & nm & ".sql""")
            myProcess.Close()


        ElseIf tanya = Windows.Forms.DialogResult.No Then : Exit Sub

        End If
    End Sub

    Private Sub Btnrestore_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btnrestore.Click
        Dim no = InputBox("Masukkan Nama File Sql dari D:\ Untuk Restore !")
        If no = "" Then Exit Sub

        Dim myProcess As New Process()
        myProcess.StartInfo.FileName = "cmd.exe"
        myProcess.StartInfo.UseShellExecute = False
        myProcess.StartInfo.WorkingDirectory = "C:\wamp\bin\mysql\mysql5.5.8\bin\"
        myProcess.StartInfo.RedirectStandardInput = True
        myProcess.StartInfo.RedirectStandardOutput = True
        myProcess.Start()
        Dim myStreamWriter As StreamWriter = myProcess.StandardInput
        Dim mystreamreader As StreamReader = myProcess.StandardOutput
        myStreamWriter.WriteLine("mysql.exe -u root -p koperasi_simpan_pinjam < D:\" & no & ".sql ")
        myStreamWriter.Close()
        myProcess.WaitForExit()
        myProcess.Close()
        myProcess.Close()
        MsgBox("Restore Dari ""d:\" & no & ".sql"" SUKSES", MsgBoxStyle.MsgBoxRight, "Pesan")

    End Sub
End Class

4. Sesuaikan Lokasi Directori file masing2. dan ganti lokasi mysql.exe dan mysqldumb.exe masing.
5. Terus Coba sampai sukses.








4 comments:

  1. terimakasih... tutorialnya sangat membantu,,,,,
    ada permsalahan
    saat backup sudah berhasil tapi pada saat restore data yang dl di backup bukan menambahkan data yang ada sekarang melainkan mengganti data yang sudah ada (data yg sudah ada hilang dan diganti data yg dulu telah dibackup)

    ReplyDelete
  2. fungsi restore yg ini memang untuk memakai data yg dulu sudah di simpan pada file backup.. misalnya untuk melihat database sepuluh hari yang lalu.. untuk merestore data yang seperti anda maksudkan bisa memakai fungsi LOAD DATA INFILE.. hanya saja file backupnya harus yg berasal dari Export/Select into Outfile

    ReplyDelete
  3. Kok file dump -nya g memuat string data tabel sama sekali gan, maaf ni agan ini kayaknya cuma backup nama database aj ya? tidak beserta isinya. mohon pencerahannya...
    -- MySQL dump 10.13 Distrib 5.5.39, for Win32 (x86)
    --
    -- Host: localhost Database: databaseku
    -- ------------------------------------------------------
    -- Server version 5.6.17

    /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
    /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
    /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
    /*!40101 SET NAMES utf8 */;
    /*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
    /*!40103 SET TIME_ZONE='+00:00' */;
    /*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
    /*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
    /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
    /*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;

    ReplyDelete