前言

最近在尝试一个日志系统graylog来收集mysql的慢查询日志提,供后续的分析、监控和报警等。测试步骤已经到日志已成功收集到graylog,测试时需要刷一些慢查询日志出来。为了刷比较多的日志和不对测试环境造成较大的影响,想到了使用mysql的sleep函数结合event来做刷慢日志。

MySQL的计划任务是通过event来完成的。相当于SQL Server 的Job。下面是实现过程:

打开mysql的慢日志

set global slow_query_log = 1;

set global long_query_time = 1;

也可以在配置文件议开启慢日志(建议开启)

创建event

启用event事件功能。

set global event_scheduler = 1;

创建event,每1秒执行一次。

delimiter $$

create or replace EVENT event_flush_slow_log

ON SCHEDULE

EVERY 1 SECOND

on completion preserve ENABLE

do

begin

SELECT SLEEP(1);

end; $$

delimiter ;

查询event

show events where Name like '%event_flush_slow_log%'\G;

select * from information_schema.events where event_name='event_flush_slow_log'\G;

开启这个event

ALTER EVENT event_flush_slow_log ENABLE;

可以看到慢日志一直在写入了。

# Time: 180126 12:19:57

# User@Host: root[root] @ localhost [localhost]

# Thread_id: 1640 Schema: db1 QC_hit: No

# Query_time: 1.000645 Lock_time: 0.000269 Rows_sent: 1 Rows_examined: 0

# Rows_affected: 0

SET timestamp=1516940397;

SELECT SLEEP(1);

# Time: 180126 12:19:58

# User@Host: root[root] @ localhost [localhost]

# Thread_id: 1641 Schema: db1 QC_hit: No

# Query_time: 1.000575 Lock_time: 0.000203 Rows_sent: 1 Rows_examined: 0

# Rows_affected: 0

SET timestamp=1516940398;

SELECT SLEEP(1);

# Time: 180126 12:19:59

# User@Host: root[root] @ localhost [localhost]

# Thread_id: 1642 Schema: db1 QC_hit: No

# Query_time: 1.000856 Lock_time: 0.000180 Rows_sent: 1 Rows_examined: 0

# Rows_affected: 0

SET timestamp=1516940399;

SELECT SLEEP(1);

完成后,关闭event

ALTER EVENT event_flush_slow_log DISABLE;

假如不需要这个event,可以删除

DROP EVENT IF EXISTS event_flush_slow_log;

关于sleep函数和event的详细用法,请参考相关文档,这里不再展开。

定时刷慢日志也可以使用Linux crontab调用脚本来做,但每1秒都要登录一次MySQL来执行一次慢查询,消耗资源较大,不建议这样做吧。

mysql event 日志_MySQL Event计划任务刷慢日志相关推荐

  1. mysql分析日志_MYSQL 索引(三)--- SQL日志分析

    慢查询日志 Mysql 的慢查询日志是 Myql 提供的一种日志记录,用来记录在 Myql 中响应时间查过阈值的语句,具体指运行时间超过 long_query_time 值的 SQL,则会被记录在日志 ...

  2. db2关闭下一句sql的日志_MySQL 用户和权限管理,日志体系简介

    一.MySQL用户 1.基础描述 在数据库的使用过程中,用户作为访问数据库的鉴权因素,起到非常重要的作用,安装MySQL时会自动生成一个root用户,作为数据库管理员,拥有所有权限.在多用户的应用场景 ...

  3. mysql event执行记录_mysql event建立模板(可记录执行履历)

    建立履历记录表 CREATE TABLE `mysql`.`t_event_history` ( `dbname` VARCHAR(128) NOT NULL DEFAULT '', `eventna ...

  4. mysql event查询_Mysql Event

    Always Benny&Viva Copyright © 2006 by MySQL AB "MySQL 5.1 新特性" 系列 目录 目 录.............. ...

  5. mysql临时关闭查询日志_mysql故障排错临时打开通用日志和慢查询日志

    有时候你遇到sql 执行报错,有的是语法错误很好判断,但有的是sql本身写的没有问题,就是在执行的时候报错,有的sql很复杂你根本就不知道具体的哪一个地方报错,这个时候你可以把复杂的sql分解去确定报 ...

  6. mysql binlog协议_mysql binlog协议分析--具体event

    这几天在修改canal, 连接mysql和maria接收到的event有所区别 拿一个简单的insert sql来举例 mysql 会有以下几个event写入到binlog里 1.ANONYMOUS_ ...

  7. mysql使用常量列_MySQL 执行计划

    1.使用explain语句去查看分析结果 如explain select * from test1 where id=1; 会出现:id selecttype table type possible_ ...

  8. thinkphp mysql日志_MySQL的日志基础知识及基本操作学习教程

    MySQL日志主要包含:错误日志.查询日志.慢查询日志.事务日志.二进制日志: 日志是mysql数据库的重要组成部分.日志文件中记录着mysql数据库运行期间发生的变化:也就是说用来记录mysql数据 ...

  9. mysql都有哪些数据库日志_MySQL数据库之MySQL都有哪些日志?分别都代表什么

    本文主要向大家介绍了MySQL数据库之MySQL都有哪些日志?分别都代表什么 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. MySQL日志:主要包含:错误日志.查询日志.慢查询 ...

最新文章

  1. idea设置开发方式
  2. 教你加快Win7 的启动速度
  3. Ubuntu下安装Python3.6并在终端输入Python就能显示Python3.6
  4. 如何表示数组所有数都不等于一个数_每日算法系列【LeetCode 523】连续的子数组和...
  5. 【牛客网】安置路灯 C++
  6. android歌词效果,自定义View:Android歌词控件
  7. 深度学习(四十)优化求解系列(2)简单理解神经网络求解过程-未完待续
  8. Java学习关于集合框架的基础接口--Collection接口
  9. jsp页面跳转(商品管理系统)
  10. 语音识别系统报告_2018-2024年中国语音识别系统行业市场发展格局及投资价值评估研究报告_中国产业信息网...
  11. M1升级MacOS Monterey后,如何使用空间音频?
  12. fit文件用python画瀑布图
  13. 推荐一款好用的telnet工具
  14. 新疆计算机二级vb 试题,2020年9月新疆维吾尔自治区计算机二级易考套餐:二级VB考试题库+教材...
  15. 华泰证券 python 自动交易软件_有哪些能做自动交易的软件?
  16. word参考文献[10]之后不对齐
  17. 如何更改itunes备份位置_Mac怎么修改iTunes的备份路径 如何在 Mac 中修改iTunes的备份路径...
  18. js 中~~是什么意思?
  19. acrobat如何设置可以使pdf输入页码时自动跳到正文对应的页码
  20. TOPSIS--优劣解距离法

热门文章

  1. lucene使用3.0.3_Jirasearch 2.0狗粮:使用Lucene查找我们的Jira问题
  2. java常见的ide_在三个Java IDE中生成的三种常见方法
  3. 使用适用于Java 2的AWS开发工具包的AWS DynamoDB版本字段
  4. 在Java中键入Safe SQL
  5. Jakarta EE贡献–入门
  6. Java将列表转换为数组,反之亦然
  7. 新的JDK 11文件方法isSameContent()
  8. java备忘录_Java 8备忘单中的可选
  9. 线程池默认多少个线程_我需要多少个线程?
  10. JLBH示例3 –吞吐量对延迟的影响