一、錯誤日誌:Error Log
錯誤日誌記錄了MyQL Server 運行過程當中全部較爲嚴重的警告和錯誤信息,以及MySQL
Server 每次啓動和關閉的詳細信息。在默認狀況下,系統記錄錯誤日誌的功能是關閉的,
錯誤信息被輸出到標準錯誤輸出(stderr),若是要開啓系統記錄錯誤日誌的功能,須要在
啓動時開啓-log-error 選項。錯誤日誌的默認存放位置在數據目錄下,hostname.err 命
名。可是可使用命令:--log-error[=file_name],修改其存放目錄和文件名。
爲了方便維護須要,有時候會但願將錯誤日誌中的內容作備份並從新開始記錄,這時候
就能夠利用MySQL 的FLUSH LOGS 命令來告訴MySQL 備份舊日誌文件並生成新的日誌文件。
備份文件名以「.old」結尾。
二、二進制日誌:Binary Log & Binary Log Index
二進制日誌,也就是咱們常說的binlog,也是MySQL Server 中最爲重要的日誌之一。
當咱們經過「--login[=file_name]」打開了記錄的功能以後,
MySQL 會將全部修改數據
庫數據的query 以二進制形式記錄到日誌文件中
。固然,日誌中並不只限於query 語句這麼
簡單,還包括每一條query 所執行的時間,所消耗的資源,以及相關的事務信息,因此binlog
是事務安全的。
和錯誤日誌同樣,binlog 記錄功能一樣須要「--log-bin[=file_name]」參數的顯式指
定才能開啓,若是未指定file_name,則會在數據目錄下記錄爲mysql-bin.******(*表明0~
9 之間的某一個數字,來表示該日誌的序號)。
binlog 還有其餘一些附加選項參數:
「--max_binlog_size」設置binlog 的最大存儲上限,當日志達到該上限時,MySQL 會
從新建立一個日誌開始繼續記錄。不過偶爾也有超出該設置的binlog 產生,通常都是由於
在即將達到上限時,產生了一個較大的事務,爲了保證事務安全,MySQL 不會將同一個事務
分開記錄到兩個binlog 中。
「--binlog-do-db=db_name」參數明確告訴MySQL,須要對某個(db_name)數據庫記
錄binlog,若是有了「--binlog-do-db=db_name」參數的顯式指定,MySQL 會忽略針對其餘
數據庫執行的query,而僅僅記錄針對指定數據庫執行的query。
「--binlog-ignore-db=db_name」與「--binlog-do-db=db_name」徹底相反,它顯式指
定忽略某個(db_name)數據庫的binlog 記錄,當指定了這個參數以後,MySQL 會記錄指定
數據庫之外全部的數據庫的binlog。
「--binlog-ignore-db=db_name」與「--binlog-do-db=db_name」兩個參數有一個共同
的概念須要你們理解清楚,參數中的db_name 不是指query 語句更新的數據所在的數據庫,
而是執行query 的時候當前所處的數據庫。不論更新哪一個數據庫的數據,MySQL 僅僅比較當
前鏈接所處的數據庫(經過use db_name 切換後所在的數據庫)與參數設置的數據庫名,而
不會分析query 語句所更新數據所在的數據庫。
mysql-bin.index 文件(binary log index)的功能是記錄全部Binary Log 的絕對路
徑,保證MySQL 各類線程可以順利的根據它找到全部須要的Binary Log 文件。
三、更新日誌:update log
更新日誌是MySQL 在較老的版本上使用的,其功能和binlog 基本相似,只不過不是以
二進制格式來記錄而是以簡單的文本格式記錄內容。自從MySQL 增長了binlog 功能以後,
就不多使用更新日誌了。從版本5.0 開始,MySQL 已經再也不支持更新日誌了。
四、查詢日誌:query log
查詢日誌記錄MySQL 中全部的query,經過「--log[=fina_name]」來打開該功能。由
於記錄了全部的query,包括全部的select,體積比較大,開啓後對性能也有較大的影響,
因此請你們慎用該功能。通常只用於跟蹤某些特殊的sql 性能問題纔會短暫打開該功能。默
認的查詢日誌文件名爲hostname.log。
五、慢查詢日誌:slow query log
顧名思義,慢查詢日誌中記錄的是執行時間較長的query,也就是咱們常說的slow
query,經過設--log-slow-queries[=file_name]來打開該功能並設置記錄位置和文件名,
默認文件名爲hostname-slow.log,默認目錄也是數據目錄。
慢查詢日誌採用的是簡單的文本格式,能夠經過各類文本編輯器查看其中的內容。其中
記錄了語句執行的時刻,執行所消耗的時間,執行用戶,鏈接主機等相關信息。MySQL 還提
供了專門用來分析滿查詢日誌的工具程序mysqlslowdump,用來幫助數據庫管理人員解決可
能存在的性能問題。
六、Innodb 的在線redo 日誌:innodb redo log
Innodb 是一個事務安全的存儲引擎,其事務安全性主要就是經過在線redo 日誌和記錄
在表空間中的undo 信息來保證的。redo 日誌中記錄了Innodb 所作的全部物理變動和事務
信息,經過redo 日誌和undo 信息,Innodb 保證了在任何狀況下的事務安全性。Innodb 的redo
日誌一樣默認存放在數據目錄下,能夠經過innodb_log_group_home_dir 來更改設置日誌的
存放位置,經過innodb_log_files_in_group 設置日誌的數量。