2010年1月10日日曜日

MySQLでSQL文をログに出力

スズキです。

MySQLを利用したプログラムを開発する上で、
MySQL上で実行されている実際のSQLを確認しながら、
開発したい場合も多々あると思います。

そのような時は、my.cnfに下記を記述します。

--------【my.cnf】--------
...
[mysqld]
...
log=query.log
...
--------

すると、以下のように、すべてのSQLが出力されるようになります。

--------【query.log】--------
100110 14:35:21
5359 Connect theschwartz@localhost on theschwartz
5359 Query set autocommit=1
5359 Query
SELECT funcmap.funcid, funcmap.funcname
FROM funcmap
5359 Quit
5360 Connect theschwartz@localhost on theschwartz
5360 Query set autocommit=1
5360 Query
INSERT INTO job(
funcid, arg, uniqkey, insert_time, run_after, grabbed_until, priority, coalesce)
VALUES (
'2', '\0\0\0\n input.jpg\0\0\0file', NULL, '1263101721',
'1263101721', '0', NULL, NULL)
5360 Quit
--------

(上記のログはTheSchwartzにエンキューしたときのSQLです)
そろそろ、TheSchwartzのソース読むか…

--------
http://www.suz-lab.com

0 コメント: