mysql5.7定时作业,Mysql5.7定时备份的实现

1、找到mysql安装路径D:xxxMYSQLMySQL Workbench CE 6.0.8下的mysqldump.exe,由于脚本执行该程序要求路径下不能有空格(如果路径有空格则会生成0kb的备份文件),所以拷贝mysqldump.exe到任意文件夹(我这里是D:/Soft/MYSQL)

2、编辑保存脚本back_up.bat如下:

@echo off

set "Ymd=%date:~,4%%date:~5,2%%date:~8,2%"

D:/Soft/MYSQL/mysqldump --opt -u root --password=991446 lslib_test> D:/db_backup/lslib_test_%Ymd%.sql

@echo on

说明:此方法可以不用关闭数据库,并且可以按每一天的时间来名称备份文件。

通过%date:~5,2%来组合得出当前日期,组合的效果为yyyymmdd,date命令得到的日期格式默认为yyyy-mm-dd(如果不是此格式可以通过pause命令来暂停命令行窗口看通过%date:~,20%得到的当前计算机日期格式),所以通过%date:~5,2%即可得到日期中的第五个字符开始的两个字符,例如今天为2009-02-05,通过%date:~5,2%则可以得到02。(日期的字符串的下标是从0开始的)!

2、将脚本back_up.bat放入windows执行计划中

控制面板->搜索计划任务->创建基本任务->跟着感觉走就能配置成功!

d69a99d24f906dd175087e8e2727e1c7.png

补充:

上面的方法在我本机上运行正常,但是在服务器上同样设置就不成功,所以我采用了navicat计划任务做了定时备份。

步骤:

1、打开navicat,点击备份-新建备份,什么都用不用点直接保存,起个名字后关闭对话框,对象选择是自己默认勾好了所有的表

19f07fba47020ebcacce692ee57d6b36.png

2、点击计划-->新建批处理作业-->双击要选择的计划(上一步保存的计划)

3、保存计划(随便起个名字)-->点击要执行的任务-->设置计划任务

4、自己设置计划时间后保存,要求输入密码是服务器密码

5、成功后,定时备份会生成psc的文件,默认位置在C:Users电脑名DocumentsNavicatMySQLservers下,可以在navicat 表的备份中看到。

6、可以修改备份存放位置

7f6fcf3b4fa972650633f3785d3bb8db.png

此时用navicat提取sql,我这里会乱码。直接还原备份是正常的。

QA:脚本定时任务本机可以,服务器不可以,为森么?navicat计划任务本机不可以,服务器可以,为森么?提取sql为什么会中文乱码,utf-8、gbk编码格式也不行,为森么?

到此这篇关于Mysql5.7定时备份的实现的文章就介绍到这了,更多相关Mysql 定时备份内容请搜索云海天教程以前的文章或继续浏览下面的相关文章希望大家以后多多支持云海天教程!

原文链接:https://blog.csdn.net/mr_wanter/article/details/90473472

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQL 5.7可以使用事件(Event)来实现定时执行SQL脚本的功能。事件是MySQL中的一种特殊对象,可以在指定的时间间隔内自动执行一系列SQL语句。 要使用事件功能,首先需要确保MySQL服务器已启用事件调度器。可以通过在MySQL配置文件中添加以下行来启用事件调度器: ``` event_scheduler=ON ``` 然后,可以使用以下语法创建一个事件: ```sql CREATE EVENT event_name ON SCHEDULE schedule [ON COMPLETION [NOT] PRESERVE] DO event_body; ``` 其中,event_name是事件的名称,schedule是事件的调度规则,event_body是事件要执行的SQL语句。 调度规则可以使用以下几种方式之一: - 每隔固定时间执行一次: ```sql EVERY interval ``` 其中,interval可以是一个时间段,例如1 HOUR、1 DAY等。 - 在指定的时间执行一次: ```sql AT timestamp ``` 其中,timestamp是一个具体的日期和时间,例如'2022-01-01 00:00:00'。 - 在指定的时间段内重复执行: ```sql EVERY interval STARTS timestamp ENDS timestamp ``` 其中,interval是一个时间段,timestamp是开始和结束的日期和时间。 以下是一个创建事件的示例: ```sql CREATE EVENT my_event ON SCHEDULE EVERY 1 DAY DO BEGIN -- 执行SQL语句 INSERT INTO my_table (column1, column2) VALUES ('value1', 'value2'); END ``` 这个事件将在每天执行一次,向my_table表中插入一条记录。 注意,创建事件需要具有适当的权限。如果没有足够的权限,可以联系MySQL管理员进行授权。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值