我有一个想法

导航

关于windows定时任务备份mysql

windows 定时

一、右击我的电脑->选择管理->任务计划程序,打开计划任务

二、开始创建任务计划。

1、常规设置?都懂不再多说。

2、触发器:新建->设置一个时间

3、操作:新建->选择一个可执行程序,参数如果执行PHP备份mysql。首先mysql加入环境变量,直到mysql在命令行能执行

如在path中新建输入D:\phpstudy_pro\Extensions\MySQL5.7.26\bin mysql执行文件目录,一路确定

写一个demo 简单如下

<?php

// 数据库名称
$database_name = 'demo';
//--all-databases //全导
//--databases db1 db2 //指定数据库
//--databases db1 -tables a1 a2 //指定表
//--no-data --databases db1 //仅结构
//mysqldump --host=h1 -uroot -proot --databases db1 |mysql --host=h2 -uroot -proot db2 //跨域,host2中的数据库必需先存在
//mysqldump -uroot -p --host=localhost --all-databases --routines //导出存储过程
//压缩备份
//mysqldump -uroot -p -P3306 -q -Q --set-gtid-purged=OFF --default-character-set=utf8 --hex-blob --skip-lock-tables --databases abc 2>/abc.err |gzip >/abc.sql.gz
//mysqldump -uroot -p`echo "MTIzNDU2" |base64 -d` --single-transaction --routines --max_allowed_packet=512M --all-databases | gzip > all_db_$(date +%F).sql.gz
//还原
//gunzip -c abc.sql.gz |mysql -uroot -p -vvv -P3306 --default-character-set=utf8 abc 1> abc.log 2>abc.err
//gunzip < all_db_2023-04-13.sql.gz | mysql -uroot -p`echo "MTIzNDU2" |base64 -d`
//mysqldump -uroot -p123456 --all-databases | gzip > all_abc.sql.gz
//gunzip < all_abc.sql.gz | mysql -uroot -p12356
// 数据库用户名
$database_user = 'root';
// 数据库密码
$database_password = 'root';
// 备份文件存储目录
$backup_dir = '/backup/database';
// 备份文件名称
$backup_file = $backup_dir . '/' . $database_name . '_' . date('YmdHis') . '.sql';

// 创建备份文件目录
if (!is_dir($backup_dir)) {
mkdir($backup_dir,0777,true);
}

// 执行备份命令
$cmd = "mysqldump -u$database_user -p$database_password $database_name > $backup_file";
system($cmd);

echo "Backup database $database_name to file $backup_file successfully!";

 

现在可以添加操作了,选择php.exe目录,参数backup.php,起始于D:\backup\
OK,现在可以一试啦
 

posted on 2023-09-02 14:17  42530  阅读(15)  评论(0编辑  收藏  举报