mysql临时关闭查询日志_MySQL开启慢查询日志

参考网页

0.慢查询日志参数说明

slow_query_log

慢查询开启状态。

slow_query_log_file

慢查询日志存放的位置(这个目录需要MySQL的运行帐号的可写权限,一般设置为MySQL的数据存放目录)。

long_query_time

查询超过多少秒才记录。

说明--mysql中参数查询--使用 show variables 语句

真正查询时可以通过模糊匹配参数。如’slow_query%’。

1.查询mysql中慢查询日志参数

mysql> show variables like 'slow_query%';

+---------------------+------------------------------------------+

| Variable_name       | Value                                    |

+---------------------+------------------------------------------+

| slow_query_log      | OFF                                      |

| slow_query_log_file | E:\mysql-5.7.15-winx64\data\dzn-slow.log |

+---------------------+------------------------------------------+

2 rows in set, 1 warning (0.01 sec)

mysql> show variables like 'long_query_time';

+-----------------+-----------+

| Variable_name   | Value     |

+-----------------+-----------+

| long_query_time | 10.000000 |

+-----------------+-----------+

1 row in set, 1 warning (0.01 sec)

如下图:

1829775

1设置mysql慢查询参数方法1--全局变量设置(临时设置方法)

1829775

自己实践设置slow_query_log 和 slow_query_log_file--注意win7下slow_query_log_file地址的写法(标黄)

mysql> set global slow_query_log='ON';

Query OK, 0 rows affected (0.01 sec)

mysql> set global slow_query_log_file='E:/mysql-5.7.15-winx64/data/slow.log';

Query OK, 0 rows affected (0.03 sec)

mysql> show variables like 'slow_query%';

+---------------------+--------------------------------------+

| Variable_name       | Value                                |

+---------------------+--------------------------------------+

| slow_query_log      | ON                                   |

| slow_query_log_file | E:/mysql-5.7.15-winx64/data/slow.log |

+---------------------+--------------------------------------+

2 rows in set, 1 warning (0.01 sec)

如下图,可见都生效了

1829775

自己实践设置long_query_time

发现没有生效???

1829775

登出mysql,再次登入,发现还是生效了。不知道为何不能立即显示生效,估计跟mysql自身机制有关。

1829775

关闭mysql服务然后重启mysql服务查看参数是否生效--结果发现刚才的设置都失效了

1829775

2.2设置mysql慢查询参数方法2--配置文件设置

设置参考

1829775

自己实践

先把mysql服务器停了。找到配置文件

1829775

修改配置文件,如下图:

slow_query_log = ON

slow_query_log_file = E:/mysql-5.7.15-winx64/data/slow.log

long_query_time = 1

1829775

重启mysql服务器,查看参数,发现没有生效,为啥?

为何设置没有生效??????--配置文件错了

停止mysql服务器,将【my-default.ini】文件拷贝一份并改名为【my.ini】,然后再次启动mysql服务器。

1829775

此时登录并查询,可见配置文件中的配置参数都生效了,如下图:

1829775

而且这种生效是永久的生效,不是暂时的。

2.3两种设置方法的不同

2.1的设置方法是暂时的,重启mysql服务器后配置就失效了。2.2在配置文件my.ini中进行配置是永久的,不会因mysql服务器的重启而失效。

my.ini是mysql服务器的配置文件,my-default.ini不是。没有my.ini的情况下估计mysql就以自己系统中默认的配置参数为准的,而非读取的my-default.ini中的参数

测试慢查询日志

执行一条慢查询SQL语句(执行了两遍 select sleep(2);语句)

mysql> select sleep(2);

+----------+

| sleep(2) |

+----------+

|        0 |

+----------+

1 row in set (2.01 sec)

1829775

查看是否生成慢查询日志

由于慢查询的时间修改为了1s,select sleep(2);这句sql语句要执行最少2s,打开日志查看,可以看到慢查询日志中多了两条记录。

1829775

★mysql服务器慢查询配置方案

采用【2.2设置mysql慢查询参数方法2--配置文件设置】的方案进行配置

停止msql服务

修改mysql服务器的配置文件my.ini

1829775

配置文件内容,如图

slow_query_log=ON

slow_query_log_file=E:/mysql-5.7.15-winx64/data/slow.log

long_query_time=1

1829775

重启mysql服务,慢查询日志生效

引申的问题--慢查询日志现在就一个,如果过大怎么办?

参考

说明--并未做试验

思路很简单,就是按日期(按日或者按月)或者按照不同库进行切割。考虑到服务器端的存储空间还可以用脚本对日志定期处理。

慢查询日志就是用来手动或者自动化分析出来慢查询语句然后优化系统用的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值