mysql檢視歷史執行語句
阿新 • • 發佈:2021-07-02
開啟日誌模式
說明:
開啟 general log 將所有到達MySQL Server的SQL語句記錄下來。
一般不會開啟開功能,因為log的量會非常龐大。但個別情況下可能會臨時的開一會兒general log以供排障使用。
1、臨時開啟設定,重啟失效
SET GLOBAL log_output = 'TABLE';SET GLOBAL general_log = 'ON'; //日誌開啟
SET GLOBAL log_output = 'TABLE'; SET GLOBAL general_log = 'OFF'; //日誌關閉
show variables like 'general_log'; //檢視是否開啟
show variables like 'general_log_file'; -- 看看日誌檔案儲存位置
set global general_log_file='tmp/general.lg'; -- 設定日誌檔案儲存位置
show variables like 'log_output'; -- 看看日誌輸出型別 table或file
set global log_output='table'; -- 設定輸出型別為 table
set global log_output='file'; -- 設定輸出型別為file
說明:
log_output=’FILE’ 表示將日誌存入檔案,預設值是FILE
log_output=’TABLE’表示將日誌存入資料庫,這樣日誌資訊就會被寫入到mysql.slow_log表中.
mysql資料庫支援同時兩種日誌儲存方式,配置的時候以逗號隔開即可,如:log_output=‘FILE,TABLE‘.日誌記錄到系統專用日誌表中,要比記錄到檔案耗費更多的系統資源,因此對於需要啟用慢查日誌,又需要比夠獲得更高的系統性能,那麼建議優先記錄到檔案.
要永久生效,則需要修改需要在my.cnf的【mysqld】中新增:general_log = 1
2、查詢
SELECT * from mysql.general_log ORDER BY event_time DESC;
3、清空表(delete對於這個表,不允許使用,只能用truncate)
truncate table mysql.general_log;
ps:在查詢到所需要的記錄之後,應儘快關閉日誌模式,佔用磁碟空間比較大