1. 程式人生 > >PHP 備份還原 MySql 數據庫

PHP 備份還原 MySql 數據庫

說明 當前 沒有 原生 錯誤 自動 0.12 php pdo

原生 PHP 備份還原 MySql 數據庫

支持 MySql,PDO 兩種方式備份還原
php5.5 以上的版本建議開啟pdo擴展,使用 pdo 備份還原數據
備份文件夾 db_backup、import/log 文件要有讀寫權限

環境版本

本人測試環境 php:5.5.38 /5.6.27-nts/7.0.12-nts; mysql: 5.5.53 ; apache: Apache/2.4.23 (Win32)
集成環境 phpStudy,其他環境未測試

備份/還原文件目錄

備份、還原數據文件存放 db_backup 文件夾
備份文件夾可以通過 backup/Backup.php  屬性 $back_dir 修改 備份文件存放位置
還原導入數據文件夾可以通過 import/Import.php  屬性 $back_dir 修改還原文件存放位置

示例 sql 文件:

標註表名、表與表直接的分割示例    db_backup/xxx.sql 文件

備份還原數據文件說明

|---備份文件大小可以通過 Backup.php 中 $size 設置,默認2MB,其他設置也可在 Backup.php 的屬性中設置
|---備份數據如果是一卷命名為:文件名_自定義標識+0.sql,例如 cms_v0.sql
|---如果是多卷命名為:文件名_自定義標識+數字第幾卷.sql,例如 cms_v1.sql,cms_v2.sql,依次類推
|---還原數據時如果檢測到有 cms_v0.sql 文件只會還原一卷
|---如果沒有檢測到cms_v0.sql就查找 cms_v1.sql,如果檢測到有cms_v1.sql文件,就會還原cms_v1.sql,cms_v2.sql…… 文件

backup php 備份mysql 數據庫

|---當前操作用戶對備份目錄有創建刪除權限 數據表有創建刪除的權限
|---備份文件名默認 數據庫名為前綴,如果備份文件夾下存在相同文件名自動覆蓋,備份前請查看備份文件是否存在相同前綴文件名
|---如果想修改備份文件命名前綴 請在BackData.php // 備份文件名可以自定義  下2行處修改

文件說明

backup/    
|---backup.php 調用父類【基類】
|---PdoSql.php pdo類備份
|---MySql.php  mysql類備份
|---BackData.php 備份數據實例化類
|---dome.php 調用測試文件

import php 還原 mysql 數據庫

|---當前操作用戶對備份目錄、日誌目錄有創建刪除權限 數據表有創建刪除的權限
|---還原數據庫文件需放在 import 同級目錄 db_backup/ 目錄下,還原文件名(按照備份文件名格式)文件名_自定義標識+數字第幾卷.sql,例如 cms_v0.sql
|---如果數據還原失敗,數據回滾到沒有還原前,如果是sql語法致命錯誤,程序會直接停止運行,以上版本包括當前版本都無法回滾數據

還原不是使用 備份類備份的 sql 數據需要註意幾點

1: 備份文件名前綴+ 標示名+數字.sql
	<數字>0代表只還原這一個,數字從1依次還原多個
  	標示名可以自定義 默認 $back_file_fu="_v";

2: 備份文件的第一卷需要在 sql 文件的開頭添加(標註)要還原的表名;
   如果sql文件開頭沒有要還原的表名,調用 ImportData->import_exec() 函數添加最後一個參數$table_name=false;
   如果想添加請在第一卷 註釋 sql 的開頭下面添加如下格式的表名:
	    格式 -- ##* 表名|表名|表名 ##* --
	    可以自定義格式  $import_table_fu=" ##* ";

3:使用其他工具導出的 sql 文件需要查看表與表之間的分割符是否 Import.php 下的 table_fu() 函數定義的一致,
   如果不一致,需要修改為一致,也可修改 table_fu() 函數的格式
	< 防止sql 語句過大程序卡死 >
	table_fu() 格式:
		$create_table=PHP_EOL;
		$create_table.=‘-- ‘.str_repeat(‘--‘,30).PHP_EOL;
		$create_table.=PHP_EOL;

文件說明

import/    
|---Import.php 調用父類【基類】
|---PdoSql.php pdo類還原
|---MySql.php  mysql類還原
|---ImportData.php 還原數據實例化類
|---dome.php 調用測試文件

項目詳細介紹

PHP 備份還原 MySql 數據庫