登录
首页 >  数据库 >  MySQL

透过 Crontab 排程备份 Mariadb (Mysql)使用 php

来源:SegmentFault

时间:2023-02-24 15:14:02 429浏览 收藏

对于一个数据库开发者来说,牢固扎实的基础是十分重要的,golang学习网就来带大家一点点的掌握基础知识点。今天本篇文章带大家了解《透过 Crontab 排程备份 Mariadb (Mysql)使用 php》,主要介绍了MySQL、PHP、MariaDB、php7、crontab,希望对大家的知识积累有所帮助,快点收藏起来吧,否则需要时就找不到了!

本教学将使用纯 php 去备份资料库并下载到目录底下

$ crontab -e

设定每天凌晨00:00 执行

0 0 * * * php /var/www/backup.php

backup.php 脚本记得开头一定要 「

header('Content-Type: text/html; charset=utf-8');
function backup_mysql_database($options){
$mtables = array(); $contents = "-- Database: `".$options['db_to_backup']."` --\n";

$mysqli = new mysqli($options['db_host'], $options['db_uname'], $options['db_password'], $options['db_to_backup']);
if ($mysqli->connect_error) {
    die('Error : ('. $mysqli->connect_errno .') '. $mysqli->connect_error);
}
$mysqli->query("SET NAMES utf8");
$mysqli->set_charset("utf8mb4");
$results = $mysqli->query("SHOW TABLES");

while ($row = $results->fetch_array()){
    if (!in_array($row[0], $options['db_exclude_tables'])){
        $mtables[] = $row[0];
    }
}

foreach($mtables as $table){
    $contents .= "-- Table `".$table."` --\n";

    $results = $mysqli->query("SHOW CREATE TABLE ".$table);
    while ($row = $results->fetch_array()){
        $contents .= $row[1].";\n\n";
    }

    $results = $mysqli->query("SELECT * FROM ".$table);
    $row_count = $results->num_rows;
    $fields = $results->fetch_fields();
    $fields_count = count($fields);

    $insert_head = "INSERT INTO `".$table."` (";
    for($i=0; $i name."`";
            if($i 0){
        $r = 0;
        while ($row = $results->fetch_array()){
            if(($r % 400) == 0){
                $contents .= $insert_head;
            }
            $contents .= "(";
            for($i=0; $i real_escape_string($row[$i]));

                switch($fields[$i]->type){
                    case 8: case 3:
                        $contents .= $row_content;
                        break;
                    default:
                        $contents .= "'". $row_content ."'";
                }
                if($i  'localhost',
    'db_uname' => 'root', // 资料库使用者帐号
    'db_password' => 'password', // 资料库密码
    'db_to_backup' => 'db', // 资料库名称
    'db_backup_path' => '/var/www/', // 保存到哪个路径
    'db_exclude_tables' => array()
);
$backup_file_name=backup_mysql_database($options);

这样就可以透过 php 备份到该主机下,直接产生 sql 档了。

參考
https://ianakaberlin.medium.c...

本篇关于《透过 Crontab 排程备份 Mariadb (Mysql)使用 php》的介绍就到此结束啦,但是学无止境,想要了解学习更多关于数据库的相关知识,请关注golang学习网公众号!

声明:本文转载于:SegmentFault 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>