rodziu / mysql-backup-restore
PHP cli 的简单、选择性 MySQL 备份和恢复工具。
这个包的官方仓库似乎已经不存在,因此该包已被冻结。
1.0.1
2018-03-14 13:33 UTC
Requires
- php: >=7.1
- ext-pdo: *
This package is not auto-updated.
Last update: 2023-03-24 13:18:46 UTC
README
轻松创建选定 MySQL 数据库或对象的备份(表、视图、过程、函数、触发器和事件)。备份将作为 Phar 归档创建,允许您仅恢复备份的选定部分。
可以使用 PHP API 或 CLI 二进制文件创建备份。
先决条件
- PHP 7.1+,
- PDO 扩展,
- composer :).
安装
对于单个项目
composer require rodziu/mysql-backup-restore
或全局安装
composer global require rodziu/mysql-backup-restore
作为 PHP API 使用
<?php
use Rodziu\MySQLBackupRestore\Backup;
// Backup constructor takes an instance of existing PDO connection as first parameter
$pdo = new \PDO("mysql:host=localhost;charset=utf8mb4");
$backup = new Backup($pdo);
// optionally you can pass $defaultDatabase & $verbose parameters
//
$objects = ['some_table']; // see possible objects definition below
$objects = $backup->parseObjectsArray($objects);
$dbObjects = $backup->getDbObjects(array_keys($objects)); // gets all MySQL objects from provided databases
$backupList = $backup->getBackupList($dbObjects, $objects); // compares possible MySQL objects with objects marked to backup
$backup->createDump($backupList, '/path/to/backup.phar');
可能的对象数组定义
您可以通过以下方式之一定义要备份的对象数组:
- 对象名称(表、视图、过程、函数、触发器和事件)的一维数组 - 脚本将自动在数据库中搜索它们,并指定它们的类型,
- 多维数组,具有可能的键
- table | view | procedure | function | trigger | event - 必须将预设键类型的对象数组作为值给出(例如
['table' => ['table1', 'tabala2']]
) - db - 然后,您可以输入要执行备份的其他数据库名称。
- table | view | procedure | function | trigger | event - 必须将预设键类型的对象数组作为值给出(例如
例如
<?php
['table_name', 'procedure_name']; // backup 'table_name' and 'procedure_name'
['table' => ['name'], 'procedure' => ['name']]; // backup table 'name' and procedure 'name'
['db' => 'database_name']; // backup whole database 'database_name'
['db' => ['database_name']]; // same as above
['db' => ['database_name' => ['table' => 'table_name']]]; // backup table 'table_name' from 'database_name' database
['name', 'db' => 'database_name']; // backup object 'name' from default database and whole database 'database_name'
从 CLI 使用
Usage: ./mysql-backup [OPTIONS] /path/to/backup.phar database [objects]
OR ./mysql-backup [OPTIONS] /path/to/backup.phar --databases DB1 [DB2 DB3...]
OPTIONS:
-h, --host Host used in connection (defaults to localhost)
-u, --user User used in connection (defaults to root)
-p, --password Password used in connection (defaults to no password)
恢复备份
只需从 CLI 执行 phar 归档。它将询问您想恢复哪些对象。