JeeStudy 发表于 2020-4-21 16:13:09

MySQL8.0大师之路:第11章:MySQL服务器管理-11.8 MySQL 错误记录到系统日志

错误记录到系统日志
mysqld将错误日志写入系统日志(Windows上的事件日志,Unix和类似Unix的系统上的syslog)。本节介绍如何使用内置过滤器log_filter_internal和系统日志编写器log_sink_syseventlog配置错误日志记录,以立即生效并在随后的服务器启动中生效。要启用系统日志编写器,请首先加载编写器组件,然后修改log_error_services值:

INSTALL COMPONENT 'file://component_log_sink_syseventlog';
SET GLOBAL log_error_services = 'log_filter_internal; log_sink_syseventlog';


注意对于MySQL 8.0配置,必须显式启用将错误日志记录到系统日志中。这与MySQL 5.7和更早版本不同,MySQL 5.7和更早版本的Windows默认情况下启用了将错误日志记录到系统日志的功能,并且在所有平台上都不需要加载组件。
错误记录到系统日志中可能需要其他系统配置。



在Windows上,写入应用程序日志中事件日志的错误消息具有以下特征:
•标记为“错误”,“警告”和“注释”的条目被写入事件日志,但不会写入消息(例如来自各个存储引擎的信息语句)。
•事件日志条目具有MySQL的来源(如果将syseventlog.tag定义为标记,则为MySQL标记)。在Unix和类Unix系统上,使用syslog登录到系统日志。以下系统变量会影响syslog消息:•syseventlog.facility:syslog消息的默认功能是守护程序。设置此变量以指定其他功能。
•syseventlog.include_pid:是否在syslog输出的每一行中包括服务器进程ID。
•syseventlog.tag:此变量定义一个标签,以在syslog消息中添加到服务器标识符(mysqld)。如果已定义,则标签将以前导连字号附加到标识符。



注意:在MySQL 8.0.13之前,请使用log_syslog_facility,log_syslog_include_pid和log_syslog_tag系统变量,而不要使用syseventlog.xxx变量。


MySQL将自定义标签“ System”用于有关非错误情况的重要系统消息,例如启动,关闭以及对设置的一些重大更改。在不支持自定义标签的日志中,包括Windows上的“事件日志”,以及Unix和类似Unix的系统上的syslog,将为系统消息分配用于信息优先级的标签。但是,即使MySQL log_error_verbosity设置通常在信息级别排除消息,这些消息也会打印到日志中。
当日志编写者必须以这种方式退回到“信息”标签而不是“系统”标签,并且日志事件在MySQL服务器之外进一步处理(例如,由syslog配置过滤或转发)时,这些事件默认情况下,辅助应用程序可能会将其作为“信息”优先级而不是“系统”优先级进行处理。






























页: [1]
查看完整版本: MySQL8.0大师之路:第11章:MySQL服务器管理-11.8 MySQL 错误记录到系统日志