簡単なはずですが、次の行を入力すると、
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に書き込んで構成を永続化したいと思います。だからあなたの助けに感謝します。
あなたはこれを追加したと言いました
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