MySQL Server への接続および実行された SQL クエリを全て記憶する「一般クエリログ (General query log)」について本稿では解説します。
一般クエリログとは?
一般クエリログ (General query log) は、クライアントからの MySQL Server への接続・接続解除の情報、およびクライアントから実行された全ての SQL クエリを出力してくれるログです。 SQL 実行エラーが発生した際に、どのような SQL が実行されたのかを正確に把握するのに役に立ちます。
MySQL の初期状態では一般クエリログは出力されませんので、出力をさせたい場合には次で述べるような設定が必要です。
設定
一般クエリログを出力させるためには、設定ファイル my.cnf (Windows版を利用している場合には my.ini) に設定の追加が必要です。 [mysqld] のセクションに以下のように設定します。
[mysqld]
(略)
general_log=1
general_log_file=/var/log/mysql/general-query.log
※ MySQL5.0までは log=/path/to/mysql.log のように log というオプションで出力設定をしていましたが、MySQL5.1からオプションが変更になりました。
上の例のように general_log オプションで「1」を指定することで出力が有効になり(「0」だと無効)、general_log_file オプションで出力先ファイル名を指定します。