ddddd

php实现备份数据库

作者:程序员11 时间:2021-04-19 人气:550 QQ交流群\邮箱:1003265987@qq.com
php实现备份数据库 exec、system,备份成本地数据库文件
要展示的内容
//php实现备份数据库----------system
public function dataBackup(){
   $doc_root=$_SERVER['DOCUMENT_ROOT'];
   $file_path_name=$doc_root.'/sqlbackup';  //保存到的路径
   $name='backup_'.date('YmdHis').".sql";
   if(!file_exists($file_path_name)){mkdir($file_path_name,0777);}
   $mysqldump_url='G:phpstudyPHPTutorialMySQLinmysqldump.exe';//mysqldump.exe的绝对路径,安装mysql自带的有,可以搜索一下路径
   $host='127.0.0.1';//数据库所在的服务器地址
   $User='root';//数据库用户名
   $Password='root';//数据库密码
   $databaseName='kuer';//数据库名
   $process=$mysqldump_url." -h".$host." -u".$User."  -p".$Password."  ".$databaseName." >".$file_path_name."/".$name;
   $er=system($process);//system()执行外部程序,并且显示输出
   if($er!==false){
      echo json_encode('success!');
   }else{
      echo json_encode('error!');
   }
}

//php实现备份数据库----------exec
public function bak($parameter){
    $method = new Method();
    $model = new dbModel();
    $model->bak();
    $ROOT = ROOT;
    $date = date('Y_m_d__H_i_s');
    $year = $_POST['year'];
    $quarter = $_POST['quarter'];
    $mysqldump = sys_mysqldump;
    $DB_HOST = DB_HOST;
    $DB_USER = DB_USER;
    $DB_PASSWORD = DB_PASSWORD;
    $DB_NAME = "aa_{$year}_{$quarter}";
    $DB_NAME_PUBLIC = "public";

    $method->_mkdir('/db');
    $year_def = $GLOBALS['CACHE_SYSTEM']['joinYear'];
    $quarter_def = $GLOBALS['CACHE_SYSTEM']['joinQuarter'];
    $dir = "/db/{$year_def}_{$quarter_def}";
    $method->_mkdir($dir);

    $cmd = "{$mysqldump} -h{$DB_HOST} -u{$DB_USER} -p{$DB_PASSWORD} {$DB_NAME} > {$ROOT}{$dir}/{$date}.{$DB_NAME}.sql";
    exec($cmd,$output,$status);

    $cmd_public = "{$mysqldump} -h{$DB_HOST} -u{$DB_USER} -p{$DB_PASSWORD} {$DB_NAME_PUBLIC} > {$ROOT}{$dir}/{$date}.{$DB_NAME_PUBLIC}.sql";
    exec($cmd_public,$output,$status);

    //写入备份日志
    $value_old = $method->getCache("{$dir}/db_bak_log.ini");
    $u_id =  $method->getSession('u_id');
    $date_array = explode('__',$date);
    $time = implode('-',explode('_',$date_array[0])).' '.implode(':',explode('_',$date_array[1]));
    $value_old[] = ["{$date}.{$DB_NAME}.sql","{$date}.{$DB_NAME_PUBLIC}.sql",$year_def,$quarter_def,$u_id,$time];
    $method->setCache("{$dir}/db_bak_log.ini", $value_old);

    if(count($value_old)>3){
        $first_item = array_shift($value_old);
        unlink("{$ROOT}{$dir}/{$first_item[0]}");
        unlink("{$ROOT}{$dir}/{$first_item[1]}");
        $method->setCache("{$dir}/db_bak_log.ini", $value_old);
    }

    /*echo $ret_public;                #默认只返回第一行结果
    echo "
";
    echo "****************************************************";
    echo "
";
    echo "Status: ",$status;         #打印出执行状态码
    echo "
";
    echo "****************************************************";
    $length=count($output);       #数组的长度
    for($i=0;$i



温馨提示:

欢迎阅读本文章,觉得有用就多来支持一下,没有能帮到您,还有很多文章,希望有一天能帮到您。

php实现备份数据库---相关文章


评论区

ddddd

程序员-学习的网站-想学习编程的码农可以进来看看

首页

视频教程

购物车

我的订单