#クエリログを出力するにあたってつまづいた部分があったので備忘録のため記事にしました。
環境
mampを使用してローカルでの開発
- PC
- MacBook Pro late2016
- OS
- Mac OS Catalina 10.15.7
- DB
- MySQL 5.7.25
実現したいこと
クエリ回数を確認してサービスのパフォーマンス向上の参考にしたい
分からなかったこと
- 設定ファイルはどこにあるか?
- 設定内容はどうするか?
設定ファイルはどこにあるか?
Macの場合は設定ファイルはmy.cnfというファイルに設定を書くことで設定できる。
$ mysql --help | grep my.cnf
order of preference, my.cnf, $MYSQL_TCP_PORT,
/etc/my.cnf /etc/mysql/my.cnf /Applications/MAMP/conf/my.cnf ~/.my.cnf
/etc/my.cnf、/etc/mysql/my.cnf、/Applications/MAMP/conf/my.cnf、~/.my.cnfのいづれかに
my.cnfファイルがあれば反映される。
優先順位は左から順に優先される。
つまづいた部分
調べているmy.cnf自体は/etc にあったりするそうだが、私の環境では上記のディレクトリを探してもmy.cnfが見当たらなかった。
そのため、作成する必要に気づく。
今回は/Applications/MAMP/conf/にmy.cnfを作成した。
・設定内容はどうするか?
これについては色々とカスタムはあるので、正解はないと思うのですが、今回は単純に一般クエリログが出力したかっただけなので、一旦は下記のようにmy.cnfに記述。
[mysqld]
general-log=1
general_log_file=/Applications/MAMP/logs/query.log
general-log を1にすることでログを出力
general_log_fileは出力するログファイルの場所を指定
最後に
$ mysql -u root -p
mysql> show variables like 'general_log%';
+------------------+-----------------------------------+
| Variable_name | Value |
+------------------+-----------------------------------+
| general_log | ON |
| general_log_file | /Applications/MAMP/logs/query.log |
+------------------+-----------------------------------+
こうなっていればOKです!
私はこの反映がうまくいかず、つまづいていたのですが、mampの場合は再起動したら無事反映されました。