重启mysql生效
方法二:修改mysql变量
该方法在下次启动mysql后失效,也就是说重启mysql后expire_logs_days的值又还原为0了,
该方法的好处在于不用重启mysql就可以生效
CentOS 7
mysql8镜像
备份方式:mysqldump 命令
mysql_backup.sh 脚本,本例将其放置在 /home/test/db_bk 文件夹下
执行以上脚本后,会在挂在路径下生成 “/backup/日期” 的文件夹,文件夹内存着备份的 sql 文件,当需要恢复备份时,执行对应的 sql 文件即可。
Linux 内置的 cron 进程可以用于开启定时任务
cron进程简介
进入 cron 编辑器:
编辑cron命令:
可以通过以下命令,查看定时任务情况:
执行以上脚本后,会在挂在路径下生成 “/backup/日期” 的文件夹,文件夹内存着备份的 sql 文件,当需要恢复备份时,执行对应的 sql 文件即可。
可以把备份的 sql 文件导出,然后用 navicat 之类的工具执行 sql 文件即可。
1.3.2.1
*注意: 需要设置字符集,否则会乱码,mysql -u [用户] -p --default-character-set=utf8mb4
1.3.2.2
使用event_scheduler实现,这是个事件的自动调度机制,会定期执行事件中定义的语句;1 配置开启event scheduler
配置my.ini文件 中加上 event_scheduler = 1
重启mysql服务
验证event_scheduler是否已经开启: show variables like '%event%' #值为 ON 表明已开启
2 创建event
drop event event_test_a
CREATE EVENT event_test_a
ON SCHEDULE EVERY 1 day STARTS date_add(concat(current_date(), ' 00:00:00'), interval 0 second)
ON COMPLETION PRESERVE ENABLE
DO
delete from dbname.`user` where (`name`, `time` ) =
(
select `name`, max_time from
(select `name`, max(`time`) max_time from dbname.`user` group by 1) t
where max_time <date_add(current_timestamp, interval -2 month)
)
#说明:
ON SCHEDULE EVERY 1 day 指定循环间隔为每天执行
STARTS date_add(concat(current_date(), ' 23:59:00'), interval 0 second) 指定运行时间为23:59:00
ON COMPLETION PRESERVE ENABLE 指定创建完成后即启用,否则需手动启动
替换DO后边的语句中的相关部分(如数据库dbname, 表名,字段名等),DO 中也可以执行一个自定义的存储过程(该存储过程自已实现业务逻辑)
3 察看是否开始工作
SHOW PROCESSLIST --看是否有event_scheduler的user的进程;
4 手动关闭事件
ALTER EVENT event_test_a DISABLE
5 手动该事件为可用
ALTER EVENT event_test_a ENABLE
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)