Free Ebook Tutorial from Rosihan Ari's Blog

Tutorial Javascript | Tutorial PHP | Tutorial AJAX | Tutorial CSS | Tutorial FPDF | Tutorial Wordpress | Tutorial Java SE


Ebook yang direkomendasikan untuk Anda
Ebook Panduan Praktis OOP di PHP


Membuat Sendiri Script PHP Untuk Backup MySQL


March 22nd, 2010 | by rosihanari | Cetak Artikel Cetak Artikel


GampSMS SMS Gateway

Melalui artikel ini saya akan mencoba memaparkan bagaimana cara membuat sendiri script PHP untuk keperluan backup MySQL menggunakan fasilitas mysqldump. Meskipun kita dapat dengan mudah membackup (dump) data-data yang tersimpan di MySQL menggunakan phpMyAdmin, tapi mungkin diantara Anda ingin membuat sendiri script untuk backup sebagai salah satu fitur aplikasi web yang sedang Anda buat.

Berikut ini tampilan script backup data MySQL yang nanti akan kita buat

script dump mysql

Pada tampilan di atas, kita bisa memilih tabel-tabel yang kita ingin backup dengan melakukan check pada pilihan yang disediakan. Setelah tombol ‘Backup Data’ diklik, maka kita bisa mendownload file backupnya.

script dump mysql

Seperti yang saya sampaikan di atas bahwa untuk keperluan backup data (dumping) MySQL ini nanti 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

Terus… bagaimana cara menjalankan mysqldump ini? Berikut ini perintahnya

mysqldump -u[user] -p[password] [namadb] [tabel1 tabel2 ...] > filebackup.sql

Perintah di atas digunakan untuk melakukan backup tabel1, tabel2, … dst yang ada di database bernama ‘namadb‘. Hasil backup tersebut disimpan di file bernama ‘filebackup.sql‘. Sedangkan [user] dan [password] itu adalah user dan password untuk koneksi ke mysqlnya.

OK.. sekarang kita mulai membuat script PHP nya. Pertama kita siapkan dahulu script untuk koneksi ke MySQL nya

koneksi.php

<?php
$dbUser = "...";
$dbPass = "...";
$dbName = "...";
$dbHost = "localhost";

mysql_connect($dbHost, $dbUser, $dbPass);
mysql_select_db($dbName);
?>

Berikutnya kita buat script untuk menampilkan daftar tabel yang ada di database yang kita sudah kita tentukan di $dbName pada file koneksi.php di atas. Daftar tabel ini nanti kita letakkan dalam sebuah form.

Untuk menampilkan semua tabel dalam sebuah database, gunakan query SQL

SHOW TABLES;

Ini dia script untuk menampilkan daftar tabel dalam formnya

dump.php

<?php
// membaca file koneksi.php
include "koneksi.php";

echo "<h1>Dump MySQL</h1>";
echo "<h3>Nama Database: ".$dbName."</h3>";
echo "<h3>Daftar Tabel</h3>";

// query untuk menampilkan semua tabel dalam database
$query = "SHOW TABLES";
$hasil = mysql_query($query);

// menampilkan semua tabel dalam form
echo "<form method='post' action='proses.php'>";
echo "<table>";
while ($data = mysql_fetch_row($hasil))
{
   echo "<tr><td><input type='checkbox' name='tabel[]' value='".$data[0]."'></td><td>".$data[0]."</td></tr>";
}
echo "</table><br>";
echo "<input type='submit' name='submit' value='Backup Data'>";
echo "</form>";

?>

Terakhir… kita buat script proses.php untuk memproses backupnya. Dalam proses.php ini nanti, terdapat 2 bagian perintah, yaitu bagian untuk proses dump (backup) data serta bagian untuk proses download file hasil backup. Di sini diasumsikan nama file hasil backup adalah sama dengan nama databasenya.

proses.php

<?php
// membaca file koneksi.php
include "koneksi.php";

// membaca tabel-tabel yang dipilih dari form
$tabel = $_POST['tabel'];

// proses untuk menggabung nama-nama tabel yang dipilih
// sehingga menjadi sebuah string berbentuk 'tabel1 tabel2 tabel3 ...'

$listTabel = "";
foreach($tabel as $namatabel)
{
  $listTabel .= $namatabel." ";
}

// membentuk string command menjalankan mysqldump
// diasumsikan file mysqldump terletak di dalam folder C:\AppServ\MySQL\bin

$command = "C:\AppServ\MySQL\bin\mysqldump -u".$dbUser." -p".$dbPass." ".$dbName." ".$listTabel." > ".$dbName.".sql";

// perintah untuk menjalankan perintah mysqldump dalam shell melalui PHP
exec($command);

// bagian perintah untuk proses download file hasil backup.

header("Content-Disposition: attachment; filename=".$dbName.".sql");
header("Content-type: application/download");
$fp  = fopen($dbName.".sql", 'r');
$content = fread($fp, filesize($dbName.".sql"));
fclose($fp);

echo $content;

exit;
?>

Sederhana bukan membuatnya? Mudah-mudahan artikel di atas berguna bagi Anda yang ingin membuat sistem backup data MySQL. Nantikan artikel berikutnya di blog ini mengenai cara restore data dari file hasil backup (dumping). Sabar dulu ya…. :-)




Share ke Facebook Share ke Twitter
Baca Juga Artikel Terkait
Membuat Sendiri Script Excerpt (Cuplikan) Artikel Ala WordPress
Teknik Debugging Script PHP + MySQL
Script Proses Edit File Yang Telah Diupload Ke Database MySQL
Script PHP untuk Membuat Report Format MS. Excel
Ide Membuat Script Upload Download File Dengan Batasan Hak Akses

Kata kunci: backup mysql - mysqldump - script backup - script dump mysql - script php backup -


Ada 65 komentar dalam artikel ini.



  1. septiyo says:

    Pak, walau keliatannya gak nyambung, tapi saya berteimakasih atas buku tutorial untuk FPDF nya..^_^, karena memang itu yg saya butuhkan, penjelasnnya fungsi2 yg ada. Makasih bnnyak pak

  2. Idian says:

    Fungsi exec di windows kok gak jalan ya ? apa ada modul yang harus saya aktifkan pak ? mohon bantuanya

  3. Kastam says:

    Dari sekian jumlah nama tabel dalam database itu, mengapa hanya satu tabel yang bisa di DUMP dan tidak kebawa semua isinya.

    Apa ada batasan besarannya…?
    Padahal di list yang di pilih malah BUKAN yang ingin di DUMP. tapi yang ke dump adalah tabel lain.

  4. nano says:

    Pak kalau di share hosting caranya gimana buat backup database mysql ???

  5. burhan says:

    terima kasih sudah mau share, ini sangat bermanfaaat bagi saya !!!

  6. vhi says:

    d windows 7 tidak jalan mas . why?

  7. adul says:

    saya sudah coba scriptnya, setelah di jalankan, hasil dump filenya hanya berisi script error

    Warning: fread() [function.fread]: Length parameter must be greater than 0 in C:\xampp\htdocs\dump\proses.php on line 31

    mohon bantuannya pak masih newbi

  8. Syahrul says:

    Salam Pak Rosihan,
    Saya sudah coba scrip dump mysql ini, tapi ada masalah pada scriptnya karena isi dari tabel yang sy backup tidak ikut terbackup..
    Mohon pencerahannya.
    Terimakasih sebelumnya

  9. Uchiha says:

    Gan ane Dah coba Koq di notepad Keluarx kyak gini:

    Warning: fread() [function.fread]: Length parameter must be greater than 0 in C:\xampp\htdocs\tes\BackUpdb2\proses.php on line 30

    kenapa ea gan????
    Mohon Pencerahannya… Thanks

  10. gufronsp says:

    Thx buat infonya.

    gan ada info buat backup db postgresql di php gak?

    ane butuh buat PA ane nih.

  11. Ferdhika says:

    Sangat bermanfaat bagi newbie seperti saya.. :D

  12. Maaf, pa’ saya sudah mencoba di windows 7 tapi kok ga bisa ya? ga muncul error tapi scriptnya tidak berjalan… ??? mohon bantuannya ..

  13. gilang says:

    pak, ko waktu ke backup sqlnya kosong yah, alias 0 byte, saya pake xampp,, mohon bantuanya,,

  14. Tri Wahyu says:

    pak sudah saya coba tp sqlnya malah jadi kayak gini
    b>Warning: fopen(namadatabase.sql) [function.fopen]: failed to open stream: No such file or directory in C:\xampp\htdocs\namafolder\proses.php on line 42

    Warning: filesize() [function.filesize]: stat failed for monografi.sql in C:\xampp\htdocs\namafolder\proses.php on line 44

    Warning: fread() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\namafolder\proses.php on line 44

    Warning: fclose() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\namafolder\proses.php on line 46

  15. Gunawan says:

    Pak Kalo Xampp diinstal di drive D bagaimana ya alamaatnya apakah D:\xampp\mysql\bin\mysqdump saya sudah coba tapi muncul kesalahan object not found

    • xamppMan says:

      saya sudah coba di D juga gak bisa, udah pusing juga edit2 scriptnya. coba pake yg ini dan pelajari deh http://davidwalsh.name/backup-mysql-database-php

      copy pasti ke php tinggal nambahin di akhir, trus di script baris 1 itu ganti nama database, user dan passwordnya

      mudah2an admin bisa bales kekurangan di scriptnya, soalnya ane belajar php 70 dr blog ini :)



 

Komentar/pertanyaan Anda!

Mohon maaf, komentar/pertanyaan yang menggunakan email palsu atau komentar bernada negatif, cemooh, umpatan, cacian atau sejenisnya secara otomatis akan terhapus karena dianggap spam dan tidak akan tampil

Dimohon jangan pula memasukkan code program dalam bentuk apapun ke dalam komentar karena akan dianggap spam.

Mohon maaf jika seandainya ada beberapa pertanyaan Anda yang tidak direspon atau ditanggapi mengingat banyaknya komentar yang masuk dan keterbatasan kemampuan/ilmu saya dalam menjawab pertanyaan satu persatu. Saya harap Anda bisa memahami dan memakluminya.

Semua komentar atau pertanyaan yg masuk tidak akan langsung tampil di halaman ini, karena akan dimoderasi dahulu.


*