大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 hot資訊 SQL數據庫備份的兩種方法

SQL數據庫備份的兩種方法

更新時間:2021-08-16 10:30:20 來源:動力節點 瀏覽1304次

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

第一種:使用mysqldump結合exec函數進行數據庫備份操作。

代碼如下:

/**
 * Subject: php-mysql 實現數據庫備份.
 * User: luokakale
 * Date: 2018/11/9
 * Time: 13:31
 */
header('Content-Type:text/html;charset=utf8');
ini_set("max_execution_time", "0");//代碼運行時間不限制  防止備份失敗
ini_set('memory_limit', '128M');//設置內存 根據需求可以修改
date_default_timezone_set("PRC");
//創建需要保存sql文件的文件夾
$path = 'D:\SQL\databse_backup';
//定義數據庫配置
$user = ''; //數據庫賬戶
$pwd  = ''; //數據庫密碼
$dbname = ''; //數據庫名稱
//備份數據庫命令地址文件
$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);
}
//備份的數據庫文件名
$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;
//執行命令
exec($order);

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

第二種:使用php+mysql+header函數進行數據庫備份和下載操作。

代碼如下:

header('Content-Type:text/html;charset=utf8');
ini_set("max_execution_time", "0");//代碼運行時間不限制  防止備份失敗
ini_set('memory_limit', '1024M');//設置內存 根據需求可以修改
date_default_timezone_set("PRC");
header("Content-Type:text/html;charset=utf-8");
$host="";
$user="";//賬戶
$password="";//密碼
$dbname="";//數據庫名稱
$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"; //文件名為當天的日期
$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 進行輸出,否則下載的文家是空白的
echo fread($fp,$file_size);
fclose($fp);
exit;

建議用第一種,第二種太消耗內存了。

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

以上就是動力節點小編介紹的"SQL數據庫備份的兩種方法",希望對大家有幫助,想了解更多可查看數據庫教程。動力節點在線學習教程,針對沒有任何Java基礎的讀者學習,讓你從入門到精通,主要介紹了一些Java基礎的核心知識,讓同學們更好更方便的學習和了解Java編程,感興趣的同學可以關注一下。

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 成人网欧美亚洲影视图片 | 欧美精品另类 | 欧美色视频日本片免费高清 | 色综合成人 | 在线观看人成网站深夜免费 | 精品小视频在线观看 | 神马影院888不卡院 神马影院不卡不卡在线观看 | 网站一级片| 国产欧美一区二区三区观看 | 香蕉在线网站 | 国产成人精品福利色多多 | 在线91精品亚洲网站精品成人 | 欧美性狂猛bbbbxxxx | 国产一级淫片a免费播放口欧美 | 日本不卡中文字幕 | 一级黄网站 | 欧美午夜寂寞影院安卓列表 | 精品少妇一区二区三区视频 | 国产成人精品本亚洲 | 中文字幕亚洲无线码在线一区 | 亚洲精品国产第一区二区图片 | 日韩欧美一级毛片精品6 | 四虎影视在线影院www | 亚洲欧洲国产成人精品 | 成人久久18免费游戏网站 | 香蕉国产精品 | 国产l精品国产亚洲区在线观看 | 久久婷婷五夜综合色频 | 91拍拍在线观看 | 粗大猛烈进出呻吟声的视频 | 日本久久99 | 十八毛片 | 免费国产一区二区在免费观看 | 99国产精品视频久久久久 | 国产精品视频男人的天堂 | 欧美不卡视频在线 | 狠狠草视频 | 日本精品久久久中文字幕 | 亚洲精品免费日日日夜夜夜夜 | 综合色婷婷 | 久久久日韩精品国产成人 |