Edited at

mac/MAMP で使用している mysql に スロークエリログ を設定する【MySQL】

More than 1 year has passed since last update.


環境

バージョン

macOS Sierra
バージョン10.2.6

MAMP
バージョン4.1.1 (492)

MySQL
version: 5.6.35

既に起動しているMYSQLに突貫工事のごとく設定をする。

(本来は、my.cnfに書けばいいんだよね(^_^)/


設定方法

① mysql にログインする

$ cd /Applications/MAMP/bin

$ ./mysql -u root -p 

② 設定する

既にMYSQLを起動して実行している状態のときは、

set global show をしようすることにより設定が可能になる。

$ mysql> set global show_query_log=1;

スロークエリログが吐かれてしまう秒数を設定できる。

設定する単位はである。つまり、下記は1秒!

$ mysql> set global long_query_time=1;

log_queries_not_using_indexes を設定すると、

スロークエリログの秒に達さないとしてもINDEXをはっていないクエリを

スロークエリログに吐き出すことができる。

$ mysql> set global log_queries_not_using_indexes=1;

ファイル名は、任意の場所が設定できる。

$ mysql> set global slow_query_log_file ='/Applications/MAMP/logs/slow_query.log';

③ ターミナルで mysql を ログアウト し再度ログインする

ログアウトしないと long_query_time には修正前の値が表示する。

$ mysql>  show variables like 'long_query%';

+-----------------+-----------+
| Variable_name | Value |
+-----------------+-----------+
| long_query_time | 1.000000 |
+-----------------+-----------+
1 row in set (0.00 sec)

※ デフォルトは10秒が設定されている。