PHP执行数据库定时备份 和手动还原
一 备份数据库
我的这个是在TP5上,其实不在TP5也可以
逻辑:
1 首先在自己电脑的cmd命令上测试备份数据库,成功才能往下进行所以得到
C:/luanxiede/mysql-5.7/bin/mysql.exe shujiku > "C:/shujiku_0908.sql"
注:这里没用到用户名和密码是因为在本机上就可以省略.参考:
https://dev.mysql.com/doc/refman/5.6/en/mysql-config-editor.html 在mysql的目录下建立my.cnf :
[client]
user = root
password = root
host = 127.0.0.1 [test]
user = root
password = root
host = www.test.com
2.1方式一 然后将该语句放在网站根目录外sqlbackup.bat中
C:/luanxiede/mysql-5.7/bin/mysql.exe shujiku > "C:/www/test/sql/shujiku_0908.sql"
2.2 建立定时任务执行sqlbackup.bat文件
3.1 方式二 .(我的是在TP5中)首先在application/extra/ 目录下建立一个配置文件,我起的名字是base.php
<?php return [
// 数据库备份文件存放位置
'sql_backup_path' => APP_PATH . 'backup/',
];
3.2 在Test.php控制器中写个方法
/**
* 备份数据库
*/
public function backup() {
$dbConfig = require(APP_PATH . 'database.php');
$filename = config('base.sql_backup_path') . $dbConfig['database'] . '-' .date('YmdHis',time()) . '.sql';
system( $dbConfig['exec_bin_dir'] ."mysqldump.exe -u" . $dbConfig['username'] . " -p" . $dbConfig['password'] . " " . $dbConfig['database'] . " > \"". $filename ."\"",$return);
if($return === 0) {
$this->success('备份成功:' . $filename);
} else {
$this->error('备份失败');
}
}
3.3 还原数据库方法
/**
* 还原sql文件
*/
public function importSqlFile() {
$file = input('?get.file') ? input('get.file') : false;
$trueFile = config('base.sql_backup_path') . $file;
if(!file_exists($trueFile)) {
$this->error('文件不存在');exit;
} $dbConfig = require(APP_PATH . 'database.php');
system($dbConfig['exec_bin_dir'] . "mysql.exe -u" . $dbConfig['username'] . " -p" . $dbConfig['password'] . " -h " . $dbConfig['hostname'] . " -P" . $dbConfig['hostport'] . " " . $dbConfig['database'] . "<" . $trueFile,$return);
if($return === 0) {
$this->success('还原成功');
} else {
$this->error('还原失败');
}
}
4.1 方式三 和方式三类似,只不过是变成自定义命令形式 建立SalBackup.php文件:
<?php namespace app\common\command; use think\console\Command;
use think\console\Input;
use think\console\Output; class SqlBackup extends Command
{
protected function configure()
{
$this->setName('sqlbackup')->setDescription('database: backup');
} protected function execute(Input $input, Output $output)
{
// 备份数据库
$dbConfig = require(APP_PATH . 'database.php');
$filename = config('base.sql_backup_path') . $dbConfig['database'] . '-' .date('YmdHis',time()) . '.sql';
$commond = $dbConfig['exec_bin_dir'] . "mysqldump.exe " . $dbConfig['database'] . " > \"". $filename ."\"";
exec($commond);
} }
4.2 在application/command.php文件中写
<?php return [
'app\common\command\SqlBackup'
];
4.3 在网站根目录建立sqlbackup.bat文件
C:
cd C:\home\www\test
C:\home\server\php-7.0.1\php.exe think sqlbackup
4.4 建立定时任务执行该.bat文件 我的是每晚2:30
二 还原数据库
D:/server/mysql-5.7/bin/mysql.exe -uroot -proot -h 127.0.0.1 -P 3306 test< D:/wamp/test/application/backup/test-20191111113922.sql
PHP执行数据库定时备份 和手动还原的更多相关文章
- Mysql Navicat数据库定时备份,定时删除
Navicat自带实现数据库定时备份 1.先点击需要备份的数据库,然后点击计划,再点击新建批处理作业 2.然后出现双机可用任务列表,然后在已选择的任务中会出现可用任务 3. 点击保存,弹出对话框,给这 ...
- SQL Server数据库定时备份解决方案
SQL Server数据库定时备份解决方案 1.本方案采用软件为:SQLBackupAndFTP 10.0.3 版本,压缩包自带注册机,请自行破解. 2.软件截图如下: 3.功能说明:自动定时备份相关 ...
- windows下mysql数据库定时备份。
注意:看本教程先必须会windows自带的"任务计划程序". 首先创建一个bat后缀的文件我的是timerExecutePhp.bat文件 timerExecutePhp.bat ...
- oracle数据库定时备份
现有需求,设计一批处理文件,实现周一全部备份,周二周三周五周六增量备份,周四周日累计备份.并且每日将上个月本日数据删除(如今日8月7号,则删除7月7号的数据).并将备份压缩以减小所占空间. 思路: 备 ...
- Linux下实现MySQL数据库定时备份
咳~ 咳~ 为了避免数据操作失误.数据丢失.甚至删库跑路,简单做个数据备份吧 1.创建备份目录 # 习惯放在 local 下 cd /usr/local/ # 创建备份目录 mkdir backup ...
- window自动任务实现数据库定时备份
原理:利用window定时任务定时cmd加载mytask.bat文件,bat运行php.exe程序编译运行mytask.php文件 ,从而实现了数据库的备份 mytask.bat 内容: D:\php ...
- Windows数据库定时备份
首先打开:任务计划程序 右键任务计划程序库,选择创建基本任务 然后即可以按照实际情况逐步进行 直到启动程序--浏览(程序或脚本)时,这里本人导入的是backup.bat文件,文件内容为 @echo 设 ...
- linux篇-linux mysql数据库定时备份
1在linux上面创建一个文件夹,并且进行备份 cd /home mkdir backup cd backup 2创建一个脚本 Vi imaginebase.sh #!/bin/bash mysqld ...
- 使用教程 - BestSync同步软件 - SQL2008R2 数据库定时备份解决方案
需求: 1. 某公司的管理软件,数据库为SQL2008R2.2. 将整个数据库作为一个文件,定时同步到FTP 服务器3. 需要有多个备份,每同步一次,都备份上次的文件到备 ...
随机推荐
- 017 PCIe总线的事务层(一)
一.PCIe总线的事务层 事务层是PCIe总线层次结构的最高层,该层次将接收PCIe设备核心层的数据请求,并将其转换为PCIe总线事务,PCIe总线使用的这些总线事务在TLP头中定义.PCIe总线继承 ...
- NOIP 模拟 $28\; \rm 客星璀璨之夜$
题解 \(by\;zj\varphi\) 概率与期望,考虑 \(\rm dp\) 设 \(dp_{i,j}\) 为消除 \(i-j\) 这一段行星的期望,转移: 枚举 \(k\) 为当前状态下第一个撞 ...
- HTTP协议之:HTTP/1.1和HTTP/2
目录 简介 HTTP/1.1 HTTP/2 传输模式对比 流优先级 缓冲区溢出处理 预测资源请求 压缩 总结 简介 HTTP的全称是Hypertext Transfer Protocol,是在1989 ...
- JdbcTemplateUtils
package com.meeno.common.utils; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.J ...
- 【iKBC poker2】使用说明书(简体中文版)自用
主要功能介绍: 可携带式 60%键盘 搭配 QWERTY 配置(61 Key) Cherry MX 系列轴 (黑.青.茶.红) 双层板 PCB 键帽材质: ABS(喷漆镀膜-LED 专用).PBT L ...
- Quartz任务调度(5)TriggerListener分版本超详细解析
TriggerListener 在我们的触发器监听器中,也包含了一系列监听方法 方法 说明 getName() 定义并返回监听器的名字 triggerFired() 当与监听器相关联的 Trigger ...
- uwp 的】listView 选择
xml 代码 ---------------------------------------------------------- <Page x:Class="ContentCont ...
- datetime和timestamp的区别
时间日期数据类型总概况 MySQL中有多种表示时间日期的数据类型,主要有YEAR.TIME.DATE.DATETIME.TIMESTAMP等.每一种数据类型都有存储的时间日期格式.以及取值范围,因此在 ...
- 网络视频m3u8解密及ts文件合并
网络视频m3u8解密及ts文件合并 参考了两篇博客: https://blog.csdn.net/weixin_41624645/article/details/95939510 https://bl ...
- Executor执行器
Executors: CachedThreadPool 将为每个任务创建一个线程. public class CachedThreadPool { public static void main(S ...