PHP 备份还原 MySql 数据库
生活随笔
收集整理的這篇文章主要介紹了
PHP 备份还原 MySql 数据库
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
原生 PHP 備份還原 MySql 數(shù)據(jù)庫(kù)
支持 MySql,PDO 兩種方式備份還原 php5.5 以上的版本建議開(kāi)啟pdo擴(kuò)展,使用 pdo 備份還原數(shù)據(jù) 備份文件夾 db_backup、import/log 文件要有讀寫權(quán)限環(huán)境版本
本人測(cè)試環(huán)境 php:5.5.38 /5.6.27-nts/7.0.12-nts; mysql: 5.5.53 ; apache: Apache/2.4.23 (Win32) 集成環(huán)境 phpStudy,其他環(huán)境未測(cè)試備份/還原文件目錄
備份、還原數(shù)據(jù)文件存放 db_backup 文件夾 備份文件夾可以通過(guò) backup/Backup.php 屬性 $back_dir 修改 備份文件存放位置 還原導(dǎo)入數(shù)據(jù)文件夾可以通過(guò) import/Import.php 屬性 $back_dir 修改還原文件存放位置示例 sql 文件:
標(biāo)注表名、表與表直接的分割示例 db_backup/xxx.sql 文件備份還原數(shù)據(jù)文件說(shuō)明
|---備份文件大小可以通過(guò) Backup.php 中 $size 設(shè)置,默認(rèn)2MB,其他設(shè)置也可在 Backup.php 的屬性中設(shè)置 |---備份數(shù)據(jù)如果是一卷命名為:文件名_自定義標(biāo)識(shí)+0.sql,例如 cms_v0.sql |---如果是多卷命名為:文件名_自定義標(biāo)識(shí)+數(shù)字第幾卷.sql,例如 cms_v1.sql,cms_v2.sql,依次類推 |---還原數(shù)據(jù)時(shí)如果檢測(cè)到有 cms_v0.sql 文件只會(huì)還原一卷 |---如果沒(méi)有檢測(cè)到cms_v0.sql就查找 cms_v1.sql,如果檢測(cè)到有cms_v1.sql文件,就會(huì)還原cms_v1.sql,cms_v2.sql…… 文件backup php 備份mysql 數(shù)據(jù)庫(kù)
|---當(dāng)前操作用戶對(duì)備份目錄有創(chuàng)建刪除權(quán)限 數(shù)據(jù)表有創(chuàng)建刪除的權(quán)限 |---備份文件名默認(rèn) 數(shù)據(jù)庫(kù)名為前綴,如果備份文件夾下存在相同文件名自動(dòng)覆蓋,備份前請(qǐng)查看備份文件是否存在相同前綴文件名 |---如果想修改備份文件命名前綴 請(qǐng)?jiān)贐ackData.php // 備份文件名可以自定義 下2行處修改文件說(shuō)明
backup/ |---backup.php 調(diào)用父類【基類】 |---PdoSql.php pdo類備份 |---MySql.php mysql類備份 |---BackData.php 備份數(shù)據(jù)實(shí)例化類 |---dome.php 調(diào)用測(cè)試文件import php 還原 mysql 數(shù)據(jù)庫(kù)
|---當(dāng)前操作用戶對(duì)備份目錄、日志目錄有創(chuàng)建刪除權(quán)限 數(shù)據(jù)表有創(chuàng)建刪除的權(quán)限 |---還原數(shù)據(jù)庫(kù)文件需放在 import 同級(jí)目錄 db_backup/ 目錄下,還原文件名(按照備份文件名格式)文件名_自定義標(biāo)識(shí)+數(shù)字第幾卷.sql,例如 cms_v0.sql |---如果數(shù)據(jù)還原失敗,數(shù)據(jù)回滾到?jīng)]有還原前,如果是sql語(yǔ)法致命錯(cuò)誤,程序會(huì)直接停止運(yùn)行,以上版本包括當(dāng)前版本都無(wú)法回滾數(shù)據(jù)還原不是使用 備份類備份的 sql 數(shù)據(jù)需要注意幾點(diǎn)
1: 備份文件名前綴+ 標(biāo)示名+數(shù)字.sql<數(shù)字>0代表只還原這一個(gè),數(shù)字從1依次還原多個(gè)標(biāo)示名可以自定義 默認(rèn) $back_file_fu="_v";2: 備份文件的第一卷需要在 sql 文件的開(kāi)頭添加(標(biāo)注)要還原的表名;如果sql文件開(kāi)頭沒(méi)有要還原的表名,調(diào)用 ImportData->import_exec() 函數(shù)添加最后一個(gè)參數(shù)$table_name=false;如果想添加請(qǐng)?jiān)诘谝痪?注釋 sql 的開(kāi)頭下面添加如下格式的表名:格式 -- ##* 表名|表名|表名 ##* --可以自定義格式 $import_table_fu=" ##* ";3:使用其他工具導(dǎo)出的 sql 文件需要查看表與表之間的分割符是否 Import.php 下的 table_fu() 函數(shù)定義的一致,如果不一致,需要修改為一致,也可修改 table_fu() 函數(shù)的格式< 防止sql 語(yǔ)句過(guò)大程序卡死 >table_fu() 格式:$create_table=PHP_EOL;$create_table.='-- '.str_repeat('--',30).PHP_EOL;$create_table.=PHP_EOL;文件說(shuō)明
import/ |---Import.php 調(diào)用父類【基類】 |---PdoSql.php pdo類還原 |---MySql.php mysql類還原 |---ImportData.php 還原數(shù)據(jù)實(shí)例化類 |---dome.php 調(diào)用測(cè)試文件項(xiàng)目詳細(xì)介紹
轉(zhuǎn)載于:https://www.cnblogs.com/xuey/p/9804681.html
總結(jié)
以上是生活随笔為你收集整理的PHP 备份还原 MySql 数据库的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 我想问四川下省属事业单位报名人数在哪查询
- 下一篇: 用php生成HTML文件的类