mysql记录所有执行过的SQL

前不久,遇见一些问题,要监控一下SQL的执行,看看是不是有哪些SQL是要去掉的之类的

于是我上网找啊找啊,给出来的结果都是一种,修改my.cnf文件

我按着网上的说法去做,结果我直接崩溃了,

也不知道是不是我的环境是自己编译安装的还是其他什么的,反正按照改了以后就是死活运行不起来

没办法,只好自己看看怎么弄了

这时想起了刚刚接触mysql时的一个SQL

show variables like "%name%";

set names utf8;

瞬间明了,找到了一个在没有重启mysql就不会失效的方法了

先show variables看看都有哪些变量是控制这个日志记录的

| general_log       | OFF |
| general_log_file | /data/mysql/localhost.log |

看到没?这从字面上就明显的告诉你了

那剩下来的就简单了

mysql> set general_log=on;
ERROR 1229 (HY000): Variable 'general_log' is a GLOBAL variable and should be set with SET GLOBAL

好吧,还是个全局变量

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

再看看变量情况

| general_log       | ON |
| general_log_file | /data/mysql/localhost.log |

随便执行一些语句,然后再看看对应的目录下的文件,有没有我们的操作记录

170109 16:47:06 544 Query set general_log=on
170109 16:47:31 544 Query set global general_log=on
170109 16:47:56 544 Query show variables

完事,收工

posted @ 2017-01-09 16:50 taui 阅读(...) 评论(...) 编辑 收藏