phelium/mysql-backup

轻松备份MySQL数据库!

1.1.0 2023-02-04 20:46 UTC

This package is auto-updated.

Last update: 2024-09-21 09:09:03 UTC


README

介绍

这是一个用于备份数据库的备份实用工具。备份文件包含构建表和插入数据的查询。
您可以选择一些或所有表,将备份压缩为ZIP或GZIP格式,并自动开始下载。

安装

使用Composer,将以下行添加到您的require部分

"phelium/mysql-backup": "dev-master"

然后运行composer update

初始化

require 'vendor/autoload.php';

use Phelium\Component\MySQLBackup;

要初始化MySQLBackup,您必须提供数据库信息

$Dump = new MySQLBackup('server name', 'user name', 'password', 'db name', 'mysql port');

MySQL端口号默认为3306。

使用

添加表

默认情况下,所有表都保存。如果您想保存一个或多个表,必须使用addTableaddTables函数

$Dump = new MySQLBackup('localhost', 'root', '', 'blog');
$Dump->addTable('posts'); // Add the posts table
$Dump->addTables(array('users', 'comments')); // Add the users and comments tables

排除表

您可以通过使用excludeTables函数排除备份中的一些表。参数必须是一个包含要排除的表名的数组。

$Dump = new MySQLBackup('localhost', 'root', '', 'blog');
$Dump->excludeTables(array(comments')); // Exclude comments table to the backup

设置文件名

默认情况下,生成的文件名为"dump_{数据库名}_{日期}"。使用setFilename方法,您可以指定不同的文件名

$Dump = new MySQLBackup('localhost', 'root', '', 'blog');
$Dump->setFilename('bkp_'.time());

不要转储表结构或数据

默认情况下,每个表的结构(结构)和数据都保存。然而,可以使用setDumpStructuresetDumpDatas(默认:true)不保存其中一个或另一个

$Dump = new MySQLBackup('localhost', 'root', '', 'blog');
$Dump->setDumpStructure(false); // Not the structure
$Dump->setDumpDatas(false); // Not the datas

不要添加CREATE DATABASE IF NOT EXISTS

默认情况下,在备份文件顶部添加了CREATE DATABASE IF NOT EXISTS指令。您可以使用addCreateDatabaseIfNotExists禁用它(默认:true)

$Dump = new MySQLBackup('localhost', 'root', '', 'blog');
$Dump->addCreateDatabaseIfNotExists(false); // Not add the CREATE DATABASE IF NOT EXISTS statment

不要添加DROP TABLE

默认情况下,在每次CREATE TABLE之前添加了DROP TABLE IF EXISTS指令。您可以使用addDropTable禁用它(默认:true)

$Dump = new MySQLBackup('localhost', 'root', '', 'blog');
$Dump->addDropTable(false); // Not add the DROP TABLE IF EXISTS statment

不要添加IF NOT EXISTS

默认情况下,在CREATE TABLE期间添加了IF NOT EXISTS指令。您可以使用addIfNotExists禁用它(默认:true)

$Dump = new MySQLBackup('localhost', 'root', '', 'blog');
$Dump->addIfNotExists(false); // Not add the IF NOT EXISTS statment

压缩文件

要压缩输出文件,setCompress允许使用ZIP或GZIP(默认:不压缩)

$Dump = new MySQLBackup('localhost', 'root', '', 'blog');
$Dump->setCompress('zip'); // zip | gz | gzip

删除文件

可以使用setDelete自动删除生成的文件(默认:false)

$Dump = new MySQLBackup('localhost', 'root', '', 'blog');
$Dump->setDelete(true);

自动下载

要自动下载生成的文件,请使用setDownload(默认:false)

$Dump = new MySQLBackup('localhost', 'root', '', 'blog');
$Dump->setDownload(true); // starts downloading

执行备份

要开始备份数据库,请使用dump

$Dump = new MySQLBackup('localhost', 'root', '', 'blog');
$Dump->dump();

完整示例

以下是一个备份blog数据库的示例。仅保留表postscommentsusers。然后以ZIP格式压缩。生成的文件将从服务器上删除,并自动开始下载

<?php
require 'vendor/autoload.php';
    
use Phelium\Component\MySQLBackup;

$Dump = new MySQLBackup('localhost', 'root', '', 'blog');
$Dump->addTables(array('posts', 'comments', 'users'));
$Dump->setCompress('zip');
$Dump->setDelete(true);
$Dump->setDownload(true);
$Dump->dump();

// or

$Dump = new MySQLBackup('localhost', 'root', '', 'blog');
$Dump
    ->addTables(array('posts', 'comment', 'users'));
    ->setCompress('zip');
    ->setDelete(true);
    ->setDownload(true);
    ->dump();