下面是解決方案:
原來的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的檔案大小是否有改變,這樣才說明慢查詢是開啟成功了的,並且有記錄到記錄檔裡.
原文來自:blog.slogra.com