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 伺服器發生異常時,管理員可以在錯誤日誌中找到發生異常的時間、原因,然後根據這些資訊來解決異常。對於很久之前的錯誤日誌,檢視的可能性不大,可以直接將這些錯誤日誌刪除。
相關文章
- 開啟PHP的錯誤log日誌PHP
- MySQL 狂寫錯誤日誌MySql
- Js錯誤Error物件詳解JSError物件
- MySQL error 錯 誤 碼MySqlError
- MySQL重做日誌(redo log)MySql
- 【Mysql】三大日誌 redo log、bin log、undo logMySql
- mysql慢查詢和錯誤日誌分析MySql
- Mysql5.7 的錯誤日誌中最常見的note日誌MySql
- 新特性解讀 | MySQL 8.0錯誤日誌深入過濾(上)MySql
- 排查錯誤日誌
- Linux系統檢視log日誌命令詳解!Linux
- ITMySQL錯誤日誌與通用查詢日誌圖文詳析jugMySql
- mysql檢視binlog日誌詳解MySql
- mysql的日誌檔案詳解MySql
- MySQL 日誌系統 redo log、binlogMySql
- Django筆記三十之log日誌記錄詳解Django筆記
- net 日誌分析錯誤
- 日誌查詢錯誤
- Mabatis配置錯誤日誌BAT
- Mysql系統變數中 log_error_services | log_filter_internal; log_sink_internal 和 log_error_verbosity | 2 解釋MySql變數ErrorFilter
- SpringBoot學習--09配置log4j2日誌詳解(下)--升級Spring Boot
- MySQL error log和bin logMySqlError
- 必須瞭解的mysql三大日誌-binlog、redo log和undo logMySql
- Log日誌
- mysql日誌:redo log、binlog、undo log 區別與作用MySql
- MySQL Slow Query log(慢查詢日誌)MySql
- mysql之 slow log 慢查詢日誌MySql
- golang常用庫包:log日誌記錄-uber的Go日誌庫zap使用詳解Golang
- mysql錯誤詳解(1819):ERROR 1819 (HY000): Your password does not satisfy the current policy requirementsMySqlErrorUIREM
- MySQL 8.0.18 錯誤日誌時間慢了8個小時MySql
- 錯誤Error during artifact deployment. See server log for details.ErrorServerAI
- RxJava2 錯誤處理詳解RxJava
- log 日誌原理
- Python 日誌(Log)Python
- MySQL日誌警告'[Warning] Unsafe statement written to the binary log'MySql
- Mysql 錯誤日誌出現大量[Warning] Aborted connection to db user host的解決思路MySql
- ClickHouse(16)ClickHouse日誌引擎Log詳細解析
- mysql 索引長度 767 錯誤 ERROR 1071MySql索引Error