LoginSignup
8
8

More than 5 years have passed since last update.

MySQLでクエリのログを記録する

Posted at

概要

開発中にアプリケーションからどのようにMySQLにクエリが実行されているのかを確認します。

前提

  • CentOS上のMySQL5.6.14で確認しました

手順

my.cnfを編集する

$ sudo vim /etc/my.cnf

mysqldディレクティブの下に下記のように指定します。

[mysqld]
general_log=ON
general_log_file=/var/log/mysqld_query.log

MySQLを再起動する

$ sudo /etc/init.d/mysqld restart

ログファイルを確認する

$ sudo tail -f /var/log/mysqld_query.log 
Time                 Id Command    Argument
150310  5:52:45     1 Connect   UNKNOWN_MYSQL_USER@localhost as  on 
            1 Quit  
150310  5:53:05     2 Connect   cid@localhost on sample
            2 Query SELECT `article`.`title`, `article`.`body`, `article`.`id`, `article`.`createdAt`, `article`.`updatedAt` FROM `articles` AS `article`   LIMIT 1 OFFSET 1
            2 Query (SELECT * FROM `tags` AS `tag` WHERE `article_id` = 3  ORDER BY `tag`.`id` ASC)

備考

最初調べてると、my.cnfに下記のように書く例が多かったんですが、

[mysqld]
log=myquery.log

動かしてみると、エラーになるので、今回設定したような方法になりました。

/usr/sbin/mysqld: ambiguous option '--log=/var/log/mysql.log' (log-bin, log_slave_updates)
8
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
8