MySQL slow_query_log はmy.cnfの[mysqld]の欄に書くのよ

MySQL
スポンサーリンク

 

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サービスが再起動されればもとに戻ります。

参考:

 

 

コメント