一 备份数据库

我的这个是在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执行数据库定时备份 和手动还原的更多相关文章

  1. Mysql Navicat数据库定时备份,定时删除

    Navicat自带实现数据库定时备份 1.先点击需要备份的数据库,然后点击计划,再点击新建批处理作业 2.然后出现双机可用任务列表,然后在已选择的任务中会出现可用任务 3. 点击保存,弹出对话框,给这 ...

  2. SQL Server数据库定时备份解决方案

    SQL Server数据库定时备份解决方案 1.本方案采用软件为:SQLBackupAndFTP 10.0.3 版本,压缩包自带注册机,请自行破解. 2.软件截图如下: 3.功能说明:自动定时备份相关 ...

  3. windows下mysql数据库定时备份。

    注意:看本教程先必须会windows自带的"任务计划程序". 首先创建一个bat后缀的文件我的是timerExecutePhp.bat文件 timerExecutePhp.bat ...

  4. oracle数据库定时备份

    现有需求,设计一批处理文件,实现周一全部备份,周二周三周五周六增量备份,周四周日累计备份.并且每日将上个月本日数据删除(如今日8月7号,则删除7月7号的数据).并将备份压缩以减小所占空间. 思路: 备 ...

  5. Linux下实现MySQL数据库定时备份

    咳~ 咳~ 为了避免数据操作失误.数据丢失.甚至删库跑路,简单做个数据备份吧 1.创建备份目录 # 习惯放在 local 下 cd /usr/local/ # 创建备份目录 mkdir backup ...

  6. window自动任务实现数据库定时备份

    原理:利用window定时任务定时cmd加载mytask.bat文件,bat运行php.exe程序编译运行mytask.php文件 ,从而实现了数据库的备份 mytask.bat 内容: D:\php ...

  7. Windows数据库定时备份

    首先打开:任务计划程序 右键任务计划程序库,选择创建基本任务 然后即可以按照实际情况逐步进行 直到启动程序--浏览(程序或脚本)时,这里本人导入的是backup.bat文件,文件内容为 @echo 设 ...

  8. linux篇-linux mysql数据库定时备份

    1在linux上面创建一个文件夹,并且进行备份 cd /home mkdir backup cd backup 2创建一个脚本 Vi imaginebase.sh #!/bin/bash mysqld ...

  9. 使用教程 - BestSync同步软件 - SQL2008R2 数据库定时备份解决方案

    需求: 1.      某公司的管理软件,数据库为SQL2008R2.2.      将整个数据库作为一个文件,定时同步到FTP 服务器3.      需要有多个备份,每同步一次,都备份上次的文件到备 ...

随机推荐

  1. Python实现AI图像识别-身份证识别

    图像识别说白了就是把一张照片上面的文字进行提取,提供工作效率 需求分析 身份证识别主要是把一张身份证照片上面的文字信息进行提取,不用再使用人工去手动抄写了,下面给大家说的这个身份识别主要是使用pyth ...

  2. 【笔记】Ada Boosting和Gradient Boosting

    Ada Boosting和Gradient Boosting Ada Boosting 除了先前的集成学习的思路以外,还有一种集成学习的思路boosting,这种思路,也是集成多个模型,但是和bagg ...

  3. 【原创】Dubbo 2.7.8多个远程代码执行漏洞

    马上年底了,发现年初定的几个漏洞的KPI还没来得及完成,趁着最近有空赶紧突击一波,之前业务部门被爆过Dubbo的漏洞,干脆就把Dubbo拖过来挖一把.之前没用过Dubbo,既然要挖它就先大体了解了一下 ...

  4. 【MySQL】自定义数据库连接池和开源数据库连接池的使用

    数据库连接池的概念 数据库连接背景 数据库连接是一种关键的.有限的.昂贵的资源,这一点在多用户的网页应用程序中体现得尤为突出.对数据库连接的管理能显著影响到整个应用程序的伸缩性和健壮性,影响到程序的性 ...

  5. vlc播放器设置开机自动全屏播放网络视频流

    因工作需要,要用vlc视频播放器实现开机自动全屏播放某个网络视频流.百度了下,说的都很模糊,经过整理,设置方法如下: 一,添加视频流地址:rtsp://wowzaec2demo.streamlock. ...

  6. 3、二进制安装K8s之部署kube-apiserver

    二进制安装K8s之部署kube-apiserver 一.生成 kube-apiserver 证书 1.自签证书颁发机构(CA) cat > ca-config.json <<EOF ...

  7. 后端开发应该掌握的Redis基础

    转自:https://juejin.im/post/5d078cd6f265da1b8466e62c 在上一篇文章中,我们简单地讲了一下Redis的应用场景.安装.如何连接等比较基础的知识,那么在这篇 ...

  8. LeetCoded第739题题解--每日温度

    每日温度 请根据每日 气温 列表,重新生成一个列表.对应位置的输出为:要想观测到更高的气温,至少需要等待的天数.如果气温在这之后都不会升高,请在该位置用 0 来代替. 例如,给定一个列表 temper ...

  9. 网络视频m3u8解密及ts文件合并

    网络视频m3u8解密及ts文件合并 参考了两篇博客: https://blog.csdn.net/weixin_41624645/article/details/95939510 https://bl ...

  10. 在CentOs7源码安装mysql-5.6.35单实例数据库

    首先安装依赖包,避免在安装过程中出现问题 [root@bogon liuzhen]# yum -y install gcc gcc-c++[root@bogon liuzhen]# yum -y in ...