文件首頁
MySQL 8.4 參考手冊
相關文件 下載本手冊
PDF (US Ltr) - 39.9Mb
PDF (A4) - 40.0Mb
Man Pages (TGZ) - 258.5Kb
Man Pages (Zip) - 365.5Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 8.4 參考手冊  /  ...  /  選擇一般查詢日誌和慢查詢日誌輸出目的地

7.4.1 選擇一般查詢日誌和慢查詢日誌輸出目的地

如果啟用一般查詢日誌和慢查詢日誌,MySQL 伺服器可彈性控制寫入這些日誌的輸出目的地。日誌項目的可能目的地為日誌檔案或 mysql 系統資料庫中的 general_logslow_log 表格。您可以選擇檔案輸出、表格輸出或兩者。

在伺服器啟動時控制日誌

log_output 系統變數指定日誌輸出的目的地。設定此變數本身並不會啟用日誌;必須單獨啟用這些日誌。

  • 如果在啟動時未指定 log_output,則預設的日誌記錄目的地為 FILE

  • 如果在啟動時指定了 log_output,則其值為從 TABLE (記錄至表格)、FILE (記錄至檔案) 或 NONE (不記錄至表格或檔案) 中選取的一或多個以逗號分隔的字詞。如果存在 NONE,則優先於任何其他指定詞。

general_log 系統變數控制將記錄寫入所選日誌目的地的一般查詢日誌。如果在伺服器啟動時指定了 general_log,則可選擇性採用 1 或 0 的引數來啟用或停用日誌。若要為檔案記錄指定預設檔案名稱以外的檔案名稱,請設定 general_log_file 變數。同樣地,slow_query_log 變數會控制將記錄寫入所選目的地的慢查詢日誌,而設定 slow_query_log_file 會指定檔案記錄的檔案名稱。如果啟用任一日誌,伺服器會開啟對應的日誌檔案並將啟動訊息寫入其中。但是,除非選取 FILE 日誌目的地,否則不會將其他查詢記錄到檔案中。

範例

  • 若要將一般查詢日誌項目寫入日誌表格和日誌檔案,請使用 --log_output=TABLE,FILE 來選取這兩個日誌目的地,並使用 --general_log 來啟用一般查詢日誌。

  • 若要將一般查詢和慢查詢日誌項目僅寫入日誌表格,請使用 --log_output=TABLE 來選取表格作為日誌目的地,並使用 --general_log--slow_query_log 來啟用這兩個日誌。

  • 若要將慢查詢日誌項目僅寫入日誌檔案,請使用 --log_output=FILE 來選取檔案作為日誌目的地,並使用 --slow_query_log 來啟用慢查詢日誌。在此情況下,由於預設的日誌目的地為 FILE,因此您可以省略 log_output 設定。

在執行階段控制日誌

與日誌表格和檔案相關聯的系統變數可讓您在執行階段控制日誌

  • log_output 變數會指出目前的日誌記錄目的地。可以在執行階段修改此變數以變更目的地。

  • SHOW CREATE TABLE mysql.general_log;
    SHOW CREATE TABLE mysql.slow_log;

  • SET @old_log_state = @@GLOBAL.general_log;
    SET GLOBAL general_log = 'OFF';
    ALTER TABLE mysql.general_log ENGINE = MyISAM;
    SET GLOBAL general_log = @old_log_state;
  • USE mysql;
    DROP TABLE IF EXISTS general_log2;
    CREATE TABLE general_log2 LIKE general_log;
    RENAME TABLE general_log TO general_log_backup, general_log2 TO general_log;