web-dev-qa-db-ja.com

MariaDB my.cnfでスロークエリログを設定する方法

簡単なはずですが、次の行を入力すると、

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

[mysqld]では、MariaDBは再起動に失敗します。

docs を確認しましたが、私の構成の何が問題なのか理解できませんでした。

また、ファイル権限を/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に書き込んで構成を永続化したいと思います。だからあなたの助けに感謝します。

5
Jand

あなたはこれを追加したと言いました

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
9
RolandoMySQLDBA