MySQL
を開発時に使用しているときに、実行されているクエリのログを確認したい場合の設定方法について説明したいと思います。
デバッグ時などに実際に実行されているクエリを確認する際に役に立つと思います。
前提条件
MySQL : 5.6.35
ログの出力設定の確認
クエリのログは「一般クエリーログ」というログに出力されるのですが、「一般クエリーログ」はデフォルトでは OFF
になっているので、まずは出力されるように設定されているか下記のクエリを実行して確認します。
show variables like 'general_log%';
すると、「 general_log
」と「 general_log_file
」の2つの設定が確認できます。
- general_log : 一般クエリーログの
ON
、OFF
の設定 - general_log_file : 一般クエリーログの出力先
「 general_log
」が OFF
になっているとログが出力されないので「 general_log
」を ON
にします。
general_log を ON にする
下記のクエリを実行すると「 general_log
」を ON
にすることができます。
set global general_log = on;
これで「 general_log_file
」に設定されているログ出力先にクエリのログが出力されるようになります。
ログ出力時の注意点
クエリのログを全て出力するのでログファイルの容量はどんどん大きくなります。容量に余裕がない場合はログの設定を OFF
にしたり、ログファイルを定期的に削除するようにしましょう。
ログの出力設定を OFF
にするには下記のクエリを実行します。
set global general_log = off;
最後に
デバッグ時など処理の詳細を分析したい場合に MySQL
のクエリログを確認することで、不具合の発見やプログラムの見直しなどに役に立つと思います。特に最近の開発環境だとフレームワークを利用して開発することが多く、あまり素の SQL
を意識する事もなくなっているので、プログラムは一見正しそうだけど意図するクエリが実行されてないような場合に、今回の設定を有効活用していきたいですね。
コメント