MySQL8.0错误日志Error log

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL8.0错误日志Error log相关的知识,希望对你有一定的参考价值。

参考技术A

错误日志包含mysqld启动和关闭的时间信息,还包含诊断消息,如服务器启动和关闭期间以及服务器运行时出现的错误、警告和其他需要注意的信息。例如:如果mysqld检测到某个表需要检查或修复,会写入错误日志。

根据错误日志配置,错误消息还可能填充performance_schema.error_log表,以便为日志提供SQL接口,使错误日志能够查询。

如果用mysqld_safe启动mysqld,mysqld_safe会将消息写入错误日志。例如,当mysqld_safe注意到mysqld异常退出时,它会重新启动mysqld,并将mysqld重新启动的消息写入错误日志。

在MySQL 8.0中,错误日志使用MySQL组件(component) 架构。错误日志系统由执行日志事件过滤和写出组件以及系统变量组成,该系统变量配置启用哪些组件来实现所需的日志记录。

基于组件的错误日志记录提供了以下功能:

log_error_services系统变量控制为错误记录启用哪些日志组件。多个组件用逗号或分号分隔,日志系统按照此顺序依次执行。组件分过滤filter和写出sink两类。filter类组件过滤错误日志信息,sink类组件将错误日志写到不同的位置。

过滤器组件 过滤依据 相关系统变量 log_filter_internal 错误事件的优先级及错误代码 log_error_verbosity
log_error_suppression_list log_filter_dragnet 用户定义的规则 dragnet.log_error_filter_rules

系统变量log_error指定错误日志的缺省目的地,日志组件根据该系统变量决定自己的日志输出目的地。

sink类日志组件 log_error值 目的地 log_sink_internal(缺省) file_name file_name log_sink_internal stderr 控制台 log_sink_json stderr 控制台 log_sink_json file_name file_name .00.json
file_name .01.json log_sink_test stderr 控制台 log_sink_test file_name file_name log_sink_syseventlog stderr 系统日志 log_sink_syseventlog file_name 系统日志

安装sink组件log_sink_json,修改log_error_services参数增加log_sink_json写出组件。

目标:配置log_sink_internal组件只记录ERROR类信息。

方法:修改启动参数文件,调整log_error_verbosity参数。

目标:配置log_sink_internal记录ERROR, WARNING, INFORMATION类错误,将 WARNING, INFORMATION中错误号MY-010001,MY-10002过滤掉。

方法:修改启动参数文件,调整log_error_verbosity和log_error_suppression_list参数

目标:配置过滤器,按照用户定义的规则过滤错误日志信息。

方法:使用log_filter_dragnet,配置变量dragnet.log_error_filter_rules添加过滤规则。

目标:将MySQL的错误日志写入Linux系统日志。

方法:使用log_sink_syseventlog组件,将错误日志写入Linux系统日志。

目标:保留原错误日志,让MySQL开始一个新的错误日志。

方法:使用FLUSH ERROR LOGS 或 FLUSH LOGS 或 mysqladmin flush-logs都可以关闭错误日志,然后重新创建错误日志,在此之前应该手工将错误日志改名或备份。

mysql错误日志

错误日志

MySQL错误日志是记录MySQL 运行过程中较为严重的警告和错误信息,以及MySQL每次启动和关闭的详细信息。

1、错误日志路径查询

show variables like \'%log_error%\';

log_error记录了错误日志路径。

2、告警日志设置

show variables like \'%log_warnings%\';

log_warnings:0表示不记录警告信息,1表示记录警告信息到错误日志,大于1表示"失败的连接"的信息和创建新连接时"拒绝访问"类的错误信息也会被记录到错误日志中。

通用日志

记录连接数据库信息和所有操作信息。

1、参数配置

show variables where variable_name like "%general_log%" or variable_name="log_output";

 

general_log:OFF表示关闭通用日志,ON表示开启通用日志

general_log_file:表示通用日志文件路径

log_output:FILE表示记录文件,TABLE表示记录表,FILE,TABLE表示同时记录文件和表

2、实战

SET GLOBAL general_log = \'ON\';
SET GLOBAL log_output = \'FILE,TABLE\';

select * from mysql.general_log;

 

以上是关于MySQL8.0错误日志Error log的主要内容,如果未能解决你的问题,请参考以下文章

MySQL8.0日志配置管理

MySQL8.0日志配置管理

nginx日志-错误日志(error_log)

nginx错误日志error_log日志级别

MySQL日志 - Error Log错误日志

MySQL 错误日志(Error Log)