1、如果服務(wù)器允許mysqldump 并且沒有禁止PHP的shell_exec()這個函數(shù)的話
我們提供的服務(wù)有:成都網(wǎng)站制作、成都網(wǎng)站設(shè)計、外貿(mào)營銷網(wǎng)站建設(shè)、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、古城ssl等。為上千多家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的古城網(wǎng)站制作公司
直接在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ù)庫太大的話,效率不好說
mysql數(shù)據(jù)庫的備份方式有很多;
例如:
1、使用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的文件;
基本使用:
2、管理工具
phpcms可以使用多備份進(jìn)行數(shù)據(jù)庫備份
根據(jù)phpcms的運行環(huán)境,可以選擇web模式備份或者客戶端備份
虛擬主機(jī)環(huán)境可以選擇web模式備份。登陸多備份官網(wǎng)后進(jìn)入多備份控制面板,如果是首次登陸會有備份環(huán)境選項,選擇保護(hù)服務(wù)器
選擇web模式,然后選擇數(shù)據(jù)庫備份。如果非首次登陸直接選擇添加,然后選擇數(shù)據(jù)庫備份
選擇好以后添加數(shù)據(jù)庫參數(shù),選擇備份頻率,創(chuàng)建任務(wù)即可。
如果是服務(wù)器環(huán)境,首先進(jìn)入多備份控制面板,首次登陸會有備份環(huán)境,然后選擇保護(hù)服務(wù)器,下載對應(yīng)的客戶端。如果非首次登陸,直接下載左下角的客戶端
下載好以后解壓,打開dbfen.exe,然后登陸多備份賬號,選擇數(shù)據(jù)庫備份,然后填入數(shù)據(jù)庫參數(shù),選擇備份頻率,即可開始備份
$msgs[]="服務(wù)器備份目錄為backup";
$msgs[]="對于較大的數(shù)據(jù)表,強烈建議使用分卷備份";
$msgs[]="只有選擇備份到服務(wù)器,才能使用分卷備份功能";
show_msg($msgs);
備份數(shù)據(jù)庫的數(shù)據(jù)就可以了。
備份的方法:
1、本地備份-適用于獨立主機(jī)或VPS:使用本機(jī)程序?qū)W(wǎng)站文件及數(shù)據(jù)庫進(jìn)行備份。
2、異地備份-適用于虛擬主機(jī)/空間:使用FTP程序?qū)⑽募螺d回本機(jī)備份,數(shù)據(jù)庫使用本機(jī)的數(shù)據(jù)庫管理程序進(jìn)行遠(yuǎn)程備份。
備份的類型:
1、完整備份-所整個網(wǎng)站的文件都備份一次。優(yōu)點:可以把整個網(wǎng)站都完整備份一次。缺點:費時費資源。
2、差異備份-只備份有改變的文件。優(yōu)點:每次只把有改變過的文件備份下來。相同的文件就不會再備份一次了,省時省力。