久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

數(shù)據(jù)庫中有哪兩種數(shù)據(jù)庫備份

145次閱讀
沒有評論

共計(jì) 2856 個字符,預(yù)計(jì)需要花費(fèi) 8 分鐘才能閱讀完成。

自動寫代碼機(jī)器人,免費(fèi)開通

丸趣 TV 小編給大家分享一下數(shù)據(jù)庫中有哪兩種數(shù)據(jù)庫備份,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

數(shù)據(jù)庫備份的兩種方法是:1、使用 mysqldump 結(jié)合 exec 函數(shù)進(jìn)行數(shù)據(jù)庫備份;2、使用【php+mysql+header】函數(shù)進(jìn)行數(shù)據(jù)庫備份。

數(shù)據(jù)庫備份是必要的一般都是使用 mysqldump 進(jìn)行備份,我這邊寫了兩種備份方法可以參考一下。

第一種:使用 mysqldump 結(jié)合 exec 函數(shù)進(jìn)行數(shù)據(jù)庫備份操作。

代碼如下

/**
 * Subject: php-mysql  實(shí)現(xiàn)數(shù)據(jù)庫備份.
 * User: luokakale
 * Date: 2018/11/9
 * Time: 13:31
 */
header( Content-Type:text/html;charset=utf8 
ini_set( max_execution_time ,  0 // 代碼運(yùn)行時間不限制   防止備份失敗
ini_set( memory_limit ,  128M // 設(shè)置內(nèi)存   根據(jù)需求可以修改
date_default_timezone_set( PRC 
// 創(chuàng)建需要保存 sql 文件的文件夾
$path =  D:\SQL\databse_backup 
// 定義數(shù)據(jù)庫配置
$user =   // 數(shù)據(jù)庫賬戶
$pwd =   // 數(shù)據(jù)庫密碼
$dbname =   // 數(shù)據(jù)庫名稱
// 備份數(shù)據(jù)庫命令地址文件
$sqladdress =  D:\phpStudy\MySQL\bin\mysqldump.exe 
// 備份指定地址
$time = time();
$path =  D:\SQL\databse_backup . \\ .date(Ymd ,$time);
if(!file_exists($path))
 mkdir($path,0777,true);
// 備份的數(shù)據(jù)庫文件名
$sqlFile = $dbname. _%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%.sql 
// 判斷是否存在密碼
$password = $pwd==  ? :  -p .$pwd;
// 拼接備份命令
$order = $sqladdress.  --opt -u .$user.$password.   .$dbname.   .$path. \\ .$sqlFile;
// 執(zhí)行命令
exec($order);

我使用的是集成的 phpstudy 里面的 mysql 下面的 mysqldump.exe 來備份,備份的數(shù)據(jù)庫名字寫法是 數(shù)據(jù)庫名字 + 年月日時.   上面代碼中我對數(shù)據(jù)庫密碼進(jìn)行了判斷,我這邊有些數(shù)據(jù)庫是不需要密碼的。最后使用 exec 執(zhí)行命令。

第二種:使用 php+mysql+header 函數(shù)進(jìn)行數(shù)據(jù)庫備份和下載操作。

代碼如下:

header( Content-Type:text/html;charset=utf8 
ini_set( max_execution_time ,  0 // 代碼運(yùn)行時間不限制   防止備份失敗
ini_set( memory_limit ,  1024M // 設(shè)置內(nèi)存   根據(jù)需求可以修改
date_default_timezone_set( PRC 
header( Content-Type:text/html;charset=utf-8 
$host= 
$user= // 賬戶
$password= // 密碼
$dbname= // 數(shù)據(jù)庫名稱
$con = mysqli_connect( $host , $user , $password , $dbname 
mysqli_select_db($con,$dbname);
$mysql=  set charset utf8;\r\n #for mysql =5.0
mysqli_query($con, SET NAMES  UTF8 
$q1=mysqli_query($con, show tables 
while($t=mysqli_fetch_array($q1)){ $table=$t[0];
 $q2=mysqli_query($con, show create table `$table` 
 $sql=mysqli_fetch_array($q2);
 $mysql.=$sql[Create Table]. \r\n\r\n #DDL
 $q3=mysqli_query($con, select * from `$table` 
 while($data=mysqli_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 
 unset($data);
 }
 $mysql.= \r\n 
 unset($t);
mysqli_close($con);
$filename=date(Ymj). .sql  // 文件名為當(dāng)天的日期
$time = time();
$path =  D:\SQL\databse_backup . \\ .date(Ymd ,$time). \\ 
//  檢查目錄是否存在
if(!is_dir($path)){
 //  新建目錄
 mkdir($path, 0777, true);
$file_name = $path.$filename;
$fp = fopen($file_name, w 
fputs($fp,$mysql);
fclose($fp);
$fp=fopen($file_name, r 
$file_size=filesize($file_name);
header( Content-type: application/octet-stream 
header( Accept-Ranges: bytes 
header(Accept-Length:  .$file_size);
header(Content-Disposition: attachment; filename= .$filename);
// 這里一定要使用 echo  進(jìn)行輸出,否則下載的文家是空白的
echo fread($fp,$file_size);
fclose($fp);
exit;

個人建議用第一種,第二種太消耗內(nèi)存了。

第一種可以做成定時備份,windows 下可以用定時任務(wù)。

以上是“數(shù)據(jù)庫中有哪兩種數(shù)據(jù)庫備份”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注丸趣 TV 行業(yè)資訊頻道!

向 AI 問一下細(xì)節(jié)

正文完
 
丸趣
版權(quán)聲明:本站原創(chuàng)文章,由 丸趣 2023-12-16發(fā)表,共計(jì)2856字。
轉(zhuǎn)載說明:除特殊說明外本站除技術(shù)相關(guān)以外文章皆由網(wǎng)絡(luò)搜集發(fā)布,轉(zhuǎn)載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 师宗县| 吉水县| 缙云县| 儋州市| 福泉市| 盐城市| 罗定市| 绥中县| 武陟县| 洪雅县| 定州市| 兴业县| 淳安县| 工布江达县| 延川县| 上蔡县| 黔东| 紫金县| 玉田县| 塔河县| 犍为县| 临汾市| 开远市| 汉中市| 德庆县| 囊谦县| 类乌齐县| 唐山市| 新晃| 呼图壁县| 新乡县| 沭阳县| 龙里县| 右玉县| 大余县| 乐至县| 汨罗市| 贵德县| 宝坻区| 增城市| 仁寿县|