MySQLで実行されたSQLクエリをログ出力する設定

MySQL で実行された全ての SQL クエリをログ出力する設定方法について。

設定自体は簡単なのですが、思わぬところでつまづいたので覚え書きしておきます。

確認環境は、CentOS 6.3、MySQL 5.5.27 です。

設定方法

/etc/my.cnf の [mysqld] セクションにログ出力先を指定します。

[mysqld]
# ログ出力先
log=/var/log/mysql_query.log

指定したログファイルを事前に作成して、書き込めるよう権限も与えておきます。自分は、ファイルが無ければ自動作成されるという固定観念にとらわれていて、なんでログが出力されないのかここでしばらく時間を取られました・・・。

# touch /var/log/mysql_query.log 
# chmod 640 /var/log/mysql_query.log 
# chown mysql:mysql /var/log/mysql_query.log

あとは、MySQL を再起動すれば OK です。

# /etc/init.d/mysqld restart

何か SQL を実行して、ログが出力されることを確認してください。

ちなみに、クエリログはかなりデータ量が多くなります。デバッグの時だけ一時的に設定するとか、ログファイルのローテーションをちゃんと設定するとか、運用にはお気を付けください。

PHPが好きなWeb系エンジニアです。フリーランスでWebサイト制作やWordPressのカスタマイズ、システム開発等を雑多にこなしています。バンカラ応援好きの振り飛車党。 高校野球 / 将棋 / WordPress / ブログ / 食べること / 二児の父親 >>詳しいプロフィールはこちら



シェアする

フォローする