MySQL日誌詳解

參考資料:https://dev.mysql.com/doc/refman/5.7/en/server-logs.htmlhtml

分類

mysql 常見日誌分爲如下幾種:
日誌類型 | 日誌內容
---|---
錯誤日誌 | mysql 啓動、中止和運行過程當中出現的異常
常規操做日誌 | 已建立客戶端鏈接和客戶端處理記錄
二進制日誌 | 數據變動日誌(可用於同步)
轉存日誌 | 從主服務器同步的數據記錄
慢查詢日誌 | 耗時超過 long_query_time 所設置時間的查詢
DDL日誌(元日誌) | ddl 語句執行的元數據操做mysql

分類簡介

此部分介紹經常使用的日誌配置項,全部配置項請參考:https://dev.mysql.com/doc/refman/5.7/en/replication-options-slave.html#option_mysqld_relay-logsql

Error Log(錯誤日誌)

主要記錄 mysql 啓動、中止和運行過程當中出現的異常,與其關聯的配置項包括:數據庫

  • log_error:設置日誌文件的位置,設置此參數同時開啓日誌記錄,默認放在 mysql data目錄下
  • log_error_verbosity:日誌級別,默認值爲3,1表明只記錄Error,2表明Error和Waring,3表明Error、Warning和Note

General Query Log(常規操做日誌)

常規操做日誌能夠說是內容最全的日誌,包括全部 mysql 所做的操做和鏈接狀況。因爲此類日誌記錄內容較多,因此對數據庫性能會有必定的影響,因此在生產環境中不建議開啓,與其相關的配置項以下:服務器

  • general_log:開關日誌,0/OFF表明關,1/ON表明開
  • general_log_file:日誌文件位置性能

    即便mysql運行過程當中也能夠經過命令行設置以上兩個參數修改日誌。命令行

    SET GLOBAL general_log = 'ON';

Binary Log(二進制日誌)

二進制日誌能夠說是使用率最高的日誌了,由於能夠經過它對數據庫進行回覆,因此建議在生產環境上啓用。二進制日誌沒法直接打開,不過 mysql 自己提供了 mydqlbinlog 程序用於查看(具體查看方法參考https://www.jianshu.com/p/b30264768d04)。與其相關的參數以下:日誌

  • log-bin:設置日誌文件的位置,設置此參數同時開啓日誌記錄,默認放在 mysql data目錄下
  • max_binlog_size:日誌文件大小上限,二進制日誌文件後綴名會由 mysql 自動拼接數字,達到此參數設置大小則寫入另外一個文件,同時後綴 + 1,因此在設置 log-bin 參數時僅填寫路徑和文件名便可,後綴名省略

Slave Relay Log(轉存日誌)

轉存日誌能夠理解爲一種特殊的二進制日誌,其特殊在此日誌中記錄的是主從關係中,從數據庫從主數據庫同步過來的數據。做爲一種二進制日誌,一樣可使用 mysqlbinlog 程序進行查看,與其相關的配置參數包括:code

  • relay-log:轉存日誌文件名
  • relay-log-index:轉存日誌索引文件名
  • max_relay_log_size:轉存文件大小限制,若是不設置則使用 max_binglog_size 的設置。

Slow Query Log(慢查詢日誌)

慢查詢日誌在調優過程當中使用的比較多,其中主要記錄的是執行較慢的操做,具體時間可經過參數進行設置。與其相關的配置項以下:server

  • slow_query_log:是否開啓慢查詢日誌,可選值爲0和1,默認爲0。
  • slow_query_log_file:慢查詢日誌文件名。
  • long_query_time:時間長度,單位毫秒,超過此時間的操做將會被記錄至日誌。
  • log_slow_admin_statements:是否記錄管理員維護操做,可選值爲ON/OFF,默認爲OFF。
  • log_queries_not_using_indexes:是否記錄未使用索引的查詢可選值爲ON/OFF,默認爲OFF。

    慢查詢日誌不必定非要看日誌文件,經過 mysqldumpslow 命令可在控制檯直接查看。

相關文章
相關標籤/搜索