【MySQL】実行された全てのクエリを出力する「一般クエリログ」について
更新系・参照系問わずすべてのログが記録される。
ユーザーの接続・切断情報も記録される。
有効にするとすぐにログが肥大化するため、基本的にデバッグなどのときのみ有効にすると良い。
MySQL 5.6.3以降ではデフォルトでパスワードは平文で保存されることはないが、それより前の場合は書き換えないため、ログを保護する必要がある。
本番環境では要注意。
以下、一般クエリログに関連する設定値。
SHOW VARIABLES LIKE '%log%';
などで確認する。
- general_log
- ONにすると一般クエリログが有効になる
- general_log_file
- ログの出力先を指定
一般クエリログを有効にする。
SET GLOBAL general_log = 'ON';
SET GLOBALなので、全ての接続について影響を受ける。
再起動不要。
SET sql_log_off = 'ON';
セッション変数の変更なので、現在の接続についてのみ影響を受ける。
他の接続については影響を受けない。
再起動不要。
ログの出力先を変更する。
SET GLOBAL general_log_file = '/var/lib/mysql/hogefuga.log'