zoukankan      html  css  js  c++  java
  • PHP备份数据库

      

    <?php
    //每天早上备份一次 MySQL 数据库并自动打包,同时删除 5 天前的备份文件 建议在本地运行没有任何问题再传到服务器上 以后就可以添加计划任务
    ////////////////////////*/
    //保存目录,路径要用反斜杠.您需要手动建立它.
    //WinRAR.exe 要把压缩包的exe文件跟当前运行页面放在同一个目录,当然你也可以自己配置,这样才能压缩
    ini_set("max_execution_time", "0");//代码运行时间不限制 防止备份失败
    ini_set('memory_limit', '128M');//设置内存 根据需求可以修改
    date_default_timezone_set("PRC");
    $store_folder = 'D:workspacewww/codesql_backup';
    if(!file_exists($store_folder))
    {
    mkdir($store_folder);
    }
    //用户名和密码
    //该帐号须有操作[所有]的数据库及FILE的权限

    //否则有些数据库不能备份.
    $db_username = "root";
    $db_password = "root";
    $time=time();
    $nowdir = $store_folder."\".date("Ymd",$time)."";
    $con = mysqli_connect("localhost", "root", "root");
    if(!file_exists($nowdir))
    {
    mkdir($nowdir);
    }
    if(!$con)
    {
    die('Could not connect: ' . mysqli_connect_error());
    }
    echo "正在备份请勿关闭页面....</br>";
    ob_flush();
    flush();
    sleep(1);
    //数据库执行文件地址
    $mysqladdres='C:programDedeAMPZ esourcesappinMariadbinmysqldump.exe';//我的服务器是 phpmystudy 根据自己的情况设置
    $res = mysqli_query($con,'show databases');
    $data = array();
    echo str_repeat(" ", 4096); //防止浏览器的缓存
    while ($row = mysqli_fetch_assoc($res))
    {
    $data[] = $row['Database'];
    system ($mysqladdres.' --opt '."$row[Database] -u{$db_username} ".($db_password?"-p{$db_password}":"")." > $nowdir\$row[Database].sql");
    echo "dumping database `$row[Database]`...</br>";
    ob_flush();
    flush();
    sleep(1);
    }
    echo " Winrar loading...</br> ";
    //error handler function
    function customError($errno, $errstr){
    echo "<b>Error:</b> [$errno] $errstr";
    }

    //set error handler
    set_error_handler("customError");
    system("Z:\Program Files\WinRAR\WinRAR.exe a -ep1 -r -o+ -m5 -df "$nowdir.rar");
    $rar="$store_folder\".date("Ymd",$time-86400*5).".rar";
    //删除 5 天前的文件
    if(file_exists($rar))
    {
    @unlink($rar);
    }
    ob_flush();
    flush();
    sleep(1);
    echo " OK!</br>";
    mysqli_close($con);
    ob_end_flush();
    ?>

  • 相关阅读:
    Linux systemtap定位系统IO资源使用情况(ok)
    DISK 100% BUSY,谁造成的?(ok)
    容易被误读的IOSTAT
    利用BLKTRACE分析IO性能
    iowait 过高问题的查找及解决linux
    top后台执行显示:top: failed tty get 错误
    Nginx解读内置非默认模块 ngx_http_stub_status_module
    Nginx健康检查模块
    平滑升级你的Nginx
    Practice telephone techniques
  • 原文地址:https://www.cnblogs.com/init-007/p/9954140.html
Copyright © 2011-2022 走看看