MySQL 日誌管理

來源:互聯網
上載者:User

標籤:

在 MySQL 中,有 4 種不同的日誌,分別是錯誤記錄檔、二進位日誌、查詢日誌和慢查詢日誌。

 

錯誤記錄檔

錯誤記錄檔記錄了 MySQL 啟動和停止時以及伺服器在運行過程中發生嚴重錯誤時的相關資訊。

查看錯誤記錄檔檔案的路徑
mysql> SHOW VARIABLES LIKE ‘log_error%‘;+---------------+---------------+| Variable_name | Value         |+---------------+---------------+| log_error     | .\HUEY-PC.err |+---------------+---------------+
修改錯誤記錄檔檔案的路徑

編輯 my.ini,修改 log-error 參數:

# Error Logging.log-error="HUEY-PC.err"
查看錯誤記錄檔檔案

錯誤檔案為普通的文字檔,可直接查看。

 

二進位日誌

二進位日誌記錄了所有的 DDL(資料定義語言 (Data Definition Language))語句和 DML(資料操縱語言)語句,但是不包括資料查詢語句。

查看 log_bin 狀態
mysql> SHOW VARIABLES LIKE ‘log_bin%‘;+---------------------------------+-------+| Variable_name                   | Value |+---------------------------------+-------+| log_bin                         | OFF   || log_bin_basename                |       || log_bin_index                   |       || log_bin_trust_function_creators | OFF   || log_bin_use_v1_row_events       | OFF   |+---------------------------------+-------+
啟用二進位日誌功能

 編輯 my.ini:

# Binary Logging.log-bin="HUEY-PC-bin"

儲存 my.ini 更改,重啟 MySQL 服務。

查看二進位日誌

使用 mysqlbinlog 工具來查看二進位日誌的內容:

D:\ProgramData\MySQL\MySQL Server 5.6\data>mysqlbinlog HUEY-PC-bin.000001
清除二進位日誌

清除所有日誌(不存在主從複製關係):

mysql> RESET MASTER;

清除指定日誌之前的所有日誌:

mysql> PURGE MASTER LOGS TO ‘HUEY-PC-bin.000005‘;

清除某一時間點前的所有日誌:

mysql> PURGE MASTER LOGS BEFORE ‘2015-01-01 00:00:00‘;

清除 n 天前的所有日誌:

mysql> PURGE MASTER LOGS BEFORE CURRENT_DATE - INTERVAL 10 DAY;
expire_logs_days 參數

在 my.ini 中配置 expire_logs_days 參數指定二進位日誌的有效天數,MySQL 會自動刪除到期的二進位日誌。expire_logs_days 設定在伺服器啟動或者 MySQL 切換二進位日誌時生效,因此,如果二進位日誌沒有增長和切換,伺服器不會清除老條目。

# 二進位日誌的有效天數expire_logs_days = 5

 

查詢日誌

預設情況下查詢日誌是關閉的。查詢日誌記錄了用戶端的所有操作,而二進位日誌不記錄只查詢資料的語句。在並發環境易產生大量日誌資訊而導致大量磁碟 I/O,影響 MySQL 的效能,通常情況下不建議啟用查詢日誌。

查看查詢日誌是否啟用及查詢日誌的路徑
mysql> SHOW VARIABLES LIKE ‘general_log%‘;+------------------+-------------+| Variable_name    | Value       |+------------------+-------------+| general_log      | ON          || general_log_file | HUEY-PC.log |+------------------+-------------+
啟用查詢日誌和設定查詢日誌的路徑

編輯 my.ini,修改 general-log 參數為 1,同時設定 log-output 參數(日誌輸出類型)和 general_log_file 參數(查詢日誌路徑):

# General logging.:log-output=FILEgeneral-log=1general_log_file="HUEY-PC.log"

儲存 my.ini 更改,重啟 MySQL 服務。

關閉查詢日誌

編輯 my.ini,設定 general-log 參數為 0:

# General logging.log-output=NONEgeneral-log=0general_log_file="HUEY-PC.log"

儲存 my.ini 更改,重啟 MySQL 服務。

 

慢查詢日誌

慢查詢日誌記錄了所有執行時間超過 long_query_time 秒的 SQL 陳述式。

查看慢查詢日誌是否啟用及慢查詢日誌的路徑
mysql> SHOW VARIABLES LIKE ‘slow_query_log%‘;+---------------------+------------------+| Variable_name       | Value            |+---------------------+------------------+| slow_query_log      | OFF              || slow_query_log_file | HUEY-PC-slow.log |+---------------------+------------------+
啟用慢查詢日誌和設定慢查詢日誌的路徑

編輯 my.ini,設定 slow-query-log 參數為 1,同時設定 log-output 參數(日誌輸出類型)、slow-query-log_file 參數(慢查詢日誌路徑)和 long_query_time 參數:

# Slow logging.log-output=FILEslow-query-log=1slow_query_log_file="HUEY-PC-slow.log"long_query_time=10

儲存 my.ini 更改,重啟 MySQL 服務。

關閉慢查詢日誌

編輯 my.ini,設定 slow-query-log 參數為 0:

# Slow logging.log-output=NONEslow-query-log=0slow_query_log_file="HUEY-PC-slow.log"long_query_time=10

 

MySQL 日誌管理

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.