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 を実行して、ログが出力されることを確認してください。

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

この記事を書いた人

ko31

岩手県出身、群馬県在住のフリーランスWeb系エンジニアです。
Webシステム・アプリ、Webサービス、WordPress開発等を雑多にこなしています。バンカラ応援好きの振り飛車党。
PHP / WordPress / 高校野球 / 将棋 / WordPress / ブログ / 食べること / 二児の父親

>>もっと詳しいプロフィールはこちら

お仕事のご相談・お問い合わせ

当ブログの管理人は、Gosign(ゴーサイン)という屋号でフリーランス Web エンジニアとして活動しています。
ブログの掲載内容はもちろん、Web サイト制作や Web アプリケーション開発などのご相談・ご質問がありましたら、どうぞお気軽にお問い合わせください!

合わせて読みたい記事