常規日誌查詢

2021-09-29 19:47:12 字數 3192 閱讀 4477

常規查詢日誌是mysqld在做什麼的常規記錄 。當客戶端連線或斷開連線時,伺服器會將資訊寫入此日誌,並記錄從客戶端收到的每個sql語句。當您懷疑客戶端中的錯誤並想確切地知道客戶端傳送到mysqld的內容時,常規查詢日誌可能非常有用。

每一行表示客戶端何時連線,當然也包括所用的連線型別,connection_typetcp/ip(沒有 ssl 建立 tcp/ip 連線),ssl/tls(用 ssl 建立 tcp/ip 連線),socket(unix socket 檔案連線),named pipe(windows 命名管道連線),或shared memory(windows 共享 memory 連線)之一。

mysqld按照接收語句的順序將語句寫入查詢日誌,這可能與它們執行的順序不同。此日誌記錄順序與二進位制日誌相反,二進位制日誌的執行順序是在語句執行之後但釋放任何鎖之前。此外,查詢日誌可能包含僅選擇資料的語句,而這些語句從未寫入二進位制日誌。

在應答主伺服器上使用基於語句的二進位制日誌記錄時,其從屬伺服器接收的語句將寫入每個從屬伺服器的查詢日誌中。如果客戶端使用mysqlbinlog實用程式讀取事件並將其傳遞到伺服器,則將語句寫入主伺服器的查詢日誌 。

但是,當使用基於行的二進位制日誌記錄時時,更新將作為行更改而不是 sql語句傳送,因此當binlog_format為row時,這些語句永遠不會寫入查詢 log。當此變數設定為mixed時,也可能不會將給定更新寫入查詢 log,具體取決於所使用的語句。有關詳細資訊,請參閱第 16.2.1.1 節,「statement-based 和 row-based 複製的優點和缺點」。

預設情況下,常規查詢日誌處於禁用狀態。要明確指定初始常規查詢日誌狀態,請使用--general_log[=]。不帶引數或引數為1時,--general_log啟用日誌。引數為0時,此選項禁用日誌。要指定日誌檔名,請使用--generallog_file=filename。要指定 log 目標,請使用log_output系統變數

note

if you specify thetablelog destination, see log tables and 「too many open files」 errors.

如果您沒有為常規查詢日誌檔案指定名稱,則預設名稱為host_name.log。除非指定了絕對路徑名以指定其他目錄,否則伺服器將在資料目錄中建立檔案。

要在執行時禁用或啟用常規查詢日誌或更改日誌檔名,請使用全域性 變數general_loggeneral_log_file系統變數。設定general_log為0(或off)禁用日誌,設定為1(或on)啟用日誌 。設定general_log_file以指定日誌檔案的名稱。如果日誌檔案已經開啟,則將其關閉並開啟新檔案。

啟用常規查詢日誌後,伺服器會將輸出寫入log_output系統變數指定的任何目標 。如果啟用日誌,伺服器將開啟日誌檔案並向其中寫入啟動訊息。但是,除非file選擇了日誌目標,否則不會進一步記錄查詢日誌。如果目標是none,則即使啟用了常規日誌,伺服器也不會寫入查詢。如果log_output不是file,即使設定了日誌檔案位址,也不會寫入日誌資訊。

伺服器重新啟動和 log 重新整理不會導致生成新的常規查詢 log 檔案(儘管重新整理關閉並重新開啟它)。要重新命名檔案並建立乙個新檔案,請使用以下命令:

shell> mv host_name.log host_name-old.log

shell> mysqladmin flush-logs

shell> mv host_name-old.log backup-directory

在 windows 上,使用rename而不是mv

您還可以通過禁用 log 在執行時重新命名常規查詢 log 檔案:

set global general_log = 'off';
禁用 log 後,在外部重新命名 log 檔案(比如從命令列)。然後再次啟用 log:

set global general_log = 'on';
此方法適用於任何平台,不需要重新啟動伺服器。

要禁用或啟用當前會話的常規查詢日誌記錄,請將會話sql_log_off變數設定 為onoff。(這假定常規查詢日誌本身已啟用。)

伺服器將重寫寫在一般查詢日誌中的語句中的密碼,以使它們不會以純文字形式出現。通過使用--log-raw選項啟動伺服器,可以抑制常規查詢日誌的密碼重寫 。此選項對於診斷目的可能有用,以檢視伺服器接收到的語句的確切文字,但出於安全原因,不建議將其用於生產。另見section 6.1.2.3, 「passwords and logging」.

密碼重寫的含義是,無法解析的語句(例如由於語法錯誤)不會寫入通用查詢日誌,因為無法知道它們沒有密碼。需要記錄所有語句(包括錯誤語句)的用例應使用該--log-raw選項,請牢記這也繞過了密碼重寫。

密碼重寫只會應輸入純文字密碼進行重寫,對於希望得到密碼雜湊值的語句語法,將不會進行重寫。如果為此類語法錯誤地提供了純文字密碼,則會將密碼記錄為給定,而不進行重寫。例如,由於期望輸入密碼雜湊值,因此記錄了如下所示的語句:

create user 'user1'@'localhost' identified by password 'not-so-secret';
所述log_timestamps系統變數控制在寫入到通用查詢日誌檔案訊息的時間戳的時區(以及慢查詢日誌檔案和錯誤日誌)。它不影響寫入日誌表的常規查詢日誌和慢速查詢日誌訊息的時區,但是convert_tz()通過設定會話time_zone系統變數或通過設定會話系統變數,可以將從這些表中檢索的行從本地系統時區轉換為任何所需時區 。

HBase資料查詢之常規查詢

簡述 訂單常規查詢用到的字段可能有 店鋪id 訂單建立時間 不變數 訂單id 訂單狀態等等。如下設計適用場景 a.dp id created段查詢 狀態或者其他filter條件 b.tid查詢 表設計分兩張表 1.用於常規查詢表,rowkey dp id created tid cf status ...

日誌 php fpm慢日誌查詢

1.先查找到配置檔案存放位址 find name php fpm.conf vi usr servers php etc php fpm.conf 開啟看看你的慢日誌是否開啟,或者開啟的慢日誌存放在 對應的位址都換成你自己的即可。2.如果沒有開啟慢日誌查詢,先開啟 預設的 request slowl...

日誌 php fpm慢日誌查詢

專案用php開發,在生產執行的過程中,應該一段時間監測下php指令碼執行狀態,哪些php程序速度太慢,有哪些錯誤日誌。問 如何來檢視檢測比較慢的php指令碼呢?答 檢視php fpm慢日誌。1.先查找到配置檔案存放位址 開啟看看你的慢日誌是否開啟,或者開啟的慢日誌存放在 對應的位址都換成你自己的即可...