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

完事,收工


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM