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) |
转载于:https://blog.51cto.com/jxwpx/213578