1. 程式人生 > 其它 >mysql檢視歷史執行語句

mysql檢視歷史執行語句

開啟日誌模式

說明:

開啟 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:在查詢到所需要的記錄之後,應儘快關閉日誌模式,佔用磁碟空間比較大