1. 程式人生 > >MySQL中的日誌類型(二)-General query log

MySQL中的日誌類型(二)-General query log

sql 設置 set 線程id lob 進行 mysq 示例 mark

簡介

General query log記錄客戶端的連接和斷開,以及從客戶端發來的每一個SQL語句。

日誌內容格式

General query log可以記錄在文件中,也可以記錄在表中,格式如下:
在文件中會記錄時間、線程ID、命令類型以及執行的語句
示例如下:
技術分享圖片
當日誌記錄在表中時,還會記錄賬號信息,示例如下:
技術分享圖片

記錄時間

General Query Log在數據庫接收到客戶端發來的語句時進行記錄。這意味著General Query Log的順序可能和實際語句執行的順序是不同的。

設置方法

General Query Log可以在數據庫啟動時開啟,也可以在數據庫運行時開啟。
在數據庫啟動前:
設置--general_log來開啟日誌

設置--log_output=[FILE,TABLE,NONE]來確定日誌存放的位置。
設置--general_log_file=file_name來確定日誌文件的名稱和目錄。
在數據庫運行時:
修改全局變量來修改日誌設置
修改general_log、log_output、general_log_file的值來修改相關設置,例如:

SET GLOBAL general_log=1
SET GLOBAL log_output=‘FILE‘;

此外,可以通過設置sql_log_off的值為ON或OFF來禁用或啟用當前連接的General query log。

其他

數據庫會根據log_output的值將日誌寫入到文件或表中。

但是不論log_output的值為多少,當開啟日誌時(或者刷新日誌文件時),都會在日誌文件中寫入一個啟動的消息。啟動信息示例如下:
技術分享圖片

MySQL中的日誌類型(二)-General query log