數(shù)據(jù)庫(kù)的自動(dòng)備份,可以減輕維護(hù)者的工作量也便于系統(tǒng)恢復(fù),對(duì)于比較重要的數(shù)據(jù)庫(kù),最好還是設(shè)置下自動(dòng)備份。
專注于為中小企業(yè)提供成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)和政免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了上1000+企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過(guò)網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
工具/原料
navicat for mysql
mysql 5.5
方法/步驟
打開(kāi)navicat客戶端,連上mysql后,雙擊左邊你想要備份的數(shù)據(jù)庫(kù)。點(diǎn)擊“計(jì)劃”,再點(diǎn)擊“裂頃正新建批處理作業(yè)”。
雙擊上面的可用任務(wù),它就會(huì)到下面的列表里去,代表你選擇了這個(gè)任務(wù)。
點(diǎn)擊保存,彈出個(gè)命名對(duì)乎伍話框,給這個(gè)任務(wù)取個(gè)名字,肆悔點(diǎn)擊“確定”
點(diǎn)擊“設(shè)置”計(jì)劃任務(wù)。
彈出的對(duì)話框,選擇“計(jì)劃”,再點(diǎn)擊“新建”。
這里設(shè)置為從2014年1月24號(hào)起每天早上九點(diǎn)備份該數(shù)據(jù)庫(kù)。如果想提高備份頻率、或者設(shè)置備份截止日期,請(qǐng)點(diǎn)擊“高級(jí)”。
高級(jí)選項(xiàng)可以把備份設(shè)置的更精細(xì),比如這里設(shè)置的是在24小時(shí)內(nèi)每隔2小時(shí)就備份一次。加上前面的基本設(shè)置,任務(wù)計(jì)劃就是:從2014年1月24號(hào)開(kāi)始,每天九點(diǎn),每隔2小時(shí)備份一次,每天的備份都持續(xù)24小時(shí)。
最后,輸入電腦密碼就大功告成。
下載phpmyadmin ,他是用php語(yǔ)言開(kāi)發(fā)的管理mysql的工具,有導(dǎo)出、導(dǎo)入等功能,解壓復(fù)制一份到你的任意一個(gè)網(wǎng)站目錄下,通過(guò)目錄訪問(wèn)就可以了空前寬,
當(dāng)然你也可以使用帝國(guó)的數(shù)據(jù)庫(kù)備份工具,也很方便的,特別是對(duì)斗亮于數(shù)據(jù)庫(kù)備份這個(gè)功能,比phpmyadmin還悔返強(qiáng)大 予學(xué)PHP培訓(xùn)
一、備份數(shù)據(jù)庫(kù)并下載到本地【db_backup.php】
復(fù)制代碼 代碼如下:
?php
// 設(shè)置SQL文件保存文件名
$filename=date("Y-m-d_H-i-s")."-".$cfg_dbname.".sql";
// 所保存的文件名
header("Content-disposition:filename=".$filename);
header("Content-type:application/octetstream");
header("Pragma:no-cache");
header("雀態(tài)Expires:0");
// 獲取當(dāng)前頁(yè)面文件路敏笑徑,SQL文件就導(dǎo)出到此文件夾內(nèi)
橋歲含 $tmpFile = (dirname(__FILE__))."\\".$filename;
// 用MySQLDump命令導(dǎo)出數(shù)據(jù)庫(kù)
exec("mysqldump -u$cfg_dbuser -p$cfg_dbpwd --default-character-set=utf8 $cfg_dbname ".$tmpFile);
$file = fopen($tmpFile, "r"); // 打開(kāi)文件
echo fread($file,filesize($tmpFile));
fclose($file);
exit;
?
二、還原數(shù)據(jù)庫(kù)【db_restore.php】
復(fù)制代碼 代碼如下:
form id="form1" name="form1" method="post" action=""
【數(shù)據(jù)庫(kù)SQL文件】:input id="sqlFile" name="sqlFile" type="file" /
input id="submit" name="submit" type="submit" value="還原" /
/form
?php
// 我的數(shù)據(jù)庫(kù)信息都存放到config.php文件中,所以加載此文件,如果你的不是存放到該文件中,注釋此行即可;
require_once((dirname(__FILE__).'/../../include/config.php'));
if ( isset ( $_POST['sqlFile'] ) )
{
$file_name = $_POST['sqlFile']; //要導(dǎo)入的SQL文件名
$dbhost = $cfg_dbhost; //數(shù)據(jù)庫(kù)主機(jī)名
$dbuser = $cfg_dbuser; //數(shù)據(jù)庫(kù)用戶名
$dbpass = $cfg_dbpwd; //數(shù)據(jù)庫(kù)密碼
$dbname = $cfg_dbname; //數(shù)據(jù)庫(kù)名
set_time_limit(0); //設(shè)置超時(shí)時(shí)間為0,表示一直執(zhí)行。當(dāng)php在safe mode模式下無(wú)效,此時(shí)可能會(huì)導(dǎo)致導(dǎo)入超時(shí),此時(shí)需要分段導(dǎo)入
$fp = @fopen($file_name, "r") or die("不能打開(kāi)SQL文件 $file_name");//打開(kāi)文件
mysql_connect($dbhost, $dbuser, $dbpass) or die("不能連接數(shù)據(jù)庫(kù) $dbhost");//連接數(shù)據(jù)庫(kù)
mysql_select_db($dbname) or die ("不能打開(kāi)數(shù)據(jù)庫(kù) $dbname");//打開(kāi)數(shù)據(jù)庫(kù)
echo "p正在清空數(shù)據(jù)庫(kù),請(qǐng)稍等....br";
$result = mysql_query("SHOW tables");
while ($currow=mysql_fetch_array($result))
{
mysql_query("drop TABLE IF EXISTS $currow[0]");
echo "清空數(shù)據(jù)表【".$currow[0]."】成功!br";
}
echo "br恭喜你清理MYSQL成功br";
echo "正在執(zhí)行導(dǎo)入數(shù)據(jù)庫(kù)操作br";
// 導(dǎo)入數(shù)據(jù)庫(kù)的MySQL命令
exec("mysql -u$cfg_dbuser -p$cfg_dbpwd $cfg_dbname ".$file_name);
echo "br導(dǎo)入完成!";
mysql_close();
}
?
MySQL備份數(shù)據(jù)庫(kù)的兩個(gè)主要實(shí)際操作方案是采用MySQL(與PHP搭配之最佳組合) dump程序或是直接復(fù)制相關(guān)的數(shù)據(jù)庫(kù)文件(如用cp、cpio或tar等)。當(dāng)然每種實(shí)際應(yīng)用方法都有其優(yōu)缺點(diǎn):
MySQL(和PHP搭配之最佳組合)dump與MySQL(和PHP搭配之最佳組合)服務(wù)器協(xié)同操作。
直接拷貝方法在服務(wù)器外部進(jìn)行,并且你必須采取措施保證沒(méi)有客戶正在修改你將拷貝的表。如果你想用文件系統(tǒng)備份來(lái)備份數(shù)據(jù)庫(kù),也會(huì)發(fā)生同樣的問(wèn)題:
如果數(shù)據(jù)庫(kù)表在文件系統(tǒng)備份過(guò)程中被修改,進(jìn)入備份的表文件主語(yǔ)不一致的狀態(tài),而對(duì)以后的恢復(fù)表將失去意義。文件系統(tǒng)備份與直接拷貝文件的區(qū)別是對(duì)后者你
完全控制了備份過(guò)程,這樣你能采取措施確保服務(wù)器讓表卜困不受干擾。
MySQL(和PHP搭配之最佳組合)dump比直接拷貝要慢些。
MySQL(和PHP搭配之最佳組合)dump生成能夠移植到其它機(jī)器的文本文件,甚至那些有不同硬件結(jié)構(gòu)的機(jī)器上。直接拷貝文件不能移植到其它機(jī)器上,
除非你正在拷貝的表使用MyISAM存儲(chǔ)格式。ISAM表只能在相似的硬件結(jié)構(gòu)的敏祥機(jī)器上拷貝。在MySQL(和PHP搭配之最佳組合)
3.23中引入的MyISAM表存儲(chǔ)格式解決了該問(wèn)題,因?yàn)樵摳袷绞菣C(jī)器無(wú)關(guān)的,所以直接拷貝文件可以移植到具有不同硬件結(jié)構(gòu)的機(jī)器上。只要滿足兩個(gè)條
件:另一臺(tái)機(jī)器必須也運(yùn)行MySQL(和PHP搭配之最佳組合) 3.23或以后版本,而且文件必須以MyISAM格式表示,而不是ISAM格式。
不管你使用哪種備份方法,如果你需要恢復(fù)數(shù)據(jù)庫(kù),有幾個(gè)原則應(yīng)該遵守,以確保最好的結(jié)果:
定期實(shí)施備份。建立一個(gè)計(jì)劃并嚴(yán)格遵守。
讓服務(wù)器執(zhí)行更新日志。當(dāng)你在崩潰后需要恢復(fù)數(shù)據(jù)時(shí),更新日志將幫助你。在你用備份文件恢復(fù)數(shù)據(jù)到型拿念備份時(shí)的狀態(tài)后,你可以通過(guò)運(yùn)行更新日志中的查詢?cè)俅芜\(yùn)用備份后面的修改,這將數(shù)據(jù)庫(kù)中的表恢復(fù)到崩潰發(fā)生時(shí)的狀態(tài)。
以文件系統(tǒng)備份的術(shù)語(yǔ)講,數(shù)據(jù)庫(kù)備份文件代表完全傾倒(full dump),而更新日志代表漸進(jìn)傾倒(incremental dump)。
使用一種統(tǒng)一的和易理解的備份文件命名機(jī)制。象backup1、buckup2等不是特別有意義。當(dāng)實(shí)施你的恢復(fù)時(shí),你將浪費(fèi)時(shí)間找出文件里是什么東西。你可能發(fā)覺(jué)用數(shù)據(jù)庫(kù)名和日期構(gòu)成備份文件名會(huì)很有用。例如:
%MySQL(和PHP搭配之最佳組合)dump samp_db /usr/archives/MySQL(和PHP搭配之最佳組合)/samp_db.1999-10-02
%MySQL(和PHP搭配之最佳組合)dump menagerie /usr/archives/MySQL(和PHP搭配之最佳組合)/menagerie.1999-10-02
本文題目:php備份mysql數(shù)據(jù)庫(kù) php文件備份
當(dāng)前路徑:http://jinyejixie.com/article10/ddpgsdo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信公眾號(hào)、關(guān)鍵詞優(yōu)化、全網(wǎng)營(yíng)銷推廣、搜索引擎優(yōu)化、軟件開(kāi)發(fā)、網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)