MySQL日志詳解

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

分類

mysql 常見(jiàn)日志分為以下幾種:

日志類型 日志內(nèi)容
錯(cuò)誤日志 mysql 啟動(dòng)、停止和運(yùn)行過(guò)程中出現(xiàn)的異常
常規(guī)操作日志 已創(chuàng)建客戶端連接和客戶端處理記錄
二進(jìn)制日志 數(shù)據(jù)變更日志(可用于同步)
轉(zhuǎn)存日志 從主服務(wù)器同步的數(shù)據(jù)記錄
慢查詢?nèi)罩?/td> 耗時(shí)超過(guò) long_query_time 所設(shè)置時(shí)間的查詢
DDL日志(元日志) ddl 語(yǔ)句執(zhí)行的元數(shù)據(jù)操作

MySQL 默認(rèn)情況下所有日志均為關(guān)閉狀態(tài),默認(rèn)位置均為 mysql 的 data 目錄下

分類簡(jiǎn)介

此部分介紹常用的日志配置項(xiàng),所有配置項(xiàng)請(qǐng)參考:https://dev.mysql.com/doc/refman/5.7/en/replication-options-slave.html#option_mysqld_relay-log

Error Log(錯(cuò)誤日志)

主要記錄 mysql 啟動(dòng)、停止和運(yùn)行過(guò)程中出現(xiàn)的異常,與其關(guān)聯(lián)的配置項(xiàng)包括:

  • log_error:設(shè)置日志文件的位置,設(shè)置此參數(shù)同時(shí)開(kāi)啟日志記錄,默認(rèn)放在 mysql data目錄下
  • log_error_verbosity:日志級(jí)別,默認(rèn)值為3,1代表只記錄Error,2代表Error和Waring,3代表Error、Warning和Note

General Query Log(常規(guī)操作日志)

常規(guī)操作日志可以說(shuō)是內(nèi)容最全的日志,包括所有 mysql 所作的操作和連接情況。由于此類日志記錄內(nèi)容較多,所以對(duì)數(shù)據(jù)庫(kù)性能會(huì)有一定的影響,所以在生產(chǎn)環(huán)境中不建議開(kāi)啟,與其相關(guān)的配置項(xiàng)如下:

  • general_log:開(kāi)關(guān)日志,0/OFF代表關(guān),1/ON代表開(kāi)
  • general_log_file:日志文件位置

即使mysql運(yùn)行過(guò)程中也可以通過(guò)命令行設(shè)置以上兩個(gè)參數(shù)修改日志。

SET GLOBAL general_log = 'ON';

Binary Log(二進(jìn)制日志)

二進(jìn)制日志可以說(shuō)是使用率最高的日志了,因?yàn)榭梢酝ㄟ^(guò)它對(duì)數(shù)據(jù)庫(kù)進(jìn)行回復(fù),所以建議在生產(chǎn)環(huán)境上啟用。二進(jìn)制日志無(wú)法直接打開(kāi),不過(guò) mysql 本身提供了 mydqlbinlog 程序用于查看(具體查看方法參考http://www.itdecent.cn/p/b30264768d04)。與其相關(guān)的參數(shù)如下:

  • log-bin:設(shè)置日志文件的位置,設(shè)置此參數(shù)同時(shí)開(kāi)啟日志記錄,默認(rèn)放在 mysql data目錄下
  • max_binlog_size:日志文件大小上限,二進(jìn)制日志文件后綴名會(huì)由 mysql 自動(dòng)拼接數(shù)字,達(dá)到此參數(shù)設(shè)置大小則寫(xiě)入另一個(gè)文件,同時(shí)后綴 + 1,所以在設(shè)置 log-bin 參數(shù)時(shí)僅填寫(xiě)路徑和文件名即可,后綴名省略

Slave Relay Log(轉(zhuǎn)存日志)

轉(zhuǎn)存日志可以理解為一種特殊的二進(jìn)制日志,其特殊在此日志中記錄的是主從關(guān)系中,從數(shù)據(jù)庫(kù)從主數(shù)據(jù)庫(kù)同步過(guò)來(lái)的數(shù)據(jù)。作為一種二進(jìn)制日志,同樣可以使用 mysqlbinlog 程序進(jìn)行查看,與其相關(guān)的配置參數(shù)包括:

  • relay-log:轉(zhuǎn)存日志文件名
  • relay-log-index:轉(zhuǎn)存日志索引文件名
  • max_relay_log_size:轉(zhuǎn)存文件大小限制,如果不設(shè)置則使用 max_binglog_size 的設(shè)置。

Slow Query Log(慢查詢?nèi)罩?

慢查詢?nèi)罩驹谡{(diào)優(yōu)過(guò)程中使用的比較多,其中主要記錄的是執(zhí)行較慢的操作,具體時(shí)間可通過(guò)參數(shù)進(jìn)行設(shè)置。與其相關(guān)的配置項(xiàng)如下:

  • slow_query_log:是否開(kāi)啟慢查詢?nèi)罩荆蛇x值為0和1,默認(rèn)為0。
  • slow_query_log_file:慢查詢?nèi)罩疚募?/li>
  • long_query_time:時(shí)間長(zhǎng)度,單位毫秒,超過(guò)此時(shí)間的操作將會(huì)被記錄至日志。
  • log_slow_admin_statements:是否記錄管理員維護(hù)操作,可選值為ON/OFF,默認(rèn)為OFF。
  • log_queries_not_using_indexes:是否記錄未使用索引的查詢可選值為ON/OFF,默認(rèn)為OFF。

慢查詢?nèi)罩静灰欢ǚ且慈罩疚募?,通過(guò) mysqldumpslow 命令可在控制臺(tái)直接查看。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容