koyabu/mysqlbackup 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

koyabu/mysqlbackup

Composer 安装命令:

composer require koyabu/mysqlbackup

包简介

README 文档

README

composer require koyabu/mysqlbackup

Change log

Requirement

  • MySQL with mysqldump set to Global
  • PHP 8+ and composer
  • PHP MySQLi enable
  • Cron job or Task Scheduler
  • bzip2 (optional, only if compress set = true)

Feature

  • Backup Daily
  • Backup Monthly
  • Backup Weekly
  • Backup All (with exeption filter)
  • Save to Dropbox
  • Save to Google Drive
  • Auto Delete old file
  • Log File: /your-backup-dir/data.json
  • Log File: /your-backup-dir/backup.json >> backup log
  • Don't remove file /your-backup-dir/gdrive.json if you sync to Google Drive it will create new folder if folder_id not found in gdrive.json

Sample Code

<?php
use Koyabu\MysqlBackup\Backup;

/**
 * Note:
 * You need to set your `mysqldump` execution to Global
 * or you can set mysqldump path location
 * Linux Example:
 * $Backup->setMysqlDumpPath('/usr/bin/');
 * Windows Example:
 * $Backup->setMysqlDumpPath('C:\\Program Files\\MySQL\\MySQL Server 5.7\\bin\\');
 *
 * You can run this script with cron job or task scheduler
 * set to run everyday (see cron manual or task scheluder manual):
 * /usr/bin/php sqlbackup.php > /dev/null 2>&1 &
 *
 * For Windows recommended use .bat file
 */
$config = [
    'mysql' => [
        'host' => 'localhost',
        'user' => 'root',
        'pass' => '',
        'port' => '3306',
        'data' => 'test'
    ],
    /**
     * Dropbox Sync
     * please read >> https://github.com/stievenk/DropboxAPIClient
    */
    'dropbox' => [
        'sync'              => false,
        'app_key'           => '',
        'app_secret'        => '',
        'access_token'      => '',
        'refresh_token'      => '',
        'auto_refresh'      => true,
        'home_dir'          => '/SQL-Backup/'
    ],
    /**
     * Google Drive Sync
    */
    'gdrive' => [
        'sync'              => false,
        'client_id'         => '',
        'client_secret'     => '',
        'access_token'      => '',
        'refresh_token'     => '',
        'redirect_uri'      => 'http://localhost',
        'folder'            => 'SQL-backup'
    ],

    'zip' => [
        'compress'          => false,
        'exec'              => 'bzip2 -z --force'
    ]
];

include 'vendor/autoload.php';

$Backup = new Backup($config);

// $Backup->removeOldFile($num_file_to_keep,$boolean_remove_remote_file_dropbox_gdrive);
// Remove Old File and keep latest 10
$Backup->removeOldFile(10,true);

// Database to Skip backup
$Backup->skipAlways(['performance_schema','mysql','test']);

/*
Set Dir where file backup will be saved
*/
$Backup->setDir('./data/sqlbackup/');

// Backup Daily for specific database
$Backup->Daily(['db1']);
// if parameter = null -> this will backup all database; alias $Backup->All();

// Backup Monthly specific database every date 28 of month
$Backup->Monthly(['db2'],28);

// Backup Every week on Thursday (0 = Sunday, 6 = Saturday)
$Backup->Weekly(['db3'],4);

/*
* Example: All DB Backup
* $Backup->All();
* this is Alias for $Backup->Daily(); without parameter
*
* or you can backup all database with filter parameter:
* $Backup->All($arrayDB_toSkip);
*
* Example: All DB Backup except aknj and wagw
* $Backup->All(['aknj','wagw']);
*/
//

$file_prefix = '';
$file_sufix = '_'.date("Y-m-d");
$Backup->run($file_prefix, $file_sufix, true);
?>

Contact Me

If you want request some feature please contact me at stieven.kalengkian@gmail.com

统计信息

  • 总下载量: 6
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2025-05-01