Dalam artikel sebelumnya, saya telah menulis artikel cara membuat script PHP untuk backup data MySQL
melalui mysqldump. Pada artikel kali ini saya akan menulis artikel cara
membuat script PHP untuk restore database MySQL sebagai kelanjutan dari
artikel tersebut.
Adapun skenario dari script untuk restore data MySQL sebagai berikut.
Andaikan kita telah memiliki file hasil dump database. Selanjutnya,
untuk merestore hasil dump tersebut kita browse file dump lalu kita klik
tombol prosesnya. Selesai… Namun dalam hal ini, kita sudah tentukan
dulu nama databasenya.
Berikut ini adalah tampilan form untuk melakukan restore data.
Bagaimana dengan ide proses restorenya? Untuk proses restore data di MySQL, kita gunakan perintah
1.
mysql -u[username] -p[
password
] dbname < filedump
[username]
adalah nama user untuk koneksi ke MySQL, [password]
adalah password dari si user. ‘dbname
‘ adalah nama database dimana kita ingin merestore data, dan ‘filedump
‘ adalah nama file hasil dump (backup). Perintah ini nanti dijalankan di dalam shell.Lantas… bagaimana dengan ide script untuk restorenya? OK idenya adalah kita lakukan proses upload file dump melalui form. File dump ini akan diupload ke dalam folder yang sama dengan script untuk restore. Setelah file dump diupload, selanjutnya file dump tersebut akan direstore menggunakan perintah di atas. Begitu proses dump selesai, kita hapus file dump yang kita upload tersebut dengan perintah
unlink()
supaya terhapus secara otomatis.OK.. ide untuk membuat script restore sudah dapat, sekarang kita bisa buat scriptnya.
restore.php
01.
02.
// koneksi ke db mysql
03.
$dbHost
=
"localhost"
;
04.
$dbUser
=
"root"
;
05.
$dbPass
=
"..."
;
06.
$dbName
=
"..."
;
07.
08.
mysql_connect(
$dbHost
,
$dbUser
,
$dbPass
);
09.
mysql_select_db(
$dbName
);
10.
11.
echo
"
Restore Data MySQL
Restore Data MySQL
"
;
12.
13.
echo
"DB Name: "
.
$dbName
;
14.
15.
// form upload file dumo
16.
echo
"
17.
echo
"'hidden'
name=
'MAX_FILE_SIZE'
value=
'20000000'
>
18.
'datafile'
type=
'file'
>
19.
'submit'
type=
'submit'
value=
'Restore'
>";
20.
echo
""
;
21.
22.
// proses restore data
23.
if
(
$_GET
[
'op'
] ==
"restore"
)
24.
{
25.
// baca nama file
26.
$fileName
=
$_FILES
[
'datafile'
][
'name'
];
27.
28.
// proses upload file
29.
move_uploaded_file(
$_FILES
[
'datafile'
][
'tmp_name'
],
$fileName
);
30.
31.
// membentuk string command untuk restore
32.
// di sini diasumsikan letak file mysql.exe terletak di direktori C:\AppServ\MySQL\bin
33.
$string
=
"C:\AppServ\MySQL\bin\mysql -u"
.
$dbUser
.
" -p"
.
$dbPass
.
" "
.
$dbName
.
" < "
.
$fileName
;
34.
35.
// menjalankan command restore di shell via PHP
36.
exec
(
$string
);
37.
38.
// hapus file dump yang diupload
39.
unlink(
$fileName
);
40.
}
41.
42.
?>
Bagaimana? mudah bukan membuatnya? nah silakan adopsi ide di atas ke
dalam aplikasi yang Anda buat sendiri. Sebuah aplikasi tanpa fitur
backup and restore database serasa masakan tanpa garam Selamat mencoba sendiri ya…
EmoticonEmoticon