MySQL作為一種關(guān)系型數(shù)據(jù)庫管理系統(tǒng),其日志文件對于數(shù)據(jù)的安全和穩(wěn)定性至關(guān)重要。在MySQL中,主要有四種類型的日志文件,即二進(jìn)制日志(binary log)、錯(cuò)誤日志(error log)、查詢?nèi)罩荆╭uery log)和慢查詢?nèi)罩荆╯low query log)。這些日志文件能夠記錄數(shù)據(jù)庫的種種行為,如何構(gòu)造SQL查詢、查詢執(zhí)行的時(shí)間,數(shù)據(jù)的修改等等。日志文件的提取對于數(shù)據(jù)庫的調(diào)試、排錯(cuò)和優(yōu)化操作具有很大的幫助作用。
1. 查看二進(jìn)制日志
mysqlbinlog命令可以用于查看二進(jìn)制日志文件??梢酝ㄟ^以下命令查看或?qū)С鎏囟ㄈ掌诨驎r(shí)間范圍內(nèi)的二進(jìn)制日志文件:
$ mysqlbinlog /var/log/mysql/mysql-bin.000001 --start-datetime="2022-11-20 00:00:00" --stop-datetime="2022-11-21 23:59:59" > binlogs.sql
2. 查看錯(cuò)誤日志
MySQL的錯(cuò)誤日志記錄了服務(wù)器啟動(dòng)、關(guān)閉及主要SQL錯(cuò)誤信息等。錯(cuò)誤日志默認(rèn)存儲(chǔ)在MySQL的數(shù)據(jù)目錄下,文件名為hostname.err??梢酝ㄟ^以下命令查看錯(cuò)誤日志:
$ sudo tail -f /var/log/mysql/error.log
3. 查看查詢?nèi)罩?
查詢?nèi)罩灸軌蛴涗汳ySQL服務(wù)器接收到的所有查詢請求,可以通過以下命令查看查詢?nèi)罩荆?
$ sudo tail -f /var/log/mysql/query.log
4. 查看慢查詢?nèi)罩?
慢查詢?nèi)罩居涗浟藞?zhí)行時(shí)間超過指定時(shí)間的查詢??梢酝ㄟ^以下命令打開慢查詢?nèi)罩荆?
$ mysql -u root -p
mysql> SET GLOBAL slow_query_log = 'ON';
mysql> SET GLOBAL slow_query_log_file = '/var/log/mysql/slow-query.log';
mysql> SET GLOBAL long_query_time = 5; # 可選步驟,指定慢查詢的時(shí)間閾值
mysql> exit
之后可以通過以下命令查看慢查詢?nèi)罩荆?
$ sudo tail -f /var/log/mysql/slow-query.log