Ⅰ 如何記錄Mysql執行過的SQL語句
第一種: 查 Slow query 的 SQL 語法:
log_slow_queries = /var/log/mysql/mysql-slow.log
long_query_time = 2 (超過 2秒的 SQL 語法記錄起來, 設短一點來記錄除錯也是一種方法 XD)
第二種: 設 MySQL Replication 用 binlog:
log_bin = /var/log/mysql/mysql-bin.log (此檔要用 mysqlbinlog 解來看)
mysql 會將所有 INSERT/UPDATE/DELETE 語法記於此(但是語法可能跟你想的不同), 這是要寫給 SLAVE 用的 log 檔
第三種: 推薦此方法, 將 MySQL 執行的每行指令全都記錄起來:
log = /tmp/mysql.log
restart mysql 後, tail -f /tmp/mysql.log 就可以看到羅!
補充: 最早前的方法是 mysqlmp, 然後執行完後再 mysqlmp, 再 diff, 但是在 DB > 1G 後就放棄此方法了 XD
Ⅱ 如何監聽mysql執行的sql語句呢
比如我想監聽mysql的這樣的操作,delete from acrelation where *** 如果是這樣的話,你可以看看關於mysql的觸發器的東西。 Rainbow702 寫道引用最好可以日誌或其它方式記錄下來資料庫本身應該就有操作日誌的啊問題補充:我用的hibernate的PostDeleteEvent,還是有些問題 hibernate自帶的監聽 jkxydp 寫道用spring的aop啊,在刪除記錄的方法上加一個記錄日誌的切入點去記錄啊,層一般增、刪、改、查的方法都是單獨出來的吧,在所有刪除記錄的方法上寫切入點。 或者使用loger,其它的都不寫,就在刪除的方法裡面寫上日誌應該就沒問題。 用hibernate就肯定有用到log4j吧,不想全寫,就只在刪除方法上寫就完了。
Ⅲ 如何查看mysql執行的所有以往 sql 語句歷史命令
如果你想知道mysql執行的所有以往 sql 語句歷史命令,需要配置log
my.ini文件中
log=log路徑 比如D:/MySQL/datalog.log
配置後重啟mysql服務,然後就可以查看mysql執行的sql語句了,
如果你沒開啟日誌的話,那就沒辦法
Ⅳ 如何實時監控mysql中的SQL語句的執行情況
可以查看日誌文件【機器名-slow.log】,裡面有執行緩慢的語句,看看是否需要優化程序還是修改資料庫結構。
可以show
full
processlist查看正在執行的語句。
Ⅳ 如何跟蹤mysql執行的sql語句
其實方法很簡單,開啟mysql的日誌log功能,通過查看跟蹤日誌即可。
開啟mysql的日誌log方法:
windows環境下的配置方法:
我使用的版本:Version: 5.0.37-community-nt-log (MySQL Community Edition (GPL))
找到my.ini,我的是在「G:\Program Files (x86)\MySQL\MySQL Server 5.0」目錄下,
找到[mysqld],在下面添加:
log=存放日誌的路徑/my.log
Ⅵ 如何實時監控mysql中的SQL語句的執行情況
首先介紹下 pt-stalk,它是 Percona-Toolkit 工具包中的一個工具,說起 PT 工具包大家都不陌生,平時常用的 pt-query-digest、 pt-online-schema-change 等工具都是出自於這個工具包,這里就不多介紹了。
pt-stalk 的主要功能是在出現問題時收集 OS 及 MySQL 的診斷信息,這其中包括:
1. OS 層面的 CPU、IO、內存、磁碟、網路等信息;
2. MySQL 層面的行鎖等待、會話連接、主從復制,狀態參數等信息。
而且 pt-stalk 是一個 Shell腳本,對於我這種看不懂 perl 的人來說比較友好,腳本裡面的監控邏輯與監控命令也可以拿來參考,用於構建自己的監控體系。
三、使用
接著我們來看下如何使用這個工具。
pt-stalk 通常以後台服務形式監控 MySQL 並等待觸發條件,當觸發條件時收集相關診斷數據。
觸發條件相關的參數有以下幾個:
function:
∘默認為 status,代表監控 SHOW GLOBAL STATUS 的輸出;
∘也可以設置為 processlist,代表監控 show processlist 的輸出;
variable:
∘默認為 Threads_running,代表 監控參數,根據上述監控輸出指定具體的監控項;
threshold:
∘默認為 25,代表 監控閾值,監控參數超過閾值,則滿足觸發條件;
∘監控參數的值非數字時,需要配合 match 參數一起使用,如 processlist 的 state 列;
cycles:
∘默認為 5,表示連續觀察到五次滿足觸發條件時,才觸發收集;
其他一些重要參數:
iterations:該參數指定 pt-stalk 在觸發收集幾次後退出,默認會一直運行。
run-time:觸發收集後,該參數指定收集多長時間的數據,默認 30 秒。
sleep:該參數指定在觸發收集後,sleep 多久後繼續監控,默認 300 秒。
interval:指定狀態參數的檢查頻率,判斷是否需要觸發收集,默認 1 秒。
dest:監控數據存放路徑,默認為 /var/lib/pt-stalk。
retention-time :監控數據保留時長,默認 30 天。
daemonize:以後台服務運行,默認不開啟。
log:後台運行日誌,默認為 /var/log/pt-stalk.log。
collect:觸發發生時收集診斷數據,默認開啟。
∘collect-gdb:收集 GDB 堆棧跟蹤,需要 gdb 工具。
∘collect-strace:收集跟蹤數據,需要 strace 工具。
∘collect-tcpmp:收集 tcpmp 數據,需要 tcpmp 工具。
連接參數:host、password、port、socket。