Nah untuk menanggulangi hal tersebut di atas MySQL telah menyediakan fasilitas khusus yang dinamakan : "mysqldump". Mysqldump adalah file berbentuk .exe (aplication) yang berguna untuk membackup database MySQL. File ini berada satu folder dengan excecutable-nya mysql.exe, yaitu di folder /bin. Untuk menggunakanya kita harus menutup koneksi dulu dengan MySQL dengan perintah mysql_close().
Berikut contohnya dalam command promt :
Database changed
mysql> select * from sd;
+----+--------+------------------+----------------------------------------------+--------------------+
id npsn nama_sd
alamat_sd
kep_sek
+----+--------+------------------+----------------------------------------------+--------------------+
1 123456 SD N Sumoroto Sumoroto, Sidoharjo,
Samigaluh
Dra. Sri Hartini
3 987655 SD N Sidoharjo Gorolangu, Sidoharjo,
Samigaluh, Kulon Progo Dwi Priyanto, S.Pd
4 123456 MIN Bangunrejo Puser, Banjararum, Kalibawang,
Kulon Progo Suratman, S.Pd
5 123456 SDN Sulur
Sulur, Sidoharjo, Samigaluh, Kulon Progo Drs. Sumijo
6 234567 SD N Samigaluh 1 Karang, Gerbosari, Samigaluh, Kulon
Progo Drs. Embuh
+----+--------+------------------+----------------------------------------------+--------------------+
5 rows in set (0.00 sec)
mysql>exit;
Bye
C:\wamp\mysql\bin>mysqldump -u root psb > db_psb.sql
C:\wamp\mysql\bin>dir *.sql
Volume in drive C is System
Volume Serial Number is 8F30-8959
Directory of C:\wamp\mysql\bin
11/05/2010 22:17 7.840 db_psb.sql
27/04/2010 08:48 7.334 perpus.sql
2 File(s) 15.174 bytes
0 Dir(s) 2.225.393.664 bytes free
C:\wamp\mysql\bin>
Pada direktori bin di atas sudah terbentuk file baru bertype .sql dengan nama db_psb.sql, yang nantinya dapat kita import dari phpMyAdmin. Nah sekarang bagaimana jika diterapkan dalam bahasa pemrograman php? Pertanyaan yang bagus :P.
Dalam php dikenal perintah untuk mengeksekusi shell, atau istilahnya untuk menjalankan file bertype .exe (aplication). Fungsi yang digunakan untuk mengeksekusi shell adalah : exec().
Contoh Skripnya secara sederhananya :
$command ="C:\wamp\MySQL\bin\mysqldump -u root db_perpus > backup/$file";
$backup=exec($command);
Untuk mencoba penerapannya dalam aplikasi, copylah skrip-skrip di bawah ini :
1. Buat database dengan nama psb.
CREATE TABLE `sd` (
`id` int(2) NOT NULL auto_increment,
`npsn` varchar(30) NOT NULL,
`nama_sd` varchar(100) NOT NULL,
`alamat_sd` varchar(200) NOT NULL,
`kep_sek` varchar(100) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
INSERT INTO `sd` VALUES (1,'123456','SD N Sumoroto','Sumoroto, Sidoharjo,
Samigaluh','Dra. Sri Hartini'),(3,'987655','SD N Sidoharjo','Gorolangu,
Sidoharjo, Samigaluh, Kulon Progo','Dwi Priyanto, S.Pd'),(4,'123456','MIN
Bangunrejo','Puser, Banjararum, Kalibawang, Kulon Progo','Suratman,
S.Pd'),(5,'123456','SDN Sulur','Sulur, Sidoharjo, Samigaluh, Kulon Progo','Drs.
Sumijo'),(6,'234567','SD N Samigaluh 1','Karang, Gerbosari, Samigaluh, Kulon
Progo','Drs. Embuh');
2. Buatlah sebuah halaman yang berisi link untuk mengarahkan ke skrip proses backup
3. Buatlah file "backup.php" yang berisi perintah untuk membackup
backup/$file";
$backup=exec($command);
// header yang menunjukkan nama file yang akan didownload
header("Content-Disposition: attachment; filename=$file");
// header yang menunjukkan ukuran file yang akan didownload
header("Content-length: $file ");
// header yang menunjukkan jenis file yang akan didownload
header("Content-type:$file ");
// proses membaca isi file yang akan didownload dari folder 'backup'
$fp = fopen("backup/".$file, 'r');
$content = fread($fp, filesize('backup/'.$file));
fclose($fp);
// menampilkan isi file yang akan didownload
echo $content;
if ($backup) {
echo "";
} else {
echo "
";
}
exit;
?>
4. Jika telah berhasil akan didapati sebuah file dengan nama "backup@11-05-2010-22-32-17.sql", angka di belakang @ menunjukkan tanggal backup menurut tanggal sistem operasi. Bagus kan...
5. Cobalah di rumah skrip di atas
Tinggalkan komentar Anda...