Selasa, 16 September 2014

CodingShared kali ini akan membagikan script php yang dapat dipergunakan untuk auto back up database MySQL, script ini dilatar belakangi adanya pemintaan dari salah satu client agar program yang ada dapat secara otomatis melakukan backup database tiap bulannya, sehingga user tidak perlu lagi copy paste secara manual untuk melakukan backup database.

Kita akan manfaatkan fitur mysqldump yang sudah tersedia di MySQL. Hanya saja mysqldump ini bentuknya adalah executable file yang harus dijalankan melalui shell. Anda dapat melihat file ini di dalam folder mysql/bin. Jika Anda menggunakan AppServ, maka mysqldump ini terletak di folder C:\AppServ\mysql\bin, dengan dipadu penggunaan date  untuk eksekusi script maka akan menghasilkan auto backup database.

Langsung saja, aplikasi auto backup database dengan script PHP ini terdiri dari tiga bagian, yaitu proses koneksi database (tinggal include jika sebelumnya telah memiliki file koneksi database.), bagian kedua terdiri dari persiapan auto update, dan bagian yang ketiga terdiri dari proses backup database sesuai dengan yang di inginkan.

  • Koneksi database; berikut script koneksi database sebagai contoh kita akan menggunakan database "db_coffee".
<?php
// koneksi database
// setting user,password, nama database
$dbUser="root";
$dbPass="root";
$dbName="db_coffee";
$dbHost = "localhost";

mysql_connect($dbHost, $dbUser, $dbPass);
mysql_select_db($dbName);
?>
  • Persiapan auto update; 
<?php
// cek tanggal back up
$autotgl=date("d");
// nama database
$dbName="db_coffee";
// tanggal auto backup
$tgl=date("m_Y");
// alamat penyimpanan dan nama file backup
$nama_file="D:\DB/".$dbName.$tgl.".sql"; 
// setting alamat penyimpanan file backup.sql
    $almBackup="D:\DB/".$dbName.$tgl."";
    $dbNamaBackup=$dbName.$tgl;
    // list nama tabel yang akan di backup
    // query untuk menampilkan semua tabel dalam database
    $query = "SHOW TABLES";
    $hasil = mysql_query($query);
    $listTabel = "";
        while($data = mysql_fetch_row($hasil))
        {
        $listTabel .= $data[0]." ";
        }

 ?>
  • Proses Backup database MySQL
<?php
// cek apakah ada atau tidak dokumen.sql pada web server dan apakah tanggal juga sesuai
if(!file_exists($nama_file) and $autotgl=="16")
    {
    // membentuk string command menjalankan mysqldump
    // diasumsikan file mysqldump terletak di dalam folder C:\AppServ\MySQL\bin -> sesuaikan dengan webserver yang dimiliki    `
    $command = "D:\HOST\MySQL\bin\mysqldump -u".$dbUser." -p".$dbPass." ".$dbName." ".$listTabel." > ".$almBackup.".sql";
    // perintah untuk menjalankan perintah mysqldump dalam shell melalui PHP
    exec($command);
    echo "file $nama_file sudah Ter BackUp.";
    exit;
    }
else{
echo "Ups, file $nama_file sudah ada.";
}
?>
Categories: , ,

Related post

Subscribe to RSS Feed Follow me on Twitter!