MySQL 8.0 架构 之错误日志文件(Error Log)(2)

文章目录

【声明】文章仅供学习交流,观点代表个人,与任何公司无关。
来源|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错误日志文件的输出。

clike 复制代码
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

例:

clike 复制代码
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) 用于过滤错误日志事件,可以指定如下选择:

clike 复制代码
 - 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
clike 复制代码
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

例:

clike 复制代码
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>

持久化设置

clike 复制代码
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

相关推荐
龙腾亚太3 小时前
智能体全景架构:从入门到落地
架构
2603_965148113 小时前
如何解析JSON数据?API返回的商品信息处理教程
开发语言·数据库·python·自动化·json·api
ltl3 小时前
RocksDB 经典故障排查:L0、compaction 与 write stall
数据库
ltl3 小时前
部署架构:蓝绿、金丝雀与渐进式发布
架构
ltl3 小时前
架构决策与 ADR:做出可追溯的技术决策
架构
xfhuangfu4 小时前
Oracle中建立到CDB和PDB的连接
数据库·oracle·rpc
云端漫步19874 小时前
HarmonyOS 互动卡片(Live Form)入门指南:双态架构与场景动效全景解析
华为·架构·harmonyos
小小龙学IT4 小时前
DuckDB 深度实战:用 C++ 在进程内跑一个「分析型数据库」
数据库·c++
NineData5 小时前
DTCC 2026 预告|NineData CEO& 创始人叶正盛:面向 AI Agent 的数据库 DevOps 与数据复制实践
数据库·人工智能·数据库开发·devops·ninedata·数据库技术·dtcc
heimeiyingwang5 小时前
【架构实战】Kubernetes存储实战:从EmptyDir到Ceph CSI的持久化存储选型指南
ceph·架构·kubernetes