今天公司同事过来问我,他在测试服务器上把mysql的慢查询开启了,怎么没有日志生成,我当场就笑他说是不是没有配置对,他很肯定的给我说是正确的,去他位置上看了看,发现慢查询没有启动,但看了下my.cnf又有写配置,当时就感觉很奇怪,搜了下mysql版本,发现原来mysql版本是5.6.14的,找到了脚本就很好解决问题了. 下面是解决方法: 原来的my.cnf配置文件: [client] default-character-set=utf8 [mysql] default-character-set=utf8 [mysqld] slow-query-log-file=/var/log/mysql/slow.log long_query_time=0.03 log-queries-not-using-indexes character-set-server=utf8 collation-server=utf8_unicode_ci init-connect='SET NAMES utf8' max_connections=3000 ..... 这里我就不整完了,只贴出关键的. 修改后的my.cnf配置文件: [client] default-character-set=utf8 [mysql] default-character-set=utf8 [mysqld] slow_query_log=on slow-query-log-file=/var/log/mysql/slow.log long_query_time=0.03 log-queries-not-using-indexes character-set-server=utf8 collation-server=utf8_unicode_ci init-connect='SET NAMES utf8' max_connections=3000 ..... 修改完配置文件后,记得保存重启mysql服务. 当然也可以在mysql里直接开启慢查询: mysql>set global slow_query_log='ON'; 查询慢查询是否开启: 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 "%query%"; +------------------------------+-------------------------+ | Variable_name | Value | +------------------------------+-------------------------+ | binlog_rows_query_log_events | OFF | | ft_query_expansion_limit | 20 | | have_query_cache | YES | | long_query_time | 0.030000 | | query_alloc_block_size | 8192 | | query_cache_limit | 1048576 | | query_cache_min_res_unit | 4096 | | query_cache_size | 1048576 | | query_cache_type | OFF | | query_cache_wlock_invalidate | OFF | | query_prealloc_size | 8192 | | slow_query_log | ON | | slow_query_log_file | /var/log/mysql/slow.log | +------------------------------+-------------------------+ 13 rows in set (0.00 sec) 最后检查/var/log/mysql/slow.log的用户和组是否为mysql,权限是否可写,并且查看slow.log的文件大小是否有改变,这样才说明慢查询是开启成功了的,并且有记录到日志文件里. ps: http://my.oschina.net/moooofly/blog/160201 http://blog.itpub.net/29291882/viewspace-1064074/ http://bbs.chinaunix.net/thread-4099047-1-1.html (责任编辑:IT) |