mysql如何启动慢查日志
本文主要给大家介绍mysql如何启动慢查日志,其所涉及的东西,从理论知识来获悉,有很多书籍、文献可供大家参考,从现实意义角度出发,累计多年的实践经验可分享给大家。
sql与索引优化
数据库表结构优化
系统配置
硬件
mysql> show variables like 'slow_query_log';+----------------+-------+| Variable_name | Value |+----------------+-------+| slow_query_log | OFF |+----------------+-------+1 row in set (0.00 sec)
慢日志查询没有开启,可以开启一下。
找到my.cnf,添加如下内容sudo vim /usr/local/mysql/my.cnf
添加慢日志查询
log_output=fileslow_query_log=onslow_query_log_file = /tmp/mysql-slow.loglog_queries_not_using_indexes=onlong_query_time = 1
重启mysql。
确定修改是否成功启动慢日志查询
mysql> show variables like 'slow_query_log';+----------------+-------+| Variable_name | Value |+----------------+-------+| slow_query_log | ON |+----------------+-------+1 row in set (0.00 sec)
mysql> show variables like '%quer%';+----------------------------------------+------------------------------------+| Variable_name | Value |+----------------------------------------+------------------------------------+| binlog_rows_query_log_events | OFF || ft_query_expansion_limit | 20 || have_query_cache | YES || log_queries_not_using_indexes | ON || log_throttle_queries_not_using_indexes | 0 || long_query_time | 1.000000 || query_alloc_block_size | 8192 || query_cache_limit | 1048576 || query_cache_min_res_unit | 4096 || query_cache_size | 8388608 || query_cache_type | OFF || query_cache_wlock_invalidate | OFF || query_prealloc_size | 8192 || slow_query_log | ON || slow_query_log_file | /tmp/mysql-slow.log |
+----------------------------------------+------------------------------------+
执行如下SQL语句来查看mysql慢查询的状态show variables like '%slow%';
执行一次慢查询操作 其实想要执行一次有实际意义的慢查询比较困难,因为在自己测试的时候,就算查询有20万条数据的海量表,也只需要0.几秒。我们可以通过如下语句代替:
SELECT SLEEP(10);
查看慢查询的数量 通过如下sql语句,来查看一共执行过几次慢查询:
show global status like '%slow%';
这时候再看,已经开启了慢查询日志。
$ sudo cat /tmp/mysql-slow.log /usr/local/mysql/bin/mysqld, Version: 5.6.40-log (Source distribution). started with:Tcp port: 3306 Unix socket: /tmp/mysql.sockTime Id Command Argument
如果更改日志目录位置
比如,更改为/home/msyql/log/mysql-slow.log
至少需要将log目录所有者设置为mysql:mysql。
这样重启mysql的时候,才能自动生成mysql-slow.log文件。
jiqing@jiqing-pad:/home/mysql/log$ ll总用量 12drwxr-xr-x 2 mysql mysql 4096 5月 31 01:46 ./drwxr-xr-x 3 jiqing jiqing 4096 5月 31 01:26 ../-rw-rw---- 1 mysql mysql 175 5月 31 01:46 mysql-slow.logjiqing@jiqing-pad:/home/mysql/log$ pwd/home/mysql/log
如果log目录不是mysql用户权限,将无法生成日志文件,mysql用户无权写入数据。
看了以上介绍mysql如何启动慢查日志,希望能给大家在实际运用中带来一定的帮助。本文由于篇幅有限,难免会有不足和需要补充的地方,大家可以继续关注行业资讯板块,会定期给大家更新行业新闻和知识,如有需要更加专业的解答,可在官网联系我们的24小时售前售后,随时帮您解答问题的。