夜勿眠 发表于 2017-12-13 14:00:47

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
  完事,收工
页: [1]
查看完整版本: mysql记录所有执行过的SQL