设为首页收藏本站 JeeStudy企业开发官网①

JEE Study|JAVA EE|企业级开发学习网

 找回密码
 立即加入

QQ登录

只需一步,快速开始

扫一扫,访问微社区

搜索
查看: 2735|回复: 0
打印 上一主题 下一主题

MySQL8.0大师之路:第12章:MySQL服务组件

[复制链接]

219

主题

221

帖子

1418

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1418

最佳新人活跃会员热心会员推广达人宣传达人灌水之王突出贡献优秀版主荣誉管理论坛元老

跳转到指定楼层
楼主
发表于 2020-4-23 15:12:06 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
MySQL服务器组件
    MySQL Server包括用于扩展服务器功能的基本组件的基础结构。组件提供服务器和其他组件可用的服务。 (就服务使用而言,服务器是一个组件,与其他组件相同。)组件仅通过它们提供的服务进行交互。     MySQL发行版包括几个实现服务器扩展的组件:
    •用于配置错误日志记录的组件。
    •用于检查密码的组件。
    •使应用程序能够将其自己的消息事件添加到审核日志的组件。



安装和卸载组件
    必须先将服务器组件装入服务器,然后才能使用它们。 MySQL支持在运行时加载组件。
    使用INSTALL COMPONENT和UNINSTALL COMPONENT SQL语句可以加载和卸载组件。例如:
INSTALL COMPONENT 'file://component_validate_password';
UNINSTALL COMPONENT 'file://component_validate_password';

    加载程序服务处理组件的加载和卸载,并在充当注册表的mysql系统数据库的组件表中列出已加载的组件。
    用于组件操作的SQL语句会影响服务器操作,并影响mysql.component系统表,如下所示:
    •INSTALL COMPONENT将组件加载到服务器中。组件立即变为活动状态。加载程序服务还将已加载的组件注册到mysql.component系统表中。对于随后的服务器重启,加载器服务在启动过程中加载mysql.component中列出的所有组件。即使使用--skip-grant-tables选项启动服务器,也会发生这种情况。
    •UNINSTALL COMPONENT会停用组件并从服务器上卸载它们。加载程序服务还会从mysql.component系统表中注销组件,以便在启动序列期间不再为后续服务器重启而加载这些组件。


    与用于服务器插件的相应INSTALL PLUGIN语句相比,用于组件的INSTALL COMPONENT语句具有显着的优势,即无需知道用于命名组件的任何特定于平台的文件名后缀。这意味着可以跨平台统一执行给定的INSTALL COMPONENT语句。



获取服务器组件信息
mysql系统数据库中的组件表包含有关当前加载的组件的信息,并显示已向INSTALL COMPONENT注册的组件。要查看安装了哪些组件,请使用以下语句:



错误日志组件
日志组件可以是过滤器或接收器:
•过滤器处理日志事件,以添加,删除或修改事件字段,或完全删除事件。结果事件将传递到log_error_services系统变量值中命名的下一个日志组件。
•接收器是日志事件的目标(写入器)。通常,接收器将日志事件处理为具有特定格式的日志消息,并将这些消息写入其关联的输出,例如文件或系统日志。
服务器按照命名顺序执行过滤器并在log_error_services值中接收。因此,最右边的组件应该是一个接收器。如果最右边的组件是过滤器,则它对事件的任何更改都不会影响输出。
以下各节介绍了按组件类型分组的单个日志组件:
•错误日志过滤器组件
•错误日志接收器组件
组件说明包括以下类型的信息:
•组件名称和预期用途。
•组件是内置的还是必须加载的。对于可加载的组件,该说明使用INSTALL COMPONENT和UNINSTALL COMPONENT语句指定用于加载和卸载组件的URN。
•是否可以在log_error_services值中多次列出该组件。
•对于接收器组件,该组件将输出写入的目标。



错误日志过滤器组件
错误日志过滤器组件实现错误日志事件的过滤:
•如果未启用过滤器组件,则不会进行过滤。
•任何启用的筛选器组件都只会影响稍后在log_error_services值中列出的组件的日志事件。特别是,对于在log_error_services中列出的任何日志接收器组件早于任何过滤器组件,不会发生日志事件过滤。



log_filter_internal组件
•用途:结合log_error_verbosity和log_error_suppression_list系统变量,根据日志事件优先级和错误代码实施过滤。
•URN:此组件是内置的,在使用前无需加载INSTALL COMPONENT。
•允许多次使用:否。
如果禁用log_filter_internal,则log_error_verbosity和log_error_suppression_list无效。



log_filter_dragnet组件
•目的:基于dragnet.log_error_filter_rules系统变量设置定义的规则实施过滤。
•URN:file:// component_log_filter_dragnet
•允许多次使用:否。


错误日志接收器组件
错误日志接收器组件是实现错误日志输出的编写器。如果未启用任何接收器组件,则不会发生日志输出。一些接收器组件描述引用默认错误日志目标。这是控制台或文件,由log_error系统变量的错误指示。



log_sink_internal组件
•目的:实现传统的错误日志消息输出格式。
•URN:此组件是内置的,在使用前无需加载INSTALL COMPONENT。
•允许多次使用:否。
•输出目标:写入默认错误日志目标。



log_sink_json组件
•目的:实现JSON格式的错误日志记录。
•URN:file:// component_log_sink_json
•允许多次使用:是。
•输出目的地:JSON日志编写器根据默认错误日志目的地(由log_error系统变量给定)确定其输出目的地:
    •如果log_error命名文件,则JSON编写器将基于该文件名命名的输出文件加上一个编号为.NN.json后缀,NN从00开始。例如,如果log_error是file_name,则以log_error_services值命名的log​​_sink_json的连续实例将写入file_name.00.json,file_name.01.json等。
    •如果log_error是stderr,则JSON编写器将写入控制台。如果在log_error_services值中多次命名了log_json_writer,则它们都将写入控制台,这可能没有用。


log_sink_syseventlog组件
•目的:将错误日志记录到系统日志中。这是Windows上的事件日志,是Unix和类似Unix的系统上的syslog。
•URN:file:// component_log_sink_syseventlog
•允许多次使用:否。
•输出目标:写入系统日志。不使用默认错误日志目标。



log_sink_test组件
•目的:供编写测试用例内部使用。不适用于生产用途。
•URN:file:// component_log_sink_test
•允许多次使用:是。
•输出目标:写入默认错误日志目标。































知识改变命运!

JAVA EE 学习     JAVA EE 资料
JEE Study:企业级开发学习网!
回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

QQ|Archiver|手机版|小黑屋|JEE Study ( 京ICP备16036936   JeeStudy企业开发官网①

GMT+8, 2024-12-2 17:38 , Processed in 0.185322 second(s), 27 queries .

Powered by JeeStudy!

© 2008-2020 JEE Study 企业级开发学习网

快速回复 返回顶部 返回列表