mysql> show variables like '%long_query_time%'; +-----------------+----------+ | Variable_name | Value | +-----------------+----------+ | long_query_time | 0.500000 | +-----------------+----------+ 1 row in set (0.00 sec)mysql> 看下你当前的参数值是多少?
可能楼主的my.cnf不是真正要用的配置 文件, 建议先查一下: mysql> show variables like '%long_query_time%';如果不符,可以重新找找真正用的配置 文件是哪个.
show variables like '%query%'; 贴出以供分析。
无效。设置后重新连接MySQL也无效。
坚挺的2秒: mysql> show variables like '%query%'; +------------------------------+----------------------------+ | Variable_name | Value | +------------------------------+----------------------------+ | ft_query_expansion_limit | 20 | | have_query_cache | YES | | long_query_time | 2.000000 | | query_alloc_block_size | 8192 | | query_cache_limit | 2097152 | | query_cache_min_res_unit | 4096 | | query_cache_size | 67108864 | | query_cache_type | ON | | query_cache_wlock_invalidate | OFF | | query_prealloc_size | 8192 | | slow_query_log | ON | | slow_query_log_file | /var/lib/mysql/sql_row.log | +------------------------------+----------------------------+ 12 rows in set (0.00 sec)
坚挺的2秒: mysql> show variables like '%query%'; +------------------------------+----------------------------+ | Variable_name | Value | +------------------------------+----------------------------+ | ft_query_expansion_limit | 20 | | have_query_cache | YES | | long_query_time | 2.000000 | | query_alloc_block_size | 8192 | | query_cache_limit | 2097152 | | query_cache_min_res_unit | 4096 | | query_cache_size | 67108864 | | query_cache_type | ON | | query_cache_wlock_invalidate | OFF | | query_prealloc_size | 8192 | | slow_query_log | ON | | slow_query_log_file | /var/lib/mysql/sql_row.log | +------------------------------+----------------------------+ 12 rows in set (0.00 sec)是啊,你看你当前的 long_query_time 是2.0000,就是2秒嘛。所以只记录超过2秒的慢查询sql,你如果在my.cnf里面设置了,就需要重新启动mysql,才能生效。或者你在线设置 set global long_query_time =0.1;
+-----------------+----------+
| Variable_name | Value |
+-----------------+----------+
| long_query_time | 0.500000 |
+-----------------+----------+
1 row in set (0.00 sec)mysql> 看下你当前的参数值是多少?
建议先查一下:
mysql> show variables like '%long_query_time%';如果不符,可以重新找找真正用的配置 文件是哪个.
贴出以供分析。
mysql> show variables like '%query%';
+------------------------------+----------------------------+
| Variable_name | Value |
+------------------------------+----------------------------+
| ft_query_expansion_limit | 20 |
| have_query_cache | YES |
| long_query_time | 2.000000 |
| query_alloc_block_size | 8192 |
| query_cache_limit | 2097152 |
| query_cache_min_res_unit | 4096 |
| query_cache_size | 67108864 |
| query_cache_type | ON |
| query_cache_wlock_invalidate | OFF |
| query_prealloc_size | 8192 |
| slow_query_log | ON |
| slow_query_log_file | /var/lib/mysql/sql_row.log |
+------------------------------+----------------------------+
12 rows in set (0.00 sec)
mysql> show variables like '%query%';
+------------------------------+----------------------------+
| Variable_name | Value |
+------------------------------+----------------------------+
| ft_query_expansion_limit | 20 |
| have_query_cache | YES |
| long_query_time | 2.000000 |
| query_alloc_block_size | 8192 |
| query_cache_limit | 2097152 |
| query_cache_min_res_unit | 4096 |
| query_cache_size | 67108864 |
| query_cache_type | ON |
| query_cache_wlock_invalidate | OFF |
| query_prealloc_size | 8192 |
| slow_query_log | ON |
| slow_query_log_file | /var/lib/mysql/sql_row.log |
+------------------------------+----------------------------+
12 rows in set (0.00 sec)是啊,你看你当前的 long_query_time 是2.0000,就是2秒嘛。所以只记录超过2秒的慢查询sql,你如果在my.cnf里面设置了,就需要重新启动mysql,才能生效。或者你在线设置 set global long_query_time =0.1;
mysql> show variables like '%query%';
+------------------------------+----------------------------+
| Variable_name | Value |
+------------------------------+----------------------------+
| ft_query_expansion_limit | 20 |
| have_query_cache | YES |
| long_query_time | 2.000000 |
| query_alloc_block_size | 8192 |
| query_cache_limit | 2097152 |
| query_cache_min_res_unit | 4096 |
| query_cache_size | 67108864 |
| query_cache_type | ON |
| query_cache_wlock_invalidate | OFF |
| query_prealloc_size | 8192 |
| slow_query_log | ON |
| slow_query_log_file | /var/lib/mysql/sql_row.log |
+------------------------------+----------------------------+
12 rows in set (0.00 sec)是啊,你看你当前的 long_query_time 是2.0000,就是2秒嘛。所以只记录超过2秒的慢查询sql,你如果在my.cnf里面设置了,就需要重新启动mysql,才能生效。或者你在线设置 set global long_query_time =0.1;
重启过MySQL,连CentOS都重启了。用service mysql restart重启的,重启CentOS用的reboot命令,但是对long_query_time都不起作用。
在线设置 set global long_query_time =0.1起作用,但是这个每次重启MySQL都要重新设置
错误原因是这样的:我用的my.cnf是官方自带的,我只在上面修改。慢日志查询配置了log-slow-queries和long_query_time两个参数,我配置的时候在my.cnf中搜索了log-slow-queries,发现没有,于是就想当然的认为long_query_time也没有,然后就自己写了一个long_query_time。其实官方这个配置文件是有long_query_time这个变量的,他出现的位置在我的后面,所以我配置的时间就被覆盖,这就是无论我怎么修改也不起作用的原因。
删除一个多余的long_query_time,重启MySQL,修改生效。