MYSQL5.7.9开启慢查询日志的技巧


当前第2页 返回上一页

用动态方式设置 报错

mysql> set global slow_query_log=1;
ERROR 29 (HY000): File '/MYSQLDATA/mysql_slow_query.log' not found (Errcode: 13 - Permission denied)

对我已经把它给删了, 为傻不自己创建个?

只好自己touch 一个

还是报错 ?

ps -ef |grep mysqld 发现 还有个mysql用户启动了mysql

看来 是用mysql用户读取慢查询日志的 用户权限问题啦

下面给大家介绍开启mysql慢查询日志

查看配置:

//查询慢查询时间
show variables like "long_query_time";默认10s 
//查看慢查询配置情况
show status like "%slow_queries%"; 
//查看慢查询日志路径
show variables like "%slow%"; 

修改配置文件

在my.ini中加上下面两句话

log-slow-queries = D:\wamp\mysql_slow_query.log
long_query_time=5

第一句使用来定义慢查询日志的路径(因为是windows,所以不牵涉权限问题)

第二句使用来定义查过多少秒的查询算是慢查询,我这里定义的是5秒

第二步:查看关于慢查询的状态

执行如下SQL语句来查看mysql慢查询的状态

代码如下:

show variables like '%slow%';

执行结果会把是否开启慢查询、慢查询的秒数、慢查询日志等信息打印在屏幕上。

第三步:执行一次慢查询操作

其实想要执行一次有实际意义的慢查询比较困难,因为在自己测试的时候,就算查询有20万条数据的海量表,也只需要0.几秒。我们可以通过如下语句代替:

代码如下:

SELECT SLEEP(10);

第四步:查看慢查询的数量

通过如下sql语句,来查看一共执行过几次慢查询:

show global status like '%slow%';

mysql日志的配置:

注意:这些日文件在mysql重启的时候才会生成#记录所有sql语句

log=E:/mysqllog/mysql.log
#记录数据库启动关闭信息,以及运行过程中产生的错误信息
log-error=E:/mysqllog/myerror.log
# 记录除select语句之外的所有sql语句到日志中,可以用来恢复数据文件
log-bin=E:/mysqllog/bin
#记录查询慢的sql语句
log-slow-queries=E:/mysqllog/slow.log 
#慢查询时间
long_query_time=0.5

更多Mysql内容来自木庄网络博客


标签:Mysql

返回前面的内容

相关阅读 >>

mysql如何更新注释

linux下搭建mysql主从服务器

mysql如何转换null数据

mysql中的跨库关联查询方法实例

布尔教育燕十八mysql入门视频教程的资源(源码课件)推荐

浅谈mysql中的group by

如何获得mysql结果集中的第n个最高值?使用mysql limit的解决案例

数据库哈希连接详解(mysql新特性)

mysql如何统计一个数据库所有表的数据量

mysql如何设置远程连接数据库?

更多相关阅读请进入《mysql》频道 >>


数据库系统概念 第6版
书籍

数据库系统概念 第6版

机械工业出版社

本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...