PHP 備份 mysql 數據庫的源代碼,在完善的 PHP+Mysql 項目中,在后臺都會有備份 Mysql 數據庫的功能,有了這個功能,對于一些不便自己寫shell腳本備份的VPS來說,就不用使用 FTP 或者使用 mysql 的管理工具進行 mysql 數據庫備份下載,非常方便。
下面是一個php數據庫備份的源代碼,大家也可以根據自己的需求進行修改。
<?php // 備份數據庫$host = "localhost";$user = "root"; //數據庫賬號$password = ""; //數據庫密碼$dbname = "mysql"; //數據庫名稱// 這里的賬號、密碼、名稱都是從頁面傳過來的if (!mysql_connect($host, $user, $password)) // 連接mysql數據庫{ echo '數據庫連接失敗,請核對后再試'; exit;} if (!mysql_select_db($dbname)) // 是否存在該數據庫{ echo '不存在數據庫:' . $dbname . ',請核對后再試'; 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"; //存放路徑,默認存放到項目最外層$fp = fopen($filename, 'w');fputs($fp, $mysql);fclose($fp);echo "數據備份成功";?>
PHP執行Mysql數據庫的備份和還原
使用mysqldump命令備份
mysqldump命令將數據庫中的數據備份成一個文本文件。表的結構和表中的數據將存儲在生成的文本文件中。
mysqldump命令的工作原理很簡單。它先查出需要備份的表的結構,再在文本文件中生成一個CREATE語句。然后,將表中的所有記錄轉換成一條INSERT語句。然后通過這些語句,就能夠創建表并插入數據。
mysqldump基本語法:
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);//前面要設置mysql執行文件的路徑。
注意:這里的-p后面的password不要有空格,否則可能只會生成空的sql文件,后面$name是生成文件路徑及名稱。
簡單的備份數據庫就完成了。
還原使用mysqldump命令備份的數據庫的語法
mysql -u root -p password dbname < backup.sql
參數跟備份時一樣,backup.sql
是需要還原的數據庫文件,文件路徑為絕對路徑。
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對VeVb武林網的支持。
新聞熱點
疑難解答
圖片精選