实时监控mysql查询的sql的方法

  • 原创
  • 发布时间: 9个月前
  • 收藏数: 0 / 点赞数: 0 / 阅读数: 135

mysql 默认不开启sql语句跟踪监控记录,需要手动开启

mysql 默认不开启sql语句跟踪监控记录,如查看sql语句执行记录,一般有下面三种方式:

  • 1. 修改配置文件,my.cnf
# vi /etc/my.cnf

log =/mysql/mysqls.log

#慢查询语句 ,time 单位是秒
log-slow-queries = /mysql/slowquery.log
long_query_time = 1
  • 2. 查看正在执行的 SQL语句,用 processlist,缺点是,时时变化,不易观察到需要的SQL 。
mysql> use information_schema;
mysql> select * from PROCESSLIST where info is not null;
  • 3. 使用 global general_log 参数,方便随时查看

默认也是OFF,使用时候,最好,先查看 用 `show global variables like '%general%';` 可以看到,log文件的位置。

开启日志:

SET GLOBAL general_log = 'ON';         //需要root权限。

设置ON 之后,就可以查看log文件,数据库所有操作都会记录。

也可以输出到系统表:

SET GLOBAL log_output = 'TABLE'

然后,查看: 

SELECT * from mysql.general_log ORDER BY  event_time DESC

不查看时候,记得 关闭,否则日志或表,都会很大。

实时监控执行的SQL语句,并打印出来:

sudo tail -f -n 20 /usr/local/mysql/data/mac.log

 

评论