Bảo đảm an toàn dữ liệu bằng việc sao lưu Database tự động bằng PHP

  • 25/06/2014
  • 978
  • 0
Trong quá trình quản lý website. Việc backup dữ liệu là rất quan trọng khi mà website của bạn luôn đứng trước nguy cơ bị tấn công hay phá hoại dữ liệu.

Đối với hầu hết các website, nhất là những website với dữ liệu giá trị như website bán hàng thì việc sao lưu database là việc làm thường xuyên và không thể thiếu. Chúng ta không thể biết khi nào thì dữ liệu quý báu của chúng ta sẽ gặp sự cố khi bị hacker thăm nom hay hosting bị lỗi. Nếu các bạn không có nhiều thời gian dành cho việc này thì sao không thực hiện tự động hóa nó ngay bây giờ bằng vài dòng code PHP đơn giản. Làm xong việc này, bạn có thể ngồi ung dung mà nghe nhạc xem phim mà không lo lắng đến chuyện database gặp sự cố nữa.

backup database

Đầu tiên, bạn cần tạo một file php và đặt tên là connection.php. File này sẽ đảm nhiệm việc kết nối tới database mà chúng ta cần.

01
02
03
04
05
06
07
08
09
10
11
<!--?php
  $host="localhost";
  $uname="YourUserName";
  $pass="YourPassword";
  $database = "YourDatabaseName";
$connection=mysql_connect($host,$uname,$pass);
or die("Database Connection Failed");
$se-lectdb=mysql_se-lect_db($database) or die("Database could not be se-lected");
$result=mysql_se-lect_db($database)
or die("database cannot be se-lected
"
);
?>
 

Giải thích thì khá lằng nhằng và không cần thiết đối với những bạn chỉ quản trị mà không biết nhiều về code. Các bạn chỉ cần tạo một file mới, copy toàn bộ code dưới đây và paste vào bên trong file vừa tạo.

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
<!--?php
include("connection.php");
function backup_db(){
/* Luu tru tat ca ten Table vao mot mang */
$allTables = array();
$result = mysql_query('SHOW TABLES');
while($row = mysql_fetch_row($result)){
     $allTables[] = $row[0];
}
foreach($allTables as $table){
$result = mysql_query('SE-LECT * F-ROM '.$table);
$num_fields = mysql_num_fields($result);
 
$return.= 'D-ROP TABLE IF EXISTS '.$table.';';
$row2 = mysql_fetch_row(mysql_query('SHOW CRE-ATE TABLE '.$table));
$return.= "\n\n".$row2[1].";\n\n";
 
for ($i = 0; $i < $num_fields; $i++) {
while($row = mysql_fetch_row($result)){
   $return.= 'IN-SERT INTO '.$table.' VALUES(';
     for($j=0; $j<$num_fields; $j++){
       $row[$j] = addslashes($row[$j]);
       $row[$j] = str_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";
}
// Tao Backup Folder
$folder = 'DB_Backup/';
if (!is_dir($folder))
mkdir($folder, 0777, true);
chmod($folder, 0777);
 
$date = date('m-d-Y-H-i-s', time());
$filename = $folder."db-backup-".$date;
 
$handle = fopen($filename.'.sql','w+');
fwrite($handle,$return);
fclose($handle);
}
// Goi ham thuc thi
backup_db();
?>

Từ nay, mỗi khi cần sao lưu database thì bạn chỉ cần chạy file php này là xong. Thông qua bài viết này, hy vọng các bạn webmaster có thể tiết kiệm được nhiều thời gian cũng như tăng thêm kiến thức trong việc quản trị website và sử dụng php. Bạn có thể xem qua bài viết Cải thiện thời gian truy cập website bằng việc tối ưu hóa CSS

  Ý kiến bạn đọc

Bạn cần trở thành thành viên của nhóm để có thể bình luận bài viết này. Nhấn vào đây để đăng ký làm thành viên nhóm!
Bạn đã không sử dụng Site, Bấm vào đây để duy trì trạng thái đăng nhập. Thời gian chờ: 60 giây