PHP 備份 mysql 數(shù)據(jù)庫(kù)的源代碼,在完善的 PHP+Mysql 項(xiàng)目中,在后臺(tái)都會(huì)有備份 Mysql 數(shù)據(jù)庫(kù)的功能,有了這個(gè)功能,對(duì)于一些不便自己寫shell腳本備份的VPS來說,就不用使用 FTP 或者使用 mysql 的管理工具進(jìn)行 mysql 數(shù)據(jù)庫(kù)備份下載,非常方便。
下面是一個(gè)php數(shù)據(jù)庫(kù)備份的源代碼,大家也可以根據(jù)自己的需求進(jìn)行修改。
?php // 備份數(shù)據(jù)庫(kù) $host = "localhost"; $user = "root"; //數(shù)據(jù)庫(kù)賬號(hào) $password = ""; //數(shù)據(jù)庫(kù)密碼 $dbname = "mysql"; //數(shù)據(jù)庫(kù)名稱 // 這里的賬號(hào)、密碼、名稱都是從頁(yè)面?zhèn)鬟^來的 if (!mysql_connect($host, $user, $password)) // 連接mysql數(shù)據(jù)庫(kù) { echo '數(shù)據(jù)庫(kù)連接失敗,請(qǐng)核對(duì)后再試'; exit; } if (!mysql_select_db($dbname)) // 是否存在該數(shù)據(jù)庫(kù) { echo '不存在數(shù)據(jù)庫(kù):' . $dbname . ',請(qǐng)核對(duì)后再試'; exit; } mysql_query("set names 'utf8'"); $mysql = "set charset utf8;\r\n"; $q1 = mysql_query("show tables"); while ($t = mysql_fetch_array($q1)) { $table = $t[0]; $q2 = mysql_query("show create table `$table`"); $sql = mysql_fetch_array($q2); $mysql .= $sql['Create Table'] . ";\r\n"; $q3 = mysql_query("select * from `$table`"); while ($data = mysql_fetch_assoc($q3)) { $keys = array_keys($data); $keys = array_map('addslashes', $keys); $keys = join('`,`', $keys); $keys = "`" . $keys . "`"; $vals = array_values($data); $vals = array_map('addslashes', $vals); $vals = join("','", $vals); $vals = "'" . $vals . "'"; $mysql .= "insert into `$table`($keys) values($vals);\r\n"; } } $filename = $dbname . date('Ymjgi') . ".sql"; //存放路徑,默認(rèn)存放到項(xiàng)目最外層 $fp = fopen($filename, 'w'); fputs($fp, $mysql); fclose($fp); echo "數(shù)據(jù)備份成功"; ?>
PHP執(zhí)行Mysql數(shù)據(jù)庫(kù)的備份和還原
使用mysqldump命令備份
mysqldump命令將數(shù)據(jù)庫(kù)中的數(shù)據(jù)備份成一個(gè)文本文件。表的結(jié)構(gòu)和表中的數(shù)據(jù)將存儲(chǔ)在生成的文本文件中。
mysqldump命令的工作原理很簡(jiǎn)單。它先查出需要備份的表的結(jié)構(gòu),再在文本文件中生成一個(gè)CREATE語(yǔ)句。然后,將表中的所有記錄轉(zhuǎn)換成一條INSERT語(yǔ)句。然后通過這些語(yǔ)句,就能夠創(chuàng)建表并插入數(shù)據(jù)。
mysqldump基本語(yǔ)法:
mysqldump -u username -p password dbname table1 table2 ...-> BackupName.sql
$exec="D:/phpstudy/mysql/bin/mysqldump -u".$db_user." -p".$db_pwd." ".$db_name." > ".$name; exec($exec); //前面要設(shè)置mysql執(zhí)行文件的路徑。
注意:這里的-p后面的password不要有空格,否則可能只會(huì)生成空的sql文件,后面$name是生成文件路徑及名稱。
簡(jiǎn)單的備份數(shù)據(jù)庫(kù)就完成了。
還原使用mysqldump命令備份的數(shù)據(jù)庫(kù)的語(yǔ)法
mysql -u root -p password dbname backup.sql
參數(shù)跟備份時(shí)一樣,backup.sql
是需要還原的數(shù)據(jù)庫(kù)文件,文件路徑為絕對(duì)路徑。
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接
標(biāo)簽:遼陽(yáng) 十堰 韶關(guān) 梅河口 甘肅 涼山 昭通 九江
巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《PHP后臺(tái)備份MySQL數(shù)據(jù)庫(kù)的源碼實(shí)例》,本文關(guān)鍵詞 PHP,后臺(tái),備份,MySQL,數(shù)據(jù)庫(kù),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。