1. 記録するログファイルを作成

今回は例として、 /tmpslow.log を作成し、このファイルにスロークエリを記録するようにする。

  • ファイル作成&権限付与:
touch /tmp/slow.log
sudo chown mysql:mysql -R /tmp/slow.log
  • 権限確認
ls -l

output:
-rw-r--r-- 1 mysql mysql  451 Jun 22 17:21 slow.log

-> ownerがmysqlになっている

2. スロークエリを出力する設定を有効化

MySQLの設定ファイルである my.cnf にスロークエリを出力する設定を入れる。今回は5秒以上のクエリを出力する。 /etc/my.cnf にあるファイルを開き、以下を記載:

[mysqld]
...
long_query_time=5
slow_query_log_file=/tmp/slow.log
slow_query_log=1
...

記載できたらMySQLを再起動

service restart mysqld

3.確認

MySQLにログインし、以下のクエリを実行

SELECT SLEEP(5);

/tmp/slow.logを確認すると、無事にスロークエリとして出力されていた。

...
# Time: 220622 17:21:43
# User@Host: root[root] @ localhost []
# Thread_id: 118  Schema:   QC_hit: No
# Query_time: 5.000241  Lock_time: 0.000000  Rows_sent: 1  Rows_examined: 0
# Rows_affected: 0  Bytes_sent: 63
SET timestamp=1655918503;
SELECT SLEEP(5);
...