follow us in feedly

MySQLで一般クエリログを取得する方法

MySQLで一般クエリログを出力する方法のメモ。
一般クエリログはMySQLへの接続や切断、SQLなどを記録します。
設定方法は、オプションをつけて起動する方法とシステム変数で設定する方法があります。

Railsなどのフレームワークではログを取れますが、
フレームワークは使わないとかMySQLでログを取りたいとかあるかもしれない。

MySQLの起動スクリプトにログのオプションを設定する

/etc/rc.d/init.d/mysqldを編集します。
起動時に –log というオプションを使用するようにします。
クエリログの出力先を指定することもできます。
MySQLを再起動するとクエリログが有効になります。

$exec --datadir="$datadir" --socket="$socketfile"
      --log=/var/log/mysql/mysql.log --pid-file="$mypidfile"
      --basedir=/usr --user=mysql >/dev/null 2>&1 &

グローバルシステム変数でクエリログを設定する

MySQLサーバに接続して、下記を実行すればクエリログが有効になります。
この方法であれば、MySQLを再起動する必要はないです。
MySQL 5.1.12以降でしかできません。

mysql> use mysql;
mysql> SET GLOBAL general_log = 'ON';
mysql> SET GLOBAL general_log_file = '/var/log/mysql/mysql.log';

general_logでクエリログの有効化/無効化を指定します。
general_log_fileでクエリログの出力先を指定します。

以上です。

タグ:

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください