Mysql系统变量中 log_error_services | log_filter_internal; log_sink_internal 和 log_error_verbosity | 2 解释

在MySQL中,log_error_services 允许你配置一系列的日志过滤器和日志接收器(sinks),以控制错误日志的生成和输出。这些组件共同决定了哪些日志消息应该被记录,以及它们应该被发送到哪里。
log_filter_internal:
这是一个内置的日志过滤器组件。
它的主要目的是过滤掉那些不需要记录到错误日志的消息。
默认情况下,log_filter_internal 会过滤掉一些不太重要的消息,如警告、通知等,只保留错误和严重警告。
你可以通过配置log_filter_internal的过滤级别来改变它的行为,例如让它也记录警告消息。
log_sink_internal:
这是一个内置的日志接收器(sink)组件。
它的主要任务是将日志消息写入到指定的目的地。
默认情况下,log_sink_internal 会将日志消息写入到由 log_error 系统变量指定的文件中,通常是hostname.err文件,除非你改变了log_error的设置。
你可以配置多个sinks,并且log_sink_internal 只是其中之一。其他的sinks,如 log_sink_json 或 log_sink_syseventlog,也可以被配置来同时接收和处理日志消息。
当你设置 log_error_services 为 log_filter_internal; log_sink_internal 时,你实际上是在告诉MySQL:首先使用 log_filter_internal 过滤器来筛选日志消息,然后将筛选后的消息发送到 log_sink_internal 接收器进行记录。
这种配置方式提供了很大的灵活性,因为你可以很容易地添加、删除或修改过滤器和接收器,以满足特定的日志记录需求。同时,它也使得错误日志的管理和监控变得更加简单和高效。

在 MySQL 中,log_error_verbosity 是一个系统变量,用于控制错误日志中记录的消息的详细程度。这个变量决定了哪些类型的消息应该被写入错误日志。
log_error_verbosity 的值可以是 03 之间的整数,每个级别都决定了不同的日志详细程度:
0 (最低详细程度): 只记录严重的错误消息,例如服务器启动失败或表损坏等。
1 (低详细程度): 记录错误消息和一些警告。这是默认的设置。
2 (中详细程度): 除了错误和警告之外,还记录一些重要的通知信息。这通常用于诊断问题,因为它提供了比默认设置更多的上下文信息。
3 (高详细程度): 记录所有类型的消息,包括调试信息。这通常只在开发或调试阶段使用,因为它会产生大量的日志输出。
当你设置 log_error_verbosity 为 2 时,你告诉 MySQL 记录错误、警告以及一些重要的通知信息到错误日志中。这个设置通常对于日常的运维和故障排查是足够的,因为它既不会过于冗长(像级别 3 那样包含大量调试信息),也不会过于简略(像级别 01 那样可能会漏掉一些有用的信息)。
你可以通过以下 SQL 语句来设置 log_error_verbosity 的值:
sql
SET GLOBAL log_error_verbosity = 2;
或者,你可以在 MySQL 的配置文件(通常是 my.cnf 或 my.ini)中设置:
[mysqld]
log_error_verbosity = 2
这样,MySQL 服务器在启动时就会使用这个配置,并相应地调整错误日志的详细程度。记得在修改配置文件后重新启动 MySQL 服务以使更改生效。
posted @   文采杰出  阅读(68)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示