MySQL 8 组件架构和错误日志
MySQL 服务器版本 8 的众多重大变化之一包括一个新的基于组件的基础架构。这将使架构更加模块化,同时允许用户添加单个组件来扩展服务器功能。
每个组件都提供服务器以及其他组件可用的服务。事实上,服务器本身现在被认为是一个组件,与其他组件一样。组件仅通过它们提供的服务相互交互。
启用组件
通过 INSTALL COMPONENT 和 UNINSTALL COMPONENT SQL 语句实现组件加载和卸载。例如:
INSTALL COMPONENT 'file://component_validate_password';
UNINSTALL COMPONENT 'file://component_validate_password';
加载器服务处理组件加载和卸载,还列出 mysql.component 系统表中已加载的组件。
INSTALL COMPONENT 将组件加载到服务器中并立即激活它们。加载器服务还在 mysql.component 系统表中注册已加载的组件。对于后续服务器重启,mysql.component 中列出的任何组件都在启动期间由加载器服务加载。
UNINSTALL COMPONENT 取消激活组件并从服务器卸载它们。加载器服务还会从 mysql.component 系统表中取消注册组件,以便在后续服务器启动期间不再加载它们。
若要查看已安装的组件,请使用以下语句:
SELECT * FROM mysql.component;
错误日志筛选和路由
由于采用了新的组件架构,可以过滤日志事件,并可以将各种格式的输出发送到多个目标,包括 JSON。日志事件甚至可以路由到第三方产品,如 Navicat Monitor,以进行其他处理和分析。
错误日志配置存储在全局 log_error_services 和 log_error_verbosity 变量中,这些变量都存储在 global_variables 表中。错误日志变量都是以“log_error_”为前缀,因此我们可以按如下方式获取两者的值:
mysql>select * from global_variables where VARIABLE_NAME like 'log_error_%';
--------------------- ----------------------------------------
| VARIABLE_NAME | VARIABLE_VALUE |
--------------------- ----------------------------------------
| log_error_services | log_filter_internal; log_sink_internal |
| log_error_verbosity | 2 |
--------------------- ----------------------------------------
有四个可用的日志组件。它们存储在 lib/plugins 目录中,扩展名为“.so”:
- component_log_filter_dragnet.so
- component_log_sink_json.so
- component_log_sink_syseventlog.so
- component_log_sink_test.so
组件可以细分为两种类型:filter 和 sink。
- filter 组件完成针对错误日志事件的筛选。如果没有启用 filter 组件,就不会进行筛选。否则,任何已启用的 filter 组件仅影响 log_error_services 变量中列出的组件的日志事件。
- 错误日志 sink 组件是写入器,负责错误日志输出。如果没有启用 sink 组件,就不会有任何日志输出。某些 sink 组件描述是指默认的错误日志目标。这是由 log_error 系统变量指示的控制台或文件。
若要加载组件,你需要指定其 URN。这包括:
“file://” [the filename without the .so extension]
例如,若要将编写器加载到 json 组件,你可以这样操作来启用它:
mysql> INSTALL COMPONENT 'file://component_log_sink_json';
mysql> SET GLOBAL log_error_services = 'log_filter_internal; log_sink_internal;
log_sink_json';
mysql> select * from global_variables where VARIABLE_NAME like 'log_error_%';
--------------------- -------------------------------------------------------
| VARIABLE_NAME | VARIABLE_VALUE |
--------------------- -------------------------------------------------------
| log_error_services | log_filter_internal; log_sink_internal; log_sink_json |
| log_error_verbosity | 2 |
--------------------- -------------------------------------------------------
我们将在后续的文章中更详细地探索 MySQL 8 中的错误日志!
往期回顾
- 假冒网站引发多重安全风险 | 官方严正声明:切勿在非官方渠道购买或下载 Navicat 软件
- Navicat 荣获 Microsoft 金牌合作伙伴
- Navicat 16.3 正式支持 OceanBase 企业版
- 免费试用 Navicat 16
- Navicat 的 20年发展史
- SQL 语句中 WHERE 1=1 的作用
- SQL 中计算总行数的百分比
- 互动有礼活动进行中 | 奖品为价值 819 元 Navicat Premium
- Navicat NAPP 校企合作和申请免费一年期的 Navicat Premium 教育版
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhgekbfe
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01