my.ini配置如下
[mysqld]
port=3306
#loose-default-character-set = utf8
character-set-server = utf8
basedir = E:\mysql\mysql-5.6.21-winx64
datadir = E:\mysql\mysql-5.6.21-winx64\data
#开启慢查询记录,默认是off
slow-query-log = ON
#配置慢查询记录日志的路径,下面的路径如果使用反斜杠,那么s\会被转义为空格
slow-query-log-file = E:\mysql\mysql-5.6.21-winx64\data\logs\myslow.log
#定义慢查询的时间
long_query_time = 0.5
#记录下没有使用索引的查询
#log-queries-not-using-indexes
#记录数据库启动关闭信息,以及运行过程中产生的错误信息
log-error = E:\mysql\mysql-5.6.21-winx64\data\logs\error.log启动之后生成myslow.log初始化内容如下
MySQL, Version: 5.6.21-log (MySQL Community Server (GPL)). started with:
TCP Port: 3306, Named Pipe: (null)
Time 我定义的慢查询是0.5秒,mysql启动之后操作了好几次,时间都是一秒多,通过show status like 'slow_queries'显示,也确实是记录了慢查询的次数,但是我打开myslow.log文件查看内容的时候,完全没有日志写入。这是什么情况?我的用户对该文件有完全控制的权限。整了一个晚上了,找不到问题出在哪里orz

解决方案 »

  1.   

    我之前碰到过一次类似的,是慢查询不记录少于1秒的语句,不过那次是我自己的错误导致的。
    我发生错误的原因是我的my.cnf自己就有long_query_time这个参数,但是我没看见,于是我自己又写了一个,可能是二者冲突,就没有按我的要求记录,我把自己加的long_query_time删了就好了。
      

  2.   

    show variables like '%slow%';看看配置