文章目錄
- MySQL 8.0 架構 之錯誤日志文件(Error Log)(2)
- MySQL錯誤日志文件(Error Log)
- 錯誤日志相關參數
- log_error
- log_error_services
- 過濾器(Filter Error Log Components)
- 寫入/接收器器(Sink Error Log Components)
- log_error_verbosity
- log_error_suppression_list
- 參考
【聲明】文章僅供學習交流,觀點代表個人,與任何公司無關。
來源|Walt@SQL和數據庫技術(ID:SQLplusDB)
MySQL 8.0 OCP (1Z0-908) 考點概要
MySQL 8.0 OCP (1Z0-908) 考點精析-安裝與配置考點1:設置系統變量
【MySQL】控制MySQL優化器行為方法之optimizer_switch系統變量
【MySQL】MySQL系統變量(system variables)列表(mysqld --verbose --help的結果例)
【MySQL】MySQL系統變量(system variables)列表(SHOW VARIABLES 的結果例)
MySQL 8.0 OCP (1Z0-908) 考點精析-備份與恢復考點1:MySQL Enterprise Backup概要
MySQL 8.0 OCP (1Z0-908) 考點精析-性能優化考點1:sys.statement_analysis視圖
MySQL 8.0 OCP (1Z0-908) 考點精析-性能優化考點2:系統變量的確認
MySQL 8.0 性能優化之 EXPLAIN ANALYZE
MySQL 8.0 性能優化之 慢速查詢日志(slow query log)
MySQL 8.0 性能優化之 表連接算法(join algorithm)
MySQL 8.0 性能優化之 MySQL Enterprise Monitor之Query Analyzer
MySQL 8.0 OCP (1Z0-908) 考點精析-架構考點1:二進制日志文件(Binary log)
MySQL 8.0 架構 之數據字典(Data Dictionary)
MySQL 8.0 InnoDB Tablespaces之System Tablespace(系統表空間)
MySQL 8.0 InnoDB Tablespaces之File-per-table tablespaces(單獨表空間)
MySQL 8.0 InnoDB Tablespaces之General Tablespaces(通用表空間/一般表空間)
MySQL 8.0 InnoDB Tablespaces之Temporary Tablespaces(臨時表空間)
MySQL 8.0 InnoDB Tablespaces之Undo Tablespaces(UNDO表空間)
【MySQL】在數據目錄之外創建InnoDB 表(Creating Tables Externally)
MySQL 8.0 InnoDB 架構之 日志緩沖區(Log Buffer)和重做日志(Redo Log)
MySQL 8.0 架構 之錯誤日志文件(Error Log)(1)
MySQL 8.0 架構 之錯誤日志文件(Error Log)(2)
MySQL中有多種類型的日志文件,這些日志可用于故障排除、性能調整和審計等目的,幫助找出正在發生的活動。
常見的日志文件包括:
日志類型 | 寫入日志的信息 |
---|---|
錯誤日志(Error log) | 啟動、運行或停止mysqld時遇到的問題 |
二進制日志(Binary log) | 更改數據的語句(也用于復制) |
中繼日志(Relay log) | 從復制源服務器接收到的數據更改 |
通用查詢日志(General query log) | 已建立的客戶端連接和從客戶端接收到的語句 |
慢查詢日志(Slow query log) | 執行時間超過long_query_time秒的查詢 |
DDL日志(元數據日志)(DDL log) | DDL語句執行的元數據操作 |
MySQL 8.0 架構 之錯誤日志文件(Error Log)(1)
錯誤日志(Error Log)主要用于記錄 MySQL 服務器啟動和停止過程中的信息、以及服務器在運行過程中發生的故障和異常情況等信息。用于診斷數據庫運行過程中的相關問題。
MySQL錯誤日志文件(Error Log)
錯誤日志功能默認為開啟狀態,也可以通過相關參數控制MySQL錯誤日志文件的輸出。
mysql> show variables like 'log_err%';
+----------------------------+----------------------------------------+
| Variable_name | Value |
+----------------------------+----------------------------------------+
| log_error | /var/log/mysql/error.log |
| log_error_services | log_filter_internal; log_sink_internal |
| log_error_suppression_list | |
| log_error_verbosity | 2 |
+----------------------------+----------------------------------------+
4 rows in set (0.00 sec)
- log_error用于控制錯誤日志的路徑和文件名。
- log_error_services用于控制哪個日志組件啟用錯誤日志。
- log_error_suppression_list用于指定在錯誤日志中要過濾的某種特定類型警告或者事件(不被記錄的日志)。
- log_error_verbosity 用于指定日志事件的級別。
錯誤日志相關參數
log_error
log_error參數用于指定錯誤日志的路徑和文件名。
詳細可參考下文:
MySQL 8.0 架構 之錯誤日志文件(Error Log)(1)
log_error參數:
Command-Line Format | –log-error[=file_name] |
---|---|
System Variable | log_error |
Scope | Global |
Dynamic | No |
SET_VAR Hint Applies | No |
Type | File name |
參考:
log_error
https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_log_error
log_error_services
log_error_services用于控制哪個日志組件啟用錯誤日志,主要包括2部分:
- 過濾器(Filter Error Log Components) : 用于過濾錯誤日志事件
- 寫入/接收器(Sink Error Log Components) :用于控制日志的輸出(寫入)
Command-Line Format | –log-error-services=value |
---|---|
System Variable | log_error_services |
Scope | Global |
Dynamic | Yes |
SET_VAR Hint Applies | No |
Type | String |
Default Value | log_filter_internal; log_sink_internal |
例:
mysql> show variables like 'log_error_services';
+--------------------+----------------------------------------+
| Variable_name | Value |
+--------------------+----------------------------------------+
| log_error_services | log_filter_internal; log_sink_internal |
+--------------------+----------------------------------------+
1 row in set (0.00 sec)
過濾器(Filter Error Log Components)
過濾器(Filter Error Log Components) 用于過濾錯誤日志事件,可以指定如下選擇:
- log_filter_internal:(默認設定)基于日志級別和錯誤號記錄錯誤日志事件。相關變量包括log_error_verbosity和log_error_suppression_list 變量。- log_filter_dragnet:利用可選的高級組件,基于用戶定義的規則記錄錯誤日志事件。相關變量包括 dragnet.log_error_filter_rules
寫入/接收器器(Sink Error Log Components)
接收器(Sink Error Log Components)用于控制錯誤日志的輸出(寫入)。
- log_sink_internal:
默認設置,文本格式輸出到log_error定義的文件(file_name)。 - log_sink_json
啟用JSON格式的輸出到log_error定義的文件(file_name.00.json, file_name.01.json)。 - log_sink_syseventlog
輸出到系統日志。 - log_sink_test
測試用。
參考:
log_error_services
https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_log_error_services
7.5.3 Error Log Components
https://dev.mysql.com/doc/refman/8.0/en/error-log-components.html
log_error_verbosity
log_error_verbosity 用于指定日志事件的級別。
log_error_verbosity Value | Permitted Message Priorities |
---|---|
1 | ERROR |
2 | ERROR, WARNING |
3 | ERROR, WARNING, INFORMATION |
mysql> show variables like 'log_error_verbosity';
+---------------------+-------+
| Variable_name | Value |
+---------------------+-------+
| log_error_verbosity | 2 |
+---------------------+-------+
1 row in set (0.00 sec)
默認值2表示錯誤日志只輸出錯誤、警告以及必要的系統信息。
參考:
log_error_verbosity
https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_log_error_verbosity
log_error_suppression_list
log_error_suppression_list用于指定在錯誤日志中要過濾的某種特定類型警告或者事件(不被記錄的日志)。
Command-Line Format | –log-error-suppression-list=value |
---|---|
Introduced | 8.0.13 |
System Variable | log_error_suppression_list |
Scope | Global |
Dynamic | Yes |
SET_VAR Hint Applies | No |
Type | String |
Default Value | empty string |
例:
mysql> show variables like 'log_error_suppression_list';
+----------------------------+-------+
| Variable_name | Value |
+----------------------------+-------+
| log_error_suppression_list | |
+----------------------------+-------+
1 row in set (0.00 sec)mysql> SET @@GLOBAL.log_error_suppression_list = "ER_PARSER_TRACE, MY-010001, 10002";
Query OK, 0 rows affected (0.00 sec)mysql> show variables like 'log_error_suppression_list';
+----------------------------+-----------------------------------+
| Variable_name | Value |
+----------------------------+-----------------------------------+
| log_error_suppression_list | ER_PARSER_TRACE, MY-010001, 10002 |
+----------------------------+-----------------------------------+
1 row in set (0.00 sec)mysql>
持久化設置
mysql> SET PERSIST log_error_suppression_list='ER_PARSER_TRACE,MY-010001,10002';
Query OK, 0 rows affected (0.01 sec)mysql> show variables like 'log_error_suppression_list';
+----------------------------+---------------------------------+
| Variable_name | Value |
+----------------------------+---------------------------------+
| log_error_suppression_list | ER_PARSER_TRACE,MY-010001,10002 |
+----------------------------+---------------------------------+
1 row in set (0.00 sec)
參考:
log_error_suppression_list
https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_log_error_suppression_list
參考
27.12.21.2 The error_log Table
https://dev.mysql.com/doc/refman/8.0/en/performance-schema-error-log-table.html
5.4.2 The Error Log
https://dev.mysql.com/doc/refman/8.0/en/error-log.html
MySQL8.0自動升級與新的錯誤日志-徐軼韜
https://www.modb.pro/doc/5966