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
完事,收工