Backup MySQL Menggunakan PHP dan Scheduled Tasks

Backup MySQL Menggunakan PHP dan Scheduled Tasks
Assalamualaikum, Salam Ramadhan dan Salam Hormat kepada semua pengunjung AIDC. Post kali ini saya ingin kongsikan kepada anda semua untuk membuat Backup database MySQL dengan menggunakan skrip PHP. Selain daripada menggunakan PHP, anda juga boleh menggunakan Scheduled Tasks (Windows) bersama dengan fail .bat. Contohnya saya akan tunjuk di bawah nanti. Semoga dengan dua kaedah ini dapat membantu anda dalam membuat proses backup.

1. Menggunakan PHP

<?php
/**
* @author Ammar Idris
* @web http://www.ammaridris.com
* @relese_date 24 Aug 2011, 24 Ramadhan 1432
*/

db_backup('hostname','user','password','namadb'); // CONTOH : db_backup('localhost','root','r0o0tZ','aiblog');

function db_backup($host,$user,$pass,$namadb,$tables = '*')
{
$link = mysql_connect($host,$user,$pass);
mysql_select_db($namadb,$link);

if($tables == '*')
{
$tables = array();
$result = mysql_query('SHOW TABLES');
while($row = mysql_fetch_row($result))
{
$tables[] = $row[0];
}
}
else
{
$tables = is_array($tables) ? $tables : explode(',',$tables);
}

foreach($tables as $table)
{
$result = mysql_query('SELECT * FROM '.$table);
echo mysql_error();
$num_fields = mysql_num_fields($result);

$return.= 'DROP TABLE '.$table.';';
$row2 = mysql_fetch_row(mysql_query('SHOW CREATE TABLE '.$table));
$return.= "\n\n".$row2[1].";\n\n";

for ($i = 0; $i < $num_fields; $i++)
{
while($row = mysql_fetch_row($result))
{
$return.= 'INSERT INTO '.$table.' VALUES(';
for($j=0; $j<$num_fields; $j++)
{
$row[$j] = addslashes($row[$j]);
$row[$j] = ereg_replace("\n","\\n",$row[$j]);
if (isset($row[$j])) { $return.= '"'.$row[$j].'"' ; } else { $return.= '""'; }
if ($j<($num_fields-1)) { $return.= ','; }
}
$return.= ");\n";
}
}
$return.="\n\n\n";
}

$handle = fopen('db_backup_'.$namadb.'_'.date('dmY').'.sql','w+');
fwrite($handle,$return);
fclose($handle);
echo "Selesai...";
}
?>
  1. Copy script tersebut ke Notepad dan save kan kepada file backup_php.php
  2. Letakkan di dalam web server anda dan run

2. Menggunakan Scheduled Tasks (Windows)

@echo off
set month=%date:~3,2%
set day=%date:~0,2%
set year=%date:~6,4%
set Srcdir="C:\apps\mysql\data"
set Dstdir="D:\Backup"
echo %year%
xcopy %Srcdir% %Dstdir%\%month%-%day%-%year%-backup\mysqldata\ /h/k/i/s/y
  1. Copy script tersebut ke Notepad dan save kan kepada file backup_task.bat
  2. set Srcdir="C:\apps\mysql\data" - lokasi folder database
  3. set Dstdir="D:\Backup" - lokasi simpanan backup
  4. Letakkan file backup_task.bat tersebut di lokasi yang bersesuaian, saya pilih untuk meletakkan di C:/
  5. Pergi ke Control Panel > Scheduled Tasks > Add Scheduled Tasks > Next > Browse > (Pilih lokasi backup_task.bat tersebut) > Pilih sama ada Daily, Weekly, Monthly dan sebagainya. Saya pilih Weekly > Masukkan Start time dan days > Masukkan username dan password (jika ada) > Finish.
Ok, selamat mencuba.

Tulis Komen Anda

Mari Dekati, Mari Berhubung Dengan AI

Ikuti AMANI

Ikuti perkembangan AMANI hanya di AMANI@AIDC.

Ole'Ole dari AIDC

Dapatkan Ole'Ole dari AIDC di ruangan Muat Turun.

Mobile Devices

Kini, anda boleh Layari AIDC melalui Mobile Devices Anda.