MySQLでクエリ発行したときにクソ遅いクエリが合った場合、それをログに記録する仕組みがある。
slow_query_log
っちゅうやつ。
デフォルトだと有効になってない。
fw_error_www
fw_error_www
デフォルトでは、スロークエリーログは無効になっています。
っちゅうことなんで、スロークエリーログを記録したけりゃ、有効化してあげる必要がある。
slow_query_logが吐かれる場所を指定する
slow_query_log_file=ファイルパス
で指定する。
恒久的に設定するにはmy.cnfの、[mysqld]の欄に書くのよ
my.cnfにslow_query_logの設定を記述する場合、記述する場所(セクション?)は、[mysqld]の欄に書くのよ、あなた。
記載例
[mysqld]
slow_query_log=1
slow_query_log_file=/var/log/mysql/slow-query.log
- 1行目のslow_query_logで、「1」を指定することにより、スロークエリーログを有効化。
- デフォルト値は「0」
- 2行目のslow_query_log_fileで、スロークエリーログが吐かれるファイルを指定している。
mysqlサービス再起動でmy.cnfき書いた設定を反映させる
# systemctl restart mysqld.service
↓
Activeになってるか確認する
# systemctl status mysqld.service
一時的に設定するには、mysqlに接続してコマンドで設定する
設定手順:
1.mysqlに、rootユーザとして接続。
$ mysql -uroot
2.事前確認:設定がOFFになっていることを確認。
mysql> show variables like 'slow_query%';
3.slowクエリを吐き出す設定をONにする。
mysql> set global slow_query_log=1;
mysql> set global slow_query_log_file='/var/log/mysql/slow-query.log';
4.事後確認:設定がONになっていることを確認。
mysql> show variables like 'slow_query%';
設定戻し手順:
1.mysqlに、rootユーザとして接続。
$ mysql -uroot
2.事前確認:設定がONになっていることを確認。
mysql> show variables like 'slow_query%';
3.slowクエリを吐き出す設定をOFFにする。
mysql> set global slow_query_log=0;
4.事後確認:設定がOFFになっていることを確認。
mysql> show variables like 'slow_query%';
※または、MySQLサービスが再起動されればもとに戻ります。
参考:
コメント