首頁  >  文章  >  資料庫  >  MySQL 通用查詢日誌(General Query Log)

MySQL 通用查詢日誌(General Query Log)

黄舟
黄舟原創
2017-02-13 11:11:501050瀏覽

    同大多數關係型資料庫一樣,日誌檔案是MySQL資料庫的重要組成部分。 MySQL有幾種不同的日誌文件,通常包括錯誤日誌文件,二進位日誌,通用日誌,慢查詢日誌,等等。這些日誌可以幫助我們定位mysqld內部發生的事件,資料庫效能故障,記錄資料的變更歷史,使用者恢復資料庫等等。本文主要描述通用查詢日誌。

 

1、MySQL日誌檔案系統的組成
   a、錯誤日誌:記錄啟動、運作或停止mysqld時出現的問題。
   b、通用日誌:記錄已建立的用戶端連線和執行的語句。
   c、更新日誌:記錄變更資料的語句。此日誌在MySQL 5.1中已不再使用。
   d、二進位日誌:記錄所有變更資料的語句。也用於複製。
   e、慢查詢日誌:記錄所有執行時間超過long_query_time秒的所有查詢或不使用索引的查詢。
   f、Innodb日誌:innodb redo log
   
   缺省情況下,且所有日誌都建立於mysqld資料目錄中。
   可以透過刷新日誌,來強制mysqld來關閉和重新開啟日誌檔案(或在某些情況下切換到一個新的日誌)。
   當你執行一個FLUSH LOGS語句或執行mysqladmin flush-logs或mysqladmin refresh時,則日誌被老化。
   對於存在MySQL複製的情況下,從複製伺服器將維護更多日誌文件,稱為接替日誌。

 

2、通用查詢日誌
     日誌可以存放到一個文字檔案或表中,而所有連接和語句日誌則記錄到該條款或表,則未開啟該檔案或表,通用查詢日誌中未開啟。
   透過--log[=file_name]或-l [file_name]選項啟動它。如果沒有給定file_name的值, 預設名稱是host_name.log。
   mysqld依照它接收的順序記錄語句到查詢日誌。這可能與執行的順序不同。
   不同於更新日誌和二進位日誌,它們在查詢執行後,但是任何一個鎖定釋放之前記錄日誌。
   查詢日誌包含所有語句,而二進位日誌不包含只查詢資料的語句。
   伺服器重新啟動和日誌刷新不會產生新的一般查詢日誌檔案。

 

3、通用查詢日誌的系統變數
   log_output=[             #是否已啟用一般查詢日誌
   general_log_file[=filename]             Unix中,你可以透過下面的指令重新命名檔案
   並建立一個新檔案:
   shell> mv hostname.log hostname-old.log

   shell> mysqladmin flush-logs

   shell>中,伺服器開啟日誌檔案期間不能重新命名日誌檔案。必須先停止伺服器然後重新命名日誌檔案。然後重啟伺服器來建立新日誌檔案。

Sharp (www.php.cn)!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn