Mysql

如何在 MariaDB my.cnf 中設置慢查詢日誌?

  • December 5, 2015

這應該很容易,但是當我輸入這些行時:

log_slow_queries = 1
long_query_time = 1
log-slow-queries = /var/log/mysql/slow_query.log
log_queries_not_using_indexes

[mysqld],MariaDB 無法重新啟動。

我查看了文件,但無法弄清楚我的配置有什麼問題。

另外,我已將文件權限設置為/var/log/mysql/slow_query.log

# ls -al /var/log/mysql/slow_query.log 
-rw-rw-r-- 1 mysql mysql 744682 Dec  4 23:46 /var/log/mysql/slow_query.log

但是,我可以在命令行中設置參數:

SET GLOBAL slow_query_log_file = '/var/log/mysql/slow_query.log';
SET GLOBAL LONG_QUERY_TIME = 1;
SET GLOBAL slow_query_log = 'ON';

並看到它們已設置:

+---------------------+--------------------------------------------------------------------------------------------------------------+
| Variable_name       | Value                                                                                                        |
+---------------------+--------------------------------------------------------------------------------------------------------------+
| log_slow_filter     | admin,filesort,filesort_on_disk,full_join,full_scan,query_cache,query_cache_miss,tmp_table,tmp_table_on_disk |
| log_slow_rate_limit | 1                                                                                                            |
| log_slow_verbosity  |                                                                                                              |
| slow_launch_time    | 2                                                                                                            |
| slow_query_log      | ON                                                                                                           |
| slow_query_log_file | /var/log/mysql/slow_query.log                                                                                |
+---------------------+--------------------------------------------------------------------------------------------------------------+
6 rows in set (0.00 sec)

甚至慢查詢也被寫入日誌。但我想通過將配置寫入 my.cnf 來使配置持久化。所以感謝你的幫助。

你說你添加了這個

log_slow_queries = 1
long_query_time = 1
log-slow-queries = /var/log/mysql/slow_query.log
log_queries_not_using_indexes

這是 MySQL 5.0 設置慢查詢日誌的舊方式

要啟動 MySQL 5.6 和 MariaDB 的慢查詢日誌,必須使用以下命令

因此,你需要這個my.cnf

slow_query_log = 1
long_query_time = 1
slow_query_log_file = /var/log/mysql/slow_query.log
log_queries_not_using_indexes

引用自:https://dba.stackexchange.com/questions/122964