mysql语句跟踪
 
1,首先查看日志记录功能是否打开:
mysql>show variables like '%log%';
general_log                         | ON
log                                 | ON
log_bin                             | ON
slow_query_log                      | ON

查询结果显示为on,则表示已打开。

2,关于如何打开语句跟踪,搜索一下,网上一大堆,自己实验了一下。
最开始的时候,不管如何vi /etc/my.cnf编辑配置文件,重启后还是显示为off,并没有打开,但是我的bin-log是打开的。想起当时设置replication的时候,看到一篇文章说,bin-log一定要放在[mysqld]下,于是把log,log-slow-queries,log-bin放在my.cnf 的[mysqld]下,service mysqld restart,再显示show variables like '%log%'; 就打开了。

my.cnf片段
# binary logging is required for replication
log-bin=mysql-bin
log=/usr/local/mysql/data/query.log
log-slow-queries = /usr/local/mysql/data/slow.log
long_query_time=1
注意 log-bin    log log-slow-queries 一定要放在mysqld下,放文件末尾没有效果的。

3,查看结果
mysqlbinlog bin.log
tail -f /usr/local/mysql/data/query.log
ctrl+c 退出

4,5.1.6版本开始支持全局变量的方式,不用重启Mysql设置general_log,slow_query_log的开启,关闭。
mysql> set global general_log = off;
Query OK, 0 rows affected (0.00 sec)
mysql> show variables like 'general%';
+------------------+---------------------------------+
| Variable_name    | Value                           |
+------------------+---------------------------------+
| general_log       | OFF                             |
| general_log_file  | /usr/local/mysql/data/hp-pc.log |
+----------------- -+---------------------------------+
2 rows in set (0.00 sec)

mysql> set global general_log = on;
Query OK, 0 rows affected (0.00 sec)

mysql> show variables like 'general%';
+------------------+---------------------------------+
| Variable_name    | Value                           |
+------------------+---------------------------------+
| general_log       | ON                              |
| general_log_file  | /usr/local/mysql/data/hp-pc.log |
+----------------- -+---------------------------------+
2 rows in set (0.00 sec)