如何在 MariaDB my.cnf 中设置慢查询日志?

Jan*_*and 5 mysql mariadb performance my.cnf mysql-5.6 slow-log

这应该很容易,但是当我放上这些行时:

log_slow_queries = 1
long_query_time = 1
log-slow-queries = /var/log/mysql/slow_query.log
log_queries_not_using_indexes
Run Code Online (Sandbox Code Playgroud)

在 中[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
Run Code Online (Sandbox Code Playgroud)

但是,我可以在命令行中设置参数:

SET GLOBAL slow_query_log_file = '/var/log/mysql/slow_query.log';
SET GLOBAL LONG_QUERY_TIME = 1;
SET GLOBAL slow_query_log = 'ON';
Run Code Online (Sandbox Code Playgroud)

并看到它们已设置:

+---------------------+--------------------------------------------------------------------------------------------------------------+
| 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)
Run Code Online (Sandbox Code Playgroud)

甚至缓慢的查询也被写入日志。但我想通过将它们写入 my.cnf 来使配置持久化。所以感谢你的帮助。

Rol*_*DBA 9

你说你加了这个

log_slow_queries = 1
long_query_time = 1
log-slow-queries = /var/log/mysql/slow_query.log
log_queries_not_using_indexes
Run Code Online (Sandbox Code Playgroud)

这是 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
Run Code Online (Sandbox Code Playgroud)