PHP 備份還原 MySql 數據庫

原生 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 調用測試文件

項目詳細介紹

轉載于:https://www.cnblogs.com/xuey/p/9804681.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/388209.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/388209.shtml
英文地址,請注明出處:http://en.pswp.cn/news/388209.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Java? 教程(Queue接口)

Queue接口 Queue是在處理之前保存元素的集合&#xff0c;除了基本的Collection操作外&#xff0c;隊列還提供額外的插入、刪除和檢查操作&#xff0c;Queue接口如下。 public interface Queue<E> extends Collection<E> {E element();boolean offer(E e);E peek();…

字符串操作截取后面的字符串_對字符串的5個必知的熊貓操作

字符串操作截取后面的字符串We have to represent every bit of data in numerical values to be processed and analyzed by machine learning and deep learning models. However, strings do not usually come in a nice and clean format and require preprocessing to con…

最新 Unity3D鼠標滑輪控制物體放大縮小 [

var s 1.0;function Update () {var cube GameObject.Find("Cube");if(Input.GetAxis("Mouse ScrollWheel")){s Input.GetAxis("Mouse ScrollWheel");cube.transform.localScaleVector3(1*s,1*s,1*s);}}

sublime-text3 安裝 emmet 插件

下載sublime&#xff0c;http://www.sublimetext.com/ 安裝package control &#xff1a;https://packagecontrol.io/ins... 這個地址需要翻墻&#xff0c;訪問不了的可以看下圖 import urllib.request,os,hashlib; h 6f4c264a24d933ce70df5dedcf1dcaee ebe013ee18cced0ef93d…

數據科學家訪談錄 百度網盤_您應該在數據科學訪談中向THEM提問。

數據科學家訪談錄 百度網盤A quick search on Medium with the keywords “Data Science Interview” resulted in hundreds of Medium articles to help guide the reader from what concepts are covered to even specific company interviews ranging from Tesla, Walmart, …

unity3d]鼠標點擊地面人物自動走動(也包含按鍵wasdspace控制)

目錄(?)[-] 一效果圖二大概步驟 創建一個plane設置層為Terrain因為后面要判斷是否點擊的是這個層準備好人物模型并且將三個腳本拖放到人物上并且將動畫文件也拖放好記得看前面提醒哦 ThirdPersonCamera相當于smoothflowThirdPersonController修改版mouseMoveContr鼠標點擊人物…

uva 524(Prime Ring Problem UVA - 524 )

dfs練習題,我素數打表的時候ji了&#xff0c;一直沒發現實際上是ji*i&#xff0c;以后可記住了。還有最后一行不能有空格。。。昏迷了半天 我的代碼(紫書上的算法) #include <bits/stdc.h> using namespace std; int bk[110]; int num[110]; int vis[110]; int n; void d…

Web 開發基礎

一、 Web 開發簡介 最早的軟件都是運行在大型機上的&#xff0c;軟件使用者登陸到大型機上去運行軟件。后來隨著 PC 機的興起&#xff0c;軟件開始主要運行在桌面上&#xff0c;而數據庫這樣的軟件運行在服務器端&#xff0c;這種 Client/Server 模式簡稱 CS 架構。隨著互聯網的…

power bi函數_在Power BI中的行上使用聚合函數

power bi函數Aggregate functions are one of the main building blocks in Power BI. Being used explicitly in measures, or implicitly defined by Power BI, there is no single Power BI report which doesn’t use some sort of aggregate functions.聚合功能是Power BI…

關于如何在Python中使用靜態、類或抽象方法的權威指南

Python中方法的工作方式 方法是存儲在類屬性中的函數&#xff0c;你可以用下面這種方式聲明和訪問一個函數 >>> class Pizza(object):... def __init__(self, size):... self.size size... def get_size(self):... return self.size...>&…

廣義估計方程估計方法_廣義估計方程簡介

廣義估計方程估計方法A key assumption underpinning generalized linear models (which linear regression is a type of) is the independence of observations. In longitudinal data this will simply not hold. Observations within an individual (between time points) …

css二

結構性偽類:nth-child(index)系列1.:first-child2.:last-child3.nth-last-child(index)4.only-child :nth-of-type(index)系列1.first-of-type2.last-of-type3.nth-last-type(index)4.only-of-type :not偽類處理導航欄最后一個豎劃線a:not(:last-of-type) :empty偽類 選中所有內…

Unity3d鼠標點擊屏幕來控制人物的走動

今天呢&#xff0c;我們來一起實現一個在RPG中游戲中十分常見的功能&#xff0c;通過鼠標點擊屏幕來控制人物的走動。首先來說一下原理&#xff0c;當我們點擊屏幕時&#xff0c;我們按照一定的方法&#xff0c;將屏幕上的二維坐標轉化為三維坐標&#xff0c;然后我們從攝像機位…

Java中的ReentrantLock和synchronized兩種鎖定機制的對比

2019獨角獸企業重金招聘Python工程師標準>>> 多線程和并發性并不是什么新內容&#xff0c;但是 Java 語言設計中的創新之一就是&#xff0c;它是第一個直接把跨平臺線程模型和正規的內存模型集成到語言中的主流語言。核心類庫包含一個 Thread 類&#xff0c;可以用它…

10.15 lzxkj

幾天前寫的&#xff0c;忘了放了&#xff0c;在此填坑 10月16的題我出的不寫題解了 lzxkj 題目背景 眾所不周知的是&#xff0c; 酒店之王 xkj 一個經常迷失自我的人 有一天&#xff0c; 當起床鈴再一次打響的時候&#xff0c; TA 用 O(1)的時間在 TA 那早就已經生銹的大腦中自…

大數定理 中心極限定理_中心極限定理:直觀的遍歷

大數定理 中心極限定理One of the most beautiful concepts in statistics and probability is Central Limit Theorem,people often face difficulties in getting a clear understanding of this and the related concepts, I myself struggled understanding this during my…

萬惡之源 - Python數據類型二

列表 列表的介紹 列表是python的基礎數據類型之一 ,其他編程語言也有類似的數據類型. 比如JS中的數 組, java中的數組等等. 它是以[ ]括起來, 每個元素用 , 隔開而且可以存放各種數據類型: lst [1,a,True,[2,3,4]]列表相比于字符串,不僅可以存放不同的數據類型.而且可…

230. Kth Smallest Element in a BST

Given a binary search tree, write a function kthSmallest to find the kth smallest element in it.Note: You may assume k is always valid, 1 ≤ k ≤ BSTs total elements.Example 1: Input: root [3,1,4,null,2], k 13/ \1 4\2 Output: 1 Example 2: Input: root …

探索性數據分析(EDA)-不要問如何,不要問什么

數據科學 &#xff0c; 機器學習 (Data Science, Machine Learning) This is part 1 in a series of articles guiding the reader through an entire data science project.這是一系列文章的第1部分 &#xff0c;指導讀者完成整個數據科學項目。 I am a new writer on Medium…

unity3d 攝像機跟隨鼠標和鍵盤的控制

鼠標控制&#xff1a; using UnityEngine; using System.Collections; public class shubiao : MonoBehaviour { //public Transform firepos; public int Ball30; public int CurBall1; public Rigidbody projectile; public Vector3 point; public float time100f; public…