【MySQL】実行したQuery(SQL)をLog出力して監視する設定

mysql_logMySQLに発行するSQLを監視したかったので設定したときの覚書。

環境: CentOS 5.9 x86_64, MySQL 5.5.29

参考にしたのは下記Site

 

MySQL起動Scriptを編集。「--log」「--general-log」を追加
# vi /etc/rc.d/init.d/mysqld

$exec   --datadir="$datadir" --socket="$socketfile" \
        --pid-file="$mypidfile" \
        $MYOPTIONS \
        --basedir=/usr --user=mysql --general-log >/dev/null 2>&1 &

 

設定cnfを編集
# vi /etc/my.cnf

[mysqld]
# output query log
log=/var/log/mysql_query.log

 

ログファイルの作成
# touch /var/log/mysql_query.log
# chmod 640 /var/log/mysql_query.log
# chown mysql. /var/log/mysql_query.log

MySQL再起動
# /etc/rc.d/init.d/mysqld restart

監視開始
# tail -f /var/log/mysql_query.log

ほっておくとファイル容量が大きくなるので、普段はOFFにしておいた方がいいかも。

 

< 2013/01/31 Modified >
起動ログファイルに下記Warningが出力された。今は「--general-log」を使うらしい。
参考: MySQL :: MySQL 5.5 Reference Manual :: 5.2.1 Selecting General Query and Slow Query Log Output Destinations

[Warning] The syntax '--log' is deprecated and will be removed in a future release. Please use '--general-log'/'--general-log-file' instead.

 

< Related Posts >