如何快速定位MySQL 的錯(cuò)誤日志(Error Log)?
日志文件是MySQL數(shù)據(jù)庫的重要組成部分,包括有6種不同的日志文件:
- 錯(cuò)誤日志: -log-err
- 查詢?nèi)罩荆?-log
- 慢查詢?nèi)罩? -log-slow-queries
- 更新日志: -log-update
- 二進(jìn)制日志: -log-bin
這些日志可以幫助我們定位 mysqld 內(nèi)部發(fā)生的事件,數(shù)據(jù)庫性能故障,記錄數(shù)據(jù)的變更歷史,用戶恢復(fù)數(shù)據(jù)庫等。本文主要講解錯(cuò)誤日志文件(Error Log)相關(guān)內(nèi)容。
什么是錯(cuò)誤日志
錯(cuò)誤日志記錄了 MySQL Server 每次啟動和關(guān)閉的詳細(xì)信息以及運(yùn)行過程中所有較為嚴(yán)重的警告和錯(cuò)誤信息。錯(cuò)誤日志的命名通常為「hostname.err」。
PS:「hostname」表示服務(wù)器主機(jī)名。
在實(shí)際工作中,我們不僅通過分析MySQL錯(cuò)誤日志來確定MySQL中的慢SQL,還可以通過它分析得到導(dǎo)致業(yè)務(wù)崩潰和其他故障的根本原因。
查看錯(cuò)誤日志的位置
我們可以用--log-error[=file_name]選項(xiàng)來開啟 mysql 錯(cuò)誤日志,該選項(xiàng)指定 mysqld保存錯(cuò)誤日志文件的位置。
對于指定--log-error[=file_name]選項(xiàng)而未給定 file_name 值,mysql 使用錯(cuò)誤日志名host_name.err 并在數(shù)據(jù)目錄中寫入日志文件。
修改錯(cuò)誤日志的位置
錯(cuò)誤日志所記錄的信息也可以通過log-error和log-warnings來定義,其中
- log_error可定義是否啟用錯(cuò)誤日志的功能和錯(cuò)誤日志的存儲位置
- log-warnings可定義是否將警告信息也定義至錯(cuò)誤日志中
可以在啟動MySQL時(shí),指定log_error的值。如下所示:
了解了MySQL錯(cuò)誤日志位置以及如何修改其位置,下面簡單舉例一個(gè)實(shí)踐操作的過程:
Linux 系統(tǒng)下打開 MySQL 錯(cuò)誤日志
1. 進(jìn)「mysql」安裝目錄
進(jìn)入「data」目錄(該目錄存儲的是數(shù)據(jù)庫的數(shù)據(jù))。
2. 進(jìn)入「data」目錄后可發(fā)現(xiàn)有「mysql」、「test」兩個(gè)子目錄(由此可看出 MySQL 數(shù)據(jù)存儲是按用戶定義的不同數(shù)據(jù)庫分開存儲的)。
3. 進(jìn)入「mysql」目錄,文件后綴為.err 的文件是運(yùn)行的錯(cuò)誤日志,可以使用 vi 命令打開進(jìn)行分析。