phpcms可以使用多備份進行數(shù)據(jù)庫備份
創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設(shè),大石橋企業(yè)網(wǎng)站建設(shè),大石橋品牌網(wǎng)站建設(shè),網(wǎng)站定制,大石橋網(wǎng)站建設(shè)報價,網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,大石橋網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力。可充分滿足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學習、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。
根據(jù)phpcms的運行環(huán)境,可以選擇web模式備份或者客戶端備份
虛擬主機環(huán)境可以選擇web模式備份。登陸多備份官網(wǎng)后進入多備份控制面板,如果是首次登陸會有備份環(huán)境選項,選擇保護服務(wù)器
選擇web模式,然后選擇數(shù)據(jù)庫備份。如果非首次登陸直接選擇添加,然后選擇數(shù)據(jù)庫備份
選擇好以后添加數(shù)據(jù)庫參數(shù),選擇備份頻率,創(chuàng)建任務(wù)即可。
如果是服務(wù)器環(huán)境,首先進入多備份控制面板,首次登陸會有備份環(huán)境,然后選擇保護服務(wù)器,下載對應(yīng)的客戶端。如果非首次登陸,直接下載左下角的客戶端
下載好以后解壓,打開dbfen.exe,然后登陸多備份賬號,選擇數(shù)據(jù)庫備份,然后填入數(shù)據(jù)庫參數(shù),選擇備份頻率,即可開始備份
一種是寫一個程序 自己本分,
另一種是 用phpadmin 備份。估計服務(wù)商都能支持 phpadmin 吧
即使不支持 你可以自己上傳一個。
使用mysqldump函數(shù)
mysqldump -u username -p dbname table1 table2 ... ? BackupName.sql
dbname參數(shù)表示數(shù)據(jù)庫的名稱
table1和table2參數(shù)表示需要備份的表的名稱,為空則整個數(shù)據(jù)庫備份;
BackupName.sql參數(shù)表設(shè)計備份文件的名稱,文件名前面可以加上一個絕對路徑。通常將數(shù)據(jù)庫被分成一個后綴名為sql的文件。
備份數(shù)據(jù)庫的主要過程:
切換到對應(yīng)的數(shù)據(jù)庫;
使用show create table ?tableName,獲得表結(jié)構(gòu),寫到文件中;
然后查詢所有的表數(shù)據(jù),循環(huán)生成相對應(yīng)sql語句,寫到文件中;
試運行生成的sql文件。
主要是個mysql dump操作,將數(shù)據(jù)庫的數(shù)據(jù)完整導入到txt或者其他文件中就可以的,和php的類相關(guān)很小啊,就是函數(shù)和mysql操作寫對了就好
$msgs[]="服務(wù)器備份目錄為backup";
$msgs[]="對于較大的數(shù)據(jù)表,強烈建議使用分卷備份";
$msgs[]="只有選擇備份到服務(wù)器,才能使用分卷備份功能";
show_msg($msgs);
我想到的有三種思路吧
1.如果服務(wù)器允許mysqldump 并且沒有禁止PHP的shell_exec()這個函數(shù)的話
直接在PHP里面執(zhí)行mysqldump就可以了。
2.通過mysql_query('show tables')的返回值遍歷每個表,循環(huán)對每個表使用查詢語句
select * into outfile '路徑/文件名' from 表名
缺點是這樣得到的是純數(shù)據(jù),恢復(fù)數(shù)據(jù)的時候你需要額外再寫腳本
3.同樣通過show tables返回表名,遍歷每個表,通過select 語句查詢,然后逐條結(jié)果處理,比如手工添加drop table 和create table 以及insert into等等,然后再寫入文件。這樣得到的備份數(shù)據(jù)是比較接近mysqldump的結(jié)果的,各種工具都可以用來恢復(fù)數(shù)據(jù)。缺點是如果數(shù)據(jù)庫太大的話,效率不好說
總之我不推薦用PHP來實現(xiàn)mysql數(shù)據(jù)的備份,如果可能的話還是用mysqldump吧