码迷,mamicode.com
首页 > 数据库 > 详细

PHP 备份还原 MySql 数据库

时间:2018-10-17 16:44:29      阅读:184      评论:0      收藏:0      [点我收藏+]

标签:tps   blank   use   com   sql   target   读写   支持   相同   

原生 PHP 备份还原 MySql 数据库

支持 MySql,PDO 两种方式备份还原
php5.5 以上的版本建议开启pdo扩展,使用 pdo 备份还原数据
备份文件夹 db_backup、import/log 文件要有读写权限

环境版本

本人测试环境 php:5.5.38 /5.6.27-nts/7.0.12-nts; mysql: 5.5.53 ; apache: Apache/2.4.23 (Win32)
集成环境 phpStudy,其他环境未测试

备份/还原文件目录

备份、还原数据文件存放 db_backup 文件夹
备份文件夹可以通过 backup/Backup.php  属性 $back_dir 修改 备份文件存放位置
还原导入数据文件夹可以通过 import/Import.php  属性 $back_dir 修改还原文件存放位置

示例 sql 文件:

标注表名、表与表直接的分割示例    db_backup/xxx.sql 文件

备份还原数据文件说明

|---备份文件大小可以通过 Backup.php 中 $size 设置,默认2MB,其他设置也可在 Backup.php 的属性中设置
|---备份数据如果是一卷命名为:文件名_自定义标识+0.sql,例如 cms_v0.sql
|---如果是多卷命名为:文件名_自定义标识+数字第几卷.sql,例如 cms_v1.sql,cms_v2.sql,依次类推
|---还原数据时如果检测到有 cms_v0.sql 文件只会还原一卷
|---如果没有检测到cms_v0.sql就查找 cms_v1.sql,如果检测到有cms_v1.sql文件,就会还原cms_v1.sql,cms_v2.sql…… 文件

backup php 备份mysql 数据库

|---当前操作用户对备份目录有创建删除权限 数据表有创建删除的权限
|---备份文件名默认 数据库名为前缀,如果备份文件夹下存在相同文件名自动覆盖,备份前请查看备份文件是否存在相同前缀文件名
|---如果想修改备份文件命名前缀 请在BackData.php // 备份文件名可以自定义  下2行处修改

文件说明

backup/    
|---backup.php 调用父类【基类】
|---PdoSql.php pdo类备份
|---MySql.php  mysql类备份
|---BackData.php 备份数据实例化类
|---dome.php 调用测试文件

import php 还原 mysql 数据库

|---当前操作用户对备份目录、日志目录有创建删除权限 数据表有创建删除的权限
|---还原数据库文件需放在 import 同级目录 db_backup/ 目录下,还原文件名(按照备份文件名格式)文件名_自定义标识+数字第几卷.sql,例如 cms_v0.sql
|---如果数据还原失败,数据回滚到没有还原前,如果是sql语法致命错误,程序会直接停止运行,以上版本包括当前版本都无法回滚数据

还原不是使用 备份类备份的 sql 数据需要注意几点

1: 备份文件名前缀+ 标示名+数字.sql
	<数字>0代表只还原这一个,数字从1依次还原多个
  	标示名可以自定义 默认 $back_file_fu="_v";

2: 备份文件的第一卷需要在 sql 文件的开头添加(标注)要还原的表名;
   如果sql文件开头没有要还原的表名,调用 ImportData->import_exec() 函数添加最后一个参数$table_name=false;
   如果想添加请在第一卷 注释 sql 的开头下面添加如下格式的表名:
	    格式 -- ##* 表名|表名|表名 ##* --
	    可以自定义格式  $import_table_fu=" ##* ";

3:使用其他工具导出的 sql 文件需要查看表与表之间的分割符是否 Import.php 下的 table_fu() 函数定义的一致,
   如果不一致,需要修改为一致,也可修改 table_fu() 函数的格式
	< 防止sql 语句过大程序卡死 >
	table_fu() 格式:
		$create_table=PHP_EOL;
		$create_table.=‘-- ‘.str_repeat(‘--‘,30).PHP_EOL;
		$create_table.=PHP_EOL;

文件说明

import/    
|---Import.php 调用父类【基类】
|---PdoSql.php pdo类还原
|---MySql.php  mysql类还原
|---ImportData.php 还原数据实例化类
|---dome.php 调用测试文件

项目详细介绍

PHP 备份还原 MySql 数据库

标签:tps   blank   use   com   sql   target   读写   支持   相同   

原文地址:https://www.cnblogs.com/xuey/p/9804681.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!