2、MySQL错误日志(Error Log)详解
錯(cuò)誤日志(Error Log)是 MySQL 中最常用的一種日志,主要記錄 MySQL 服務(wù)器啟動(dòng)和停止過(guò)程中的信息、服務(wù)器在運(yùn)行過(guò)程中發(fā)生的故障和異常情況等。
作為初學(xué)者,要學(xué)會(huì)利用錯(cuò)誤日志來(lái)定位問(wèn)題。下面介紹如何操作查看錯(cuò)誤日志。
啟動(dòng)和設(shè)置錯(cuò)誤日志
在 MySQL 數(shù)據(jù)庫(kù)中,默認(rèn)開(kāi)啟錯(cuò)誤日志功能。一般情況下,錯(cuò)誤日志存儲(chǔ)在 MySQL 數(shù)據(jù)庫(kù)的數(shù)據(jù)文件夾下,通常名稱(chēng)為 hostname.err。其中,hostname 表示 MySQL 服務(wù)器的主機(jī)名。
在 MySQL 配置文件中,錯(cuò)誤日志所記錄的信息可以通過(guò) log-error 和 log-warnings 來(lái)定義,其中,log-err 定義是否啟用錯(cuò)誤日志功能和錯(cuò)誤日志的存儲(chǔ)位置,log-warnings 定義是否將警告信息也記錄到錯(cuò)誤日志中。
將 log_error 選項(xiàng)加入到 MySQL 配置文件的 [mysqld] 組中,形式如下:
[mysqld]
log-error=dir/{filename}
其中,dir 參數(shù)指定錯(cuò)誤日志的存儲(chǔ)路徑;
filename 參數(shù)指定錯(cuò)誤日志的文件名;
省略參數(shù)時(shí)文件名默認(rèn)為主機(jī)名,存放在 Data 目錄中。
重啟 MySQL 服務(wù)后,參數(shù)開(kāi)始生效,可以在指定路徑下看到 filename.err 的文件,如果沒(méi)有指定 filename,那么錯(cuò)誤日志將直接默認(rèn)為 hostname.err。
注意:錯(cuò)誤日志中記錄的并非全是錯(cuò)誤信息,例如 MySQL 如何啟動(dòng) InnoDB
的表空間文件、如何初始化自己的存儲(chǔ)引擎等,這些也記錄在錯(cuò)誤日志文件中。
查看錯(cuò)誤日志
錯(cuò)誤日志中記錄著開(kāi)啟和關(guān)閉 MySQL 服務(wù)的時(shí)間,以及服務(wù)運(yùn)行過(guò)程中出現(xiàn)哪些異常等信息。如果 MySQL 服務(wù)出現(xiàn)異常,可以到錯(cuò)誤日志中查找原因。
在 MySQL 中,通過(guò) SHOW 命令可以查看錯(cuò)誤日志文件所在的目錄及文件名信息。
mysql> SHOW VARIABLES LIKE 'log_error'; +---------------+----------------------------------------------------------------+ | Variable_name | Value | +---------------+----------------------------------------------------------------+ | log_error | C:\ProgramData\MySQL\MySQL Server 5.7\Data\LAPTOP-UHQ6V8KP.err | +---------------+----------------------------------------------------------------+ 1 row in set, 1 warning (0.04 sec)錯(cuò)誤日志以文本文件的形式存儲(chǔ),直接使用普通文本工具就可以查看。這里通過(guò)記事本打開(kāi),從上面可以知道錯(cuò)誤日志的文件名。該文件在默認(rèn)的數(shù)據(jù)路徑“C:\ProgramData\MySQL\MySQL Server 5.7\Data\”下,打開(kāi) LAPTOP-UHQ6V8KP.err 文件,部分內(nèi)容如下:
190906 22:06:45 InnoDB: Completed initialization of buffer pool 190906 22:06:45 InnoDB: highest supported file format is Barracuda. 190906 22:06:45 InnoDB: Waiting for the background threads to start 190906 22:06:46 InnoDB: 5.7.29 started; log sequence number 1605345 190906 22:06:47 [Note] Server hostname (bind-address): '0.0.0.0'; port: 3306 190906 22:06:47 [Note] - '0.0.0.0' resolves to '0.0.0.0'; 190906 22:06:47 [Note] Server socket created on IP: '0.0.0.0'. 190906 22:06:47 [Note] Event Scheduler: Loaded 0 events 190906 22:06:47 [Note] /usr/sbin/mysqld: ready for connections. Version: '5.7.29-log' socket: '/var/lib/mysql/mysql.sock' port: 3306 MySQL Community Server (GPL)以上是錯(cuò)誤日志文件的一部分,主要記載了系統(tǒng)的一些運(yùn)行錯(cuò)誤。
刪除錯(cuò)誤日志
在 MySQL 中,可以使用 mysqladmin 命令來(lái)開(kāi)啟新的錯(cuò)誤日志,以保證 MySQL 服務(wù)器上的硬盤(pán)空間。mysqladmin 命令的語(yǔ)法如下:
mysqladmin -uroot -p flush-logs執(zhí)行該命令后,MySQL 服務(wù)器首先會(huì)自動(dòng)創(chuàng)建一個(gè)新的錯(cuò)誤日志,然后將舊的錯(cuò)誤日志更名為 filename.err-old。
MySQL 服務(wù)器發(fā)生異常時(shí),管理員可以在錯(cuò)誤日志中找到發(fā)生異常的時(shí)間、原因,然后根據(jù)這些信息來(lái)解決異常。對(duì)于很久之前的錯(cuò)誤日志,查看的可能性不大,可以直接將這些錯(cuò)誤日志刪除。
總結(jié)
以上是生活随笔為你收集整理的2、MySQL错误日志(Error Log)详解的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 1、MySQL日志及分类
- 下一篇: 3、MySQL二进制日志(Binary