MySQLでのログは標準でOFFなので、これを有効にする。
まず、
/etc/mysql/my.conf (Debian)
を開いて編集。
■ジェネラルログ(一般ログ)
# general_log_file = /var/log/mysql/mysql.log
# general_log = 1
↑先頭の#を外す。
■スロウクエリ
# Here you can see queries with especially long duration
# log_slow_queries = /var/log/mysql/mysql-slow.log
# long_query_time = 2
↑下二行の#を外す。
編集後、MySQLの停止、再開。
sudo /etc/init.d/mysql restart
すると、
Stopping MySQL database server: mysqld.
Starting MySQL database server: mysqld.
と表示され、MySQLが再起動され、設定が反映される。
上記で示した場所
/var/log/mysql/mysql.log
/var/log/mysql/mysql-slow.log
に、ログファイルが生成されていることを確認する。
スロウクエリは、long_query_timeで指定した時間以上の場合に記録されるので、スロウクエリがない場合は記録されないが、
ジェネラルログは逐一記録されるので、MySQLの稼働が多いとログが膨大になるので注意。
スロウクエリの例
# Time: 131225 23:30:00
# User@Host: root[root] @ localhost []
# Query_time: 2.941743 Lock_time: 0.000372 Rows_sent: 362 Rows_examined: 7138142
use test;
SET timestamp=1387952279;
技術評論社
売り上げランキング: 14,492