背景
キャバクラのマッチングサービスを手掛けているのですが、お客さんからサイトの表示が重いと問い合わせがありました。
どこがボトルネックになっているか調査のため、とりあえずスロークエリーログの設定をしてみることに。
MySQLのバージョン確認
一応 MySQLのバージョンを確認しておく
[ec2-user@server ~]$ mysqld --version
/usr/sbin/mysqld Ver 8.0.34 for Linux on x86_64 (MySQL Community Server - GPL)
SQLでも確認できる
mysql> select version();
+-----------+
| version() |
+-----------+
| 8.0.34 |
+-----------+
スロークエリーログの設定
/etc/my.cnf の編集
[mysqld]
〜省略〜
slow_query_log=1
long_query_time=1
slow_query_log_file=/var/log/mysql-slow.log
MySQLの再起動
[ec2-user@server ~]$ sudo systemctl restart mysqld
設定が有効になっているか確認
mysql> SHOW VARIABLES LIKE 'slow_query%';
+---------------------+-------------------------+
| Variable_name | Value |
+---------------------+-------------------------+
| slow_query_log | OFF |
| slow_query_log_file | /var/log/mysql-slow.log |
+---------------------+-------------------------+
2 rows in set (0.01 sec)
え、、slow_query_logがOFFになってる??
しかし slow_query_log_file は反映されている。。
謎の現象。
どうやら設定したログファイルに、mysqlの権限がないとONにならないらしい。
ということで、ログファイルのパーミッションを変更
[root@server log]# chown mysql:mysql /var/log/mysql-slow.log
再び再起動
[ec2-user@server ~]$ sudo systemctl restart mysqld
再確認
mysql> SHOW VARIABLES LIKE 'slow_query%';
+---------------------+-------------------------+
| Variable_name | Value |
+---------------------+-------------------------+
| slow_query_log | ON |
| slow_query_log_file | /var/log/mysql-slow.log |
+---------------------+-------------------------+
2 rows in set (0.01 sec)
いけたいけた。
めでたしめでたし。
コメント