本記事は、この記事からかなりそのまま引用している。
slow queryの設定方法は2通り。
mysql> set global slow_query_log_file = '/tmp/mysql-slow.log';
mysql> set global long_query_time = 5;
mysql> set global slow_query_log = ON;
または、my.confからの場合は
/etc/my.conf
[mysqld]
slow_query_log=ON
long_query_time = 5
slow_query_log_file = /tmp/mysql-slow.sql
my.confからの場合は再起。
/etc/init.d/mysqld restart
#上手くいかない時がある
とりあえず
もう一回再起動
再起動は成功するけどやっぱり出ない場合は、テーブルに出力してみる
mysql> set global log_output = 'TABLE';
念のため設定確認...。
mysql> show variables like 'slow%';
+---------------------+---------------------+
| Variable_name | Value |
+---------------------+---------------------+
| slow_launch_time | 2 |
| slow_query_log | OFF |
| slow_query_log_file | /tmp/mysql-slow.sql |
+---------------------+---------------------+
slow_query_logがOFFになってたらONへ変更。
mysql> set global slow_query_log = ON
これで出力されるはず。
mysql> select * from mysql.slow_log;
テーブルには出せたけど、やっぱりファイルに出したい
出力先設定。
mysql> set global log_output = 'FILE';
-
この設定をしたときに権限エラーがでたら、出力先ファイルslow_query_log_fileの権限を確認して変更。
-
/etc/my.confにゴミが入ってないか確認。(自分はこれw)
-
long_query_timeを0にしてみる。
mysql> set global long_query_time = 0;