2、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 伺服器發生異常時,管理員可以在錯誤日誌中找到發生異常的時間、原因,然後根據這些資訊來解決異常。對於很久之前的錯誤日誌,檢視的可能性不大,可以直接將這些錯誤日誌刪除。
相關文章
- nginx error_log 錯誤日誌配置說明NginxError
- mysql 日誌之錯誤日誌MySql
- mysql檢視binlog日誌詳解MySql
- Apche日誌系列(2):錯誤日誌(轉)
- SQL Server ErrorLog 錯誤日誌SQLServerError
- MySQL 狂寫錯誤日誌MySql
- 檢查Linux系統日誌error和mysql錯誤日誌的指令碼薦LinuxErrorMySql指令碼
- 開啟PHP的錯誤log日誌PHP
- Js錯誤Error物件詳解JSError物件
- JVM致命錯誤日誌(hs_err_pid.log)解讀JVM
- MySQL error 錯 誤 碼MySqlError
- mysql慢查詢和錯誤日誌分析MySql
- Mysql5.7 的錯誤日誌中最常見的note日誌MySql
- MySQL資料庫中的日誌檔案---(1)錯誤日誌MySql資料庫
- Git reflog 引用日誌使用詳解Git
- Java日誌框架:logback詳解Java框架
- log4j日誌配置詳解
- 新特性解讀 | MySQL 8.0錯誤日誌深入過濾(上)MySql
- 排查錯誤日誌
- php的錯誤日誌級別 error_report(轉)PHPError
- mysql的日誌檔案詳解MySql
- Laravel 錯誤日誌的外掛 (Laravel-log-viewer)LaravelView
- log4j不輸出日誌錯誤分析
- python logger 列印日誌錯誤行數Python
- ITMySQL錯誤日誌與通用查詢日誌圖文詳析jugMySql
- mysql之 日誌體系(錯誤日誌、查詢日誌、二進位制日誌、事務日誌、中繼日誌)MySql中繼
- MySQL 的日誌:binlogMySql
- MySQL重做日誌(redo log)MySql
- mysql清除binlog日誌MySql
- MySQL的binlog日誌MySql
- 清除MySQL Binlog日誌MySql
- Mabatis配置錯誤日誌BAT
- net 日誌分析錯誤
- 日誌查詢錯誤
- 錯誤日誌檢視
- SQL Server 錯誤日誌SQLServer
- mysql二進位制日誌詳解MySql
- JVM致命錯誤日誌(hs_err_pid.log)分析JVM