MySQL錯誤日志(Error Log)詳解


錯誤日志(Error Log)是 MySQL 中最常用的一種日志,主要記錄 MySQL 服務器啟動和停止過程中的信息、服務器在運行過程中發生的故障和異常情況等。

作為初學者,要學會利用錯誤日志來定位問題。下面介紹如何操作查看錯誤日志。

啟動和設置錯誤日志

在 MySQL 數據庫中,默認開啟錯誤日志功能。一般情況下,錯誤日志存儲在 MySQL 數據庫的數據文件夾下,通常名稱為 hostname.err。其中,hostname 表示 MySQL 服務器的主機名。

在 MySQL 配置文件中,錯誤日志所記錄的信息可以通過 log-error 和 log-warnings 來定義,其中,log-err 定義是否啟用錯誤日志功能和錯誤日志的存儲位置,log-warnings 定義是否將警告信息也記錄到錯誤日志中。

將 log_error 選項加入到 MySQL 配置文件的 [mysqld] 組中,形式如下:

[mysqld]
log-error=dir/{filename}

其中,dir 參數指定錯誤日志的存儲路徑;filename 參數指定錯誤日志的文件名;省略參數時文件名默認為主機名,存放在 Data 目錄中。

重啟 MySQL 服務后,參數開始生效,可以在指定路徑下看到 filename.err 的文件,如果沒有指定 filename,那么錯誤日志將直接默認為 hostname.err。

注意:錯誤日志中記錄的並非全是錯誤信息,例如 MySQL 如何啟動 InnoDB 的表空間文件、如何初始化自己的存儲引擎等,這些也記錄在錯誤日志文件中。

查看錯誤日志

錯誤日志中記錄着開啟和關閉 MySQL 服務的時間,以及服務運行過程中出現哪些異常等信息。如果 MySQL 服務出現異常,可以到錯誤日志中查找原因。

在 MySQL 中,通過 SHOW 命令可以查看錯誤日志文件所在的目錄及文件名信息。

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)

錯誤日志以文本文件的形式存儲,直接使用普通文本工具就可以查看。這里通過記事本打開,從上面可以知道錯誤日志的文件名。該文件在默認的數據路徑“C:\ProgramData\MySQL\MySQL Server 5.7\Data\”下,打開 LAPTOP-UHQ6V8KP.err 文件,部分內容如下:

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)

以上是錯誤日志文件的一部分,主要記載了系統的一些運行錯誤。

刪除錯誤日志

在 MySQL 中,可以使用 mysqladmin 命令來開啟新的錯誤日志,以保證 MySQL 服務器上的硬盤空間。mysqladmin 命令的語法如下:

mysqladmin -uroot -p flush-logs

執行該命令后,MySQL 服務器首先會自動創建一個新的錯誤日志,然后將舊的錯誤日志更名為 filename.err-old。

MySQL 服務器發生異常時,管理員可以在錯誤日志中找到發生異常的時間、原因,然后根據這些信息來解決異常。對於很久之前的錯誤日志,查看的可能性不大,可以直接將這些錯誤日志刪除。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM