利用php備份mysql數(shù)據(jù)庫(kù)就是把數(shù)據(jù)生成.sql文件,這樣就算是數(shù)據(jù)備份成功了,恢復(fù)時(shí)也可以直接讀取再一條條執(zhí)行即可,下面整理了一些備份例子大家有興趣的可進(jìn)來(lái)參考.
例子,代碼如下:
- <?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)鬟^(guò)來(lái)的
- 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ù)備份成功";
- ?>
- //例子,代碼如下:
- #!/usr/bin/php m.survivalescaperooms.com
- <?php
- header('Content-Type:text/html;charset=utf-8');
- define('BACK_PATH', dirname(__FILE__));
- /**
- 為空數(shù)組就備份所有數(shù)據(jù)庫(kù)
- */
- $back_databases = array('learning','wp');
- $mysql_host = 'localhost';
- $mysql_user = 'root';
- $mysql_passwd = 'root';
- if($conn = mysql_connect($mysql_host, $mysql_user, $mysql_passwd)){
- $databases = array();
- mysql_select_db('mysql', $conn);
- $query =mysql_query('show databases',$conn);
- while($row = mysql_fetch_array($query))
- {
- if(emptyempty($row)) continue;
- $database = $row[0];
- if(!emptyempty($back_databases) && !in_array($database, $back_databases)) continue;
- $sql_dir = BACK_PATH . "/{$database}.sql";
- $execs = "mysqldump --user={$mysql_user} --password={$mysql_passwd} {$database} > " . $sql_dir;
- system($execs);
- if(file_exists($sql_dir . '.gz')) {
- unlink($sql_dir . '.gz');
- }
- system('gzip ' . $sql_dir);
- }
- }
- //例子,代碼如下:
- <?php
- $host="##mysql服務(wù)器地址##";
- $user="##登錄帳號(hào)##";
- $password="##登錄密碼##";
- $dbname="##數(shù)據(jù)庫(kù)名##";
- $filename="##備份文件路徑##";
- mysql_connect($host,$user,$password);
- mysql_select_db($dbname);
- $mysql.="CREATE DATABASE IF NOT EXISTS `".$dbname."`;\r\n";
- $mysql.="USE `".$dbname."`;\r\n\r\n";
- $q0=mysql_query("set names utf8");
- $q1=mysql_query("show tables");
- while($t=mysql_fetch_array($q1)){
- $table=$t[0];
- $mysql.="DROP TABLE IF EXISTS `".$table."`;\r\n";
- $q2=mysql_query("show create table `$table`");
- $sql=mysql_fetch_array($q2);
- $mysql.=$sql['Create Table'].";\r\n\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";
- }
- $mysql.="\r\n";
- }
- $fp = fopen($filename,'wb');
- fputs($fp,$mysql);
- fclose($fp);
- include_once('lib/pclzip.lib.php');
- $archive = new PclZip($filename.'.zip');
- $v_list = $archive->create($filename);
- if ($v_list == 0) {
- die("Error : ".$archive->errorInfo(true));
- }
- if(file_exists($filename)){
- unlink($filename);
- }
- echo "Mysql's backup successfully to ".$filename.".zip";
- ?>
Zip打包備份代碼,幾乎就是全抄demo,太方便了,代碼如下:
- <?PHP
- include_once('lib/pclzip.lib.php');
- $src="##源路徑##";
- $dest="##目標(biāo)zip路徑##";
- $archive = new PclZip($dest);
- $v_list = $archive->create($src);
- if ($v_list == 0) {
- die("Error : ".$archive->errorInfo(true));
- }else{
- print("Success");
- }
- ?>
pclzip.lib.php這個(gè)壓縮包文件大家百度去下載這里未提供.
新聞熱點(diǎn)
疑難解答