在上一期 《访问权限控制系统|全方位认识 mysql 系统库》 中,我们结合MySQL的权限表详细介绍了MySQL 的访问权限控制系统,本期我们将为大家带来系列第三篇《元数据记录表|全方位认识 mysql 系统库》,下面请跟随我们一起开始 mysql 系统库的系统学习之旅吧。
1、plugin
root@localhost : mysql 01:00:20> select * from plugin; +------------------------------------------+-----------------------+ | name | dl | +------------------------------------------+-----------------------+ | CONNECTION_CONTROL | connection_control.so | | CONNECTION_CONTROL_FAILED_LOGIN_ATTEMPTS | connection_control.so | +------------------------------------------+-----------------------+ 2 rows in set (0.00 sec)
dl: 自定义安装的插件so库名称。
2、proc
root@localhost : mysql 01:01:09> select * from proc limit 1\G; *************************** 1. row *************************** db: sys name: extract_schema_from_file_name type: FUNCTION specific_name: extract_schema_from_file_name language: SQL sql_data_access: NO_SQL is_deterministic: YES security_type: INVOKER param_list: path VARCHAR(512) returns: varchar(64) CHARSET utf8 body: BEGIN RETURN LEFT(SUBSTRING_INDEX(SUBSTRING_INDEX(REPLACE(path, '\\', '/'), '/', -2), '/', 1), 64); END definer: mysql.sys@localhost created: 2017-07-01 14:31:32 modified: 2017-07-01 14:31:32 sql_mode: comment: Description ...... character_set_client: utf8 collation_connection: utf8_general_ci db_collation: utf8_general_ci body_utf8: BEGIN RETURN LEFT(SUBSTRING_INDEX(SUBSTRING_INDEX(REPLACE(path, '\', '/'), '/', -2), '/', 1), 64); END 1 row in set (0.01 sec)
3、event
root@localhost : mysql 01:02:41> select * from event limit 1\G; *************************** 1. row *************************** db: sbtest name: test_event body: BEGIN insert into test_table select max(id) from sbtest1; END definer: root@% execute_at: NULL interval_value: 1 interval_field: DAY created: 2018-01-21 17:05:37 modified: 2018-01-21 17:08:56 last_executed: NULL starts: 2018-01-21 09:05:37 ends: NULL status: ENABLED on_completion: DROP sql_mode: ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION comment: 每天统计sbtest1表中的最大自增值 originator: 3306111 time_zone: +08:00 character_set_client: utf8 collation_connection: utf8_general_ci db_collation: utf8_bin body_utf8: BEGIN insert into test_table select max(id) from sbtest1; END 1 row in set (0.00 sec)
表字段含义
与information_schema.events表的字段含义类似,详见《Server层表级别对象字典表|全方位认识 information_schema》一文中events部分,这里不再赘述。
4、func
该表提供查询与information_schema.routines表类似的内容(早期版本主要用于记录用户自定义函数),但information_schema.routines表记录的更加详细。
下面是该表中存储的信息内容(这里列出的示例内容为从企业版so插件中安装的UDF函数)。
root@localhost : mysql 12:52:05> select * from func; +--------------------------------+-----+--------------+-----------+ | name | ret | dl | type | +--------------------------------+-----+--------------+-----------+ | audit_log_filter_flush | 0 | audit_log.so | function | | audit_log_filter_remove_user | 0 | audit_log.so | function | | audit_log_filter_set_user | 0 | audit_log.so | function | | audit_log_filter_remove_filter | 0 | audit_log.so | function | | audit_log_filter_set_filter | 0 | audit_log.so | function | | set_firewall_mode | 0 | firewall.so | function | | normalize_statement | 0 | firewall.so | function | | mysql_firewall_flush_status | 0 | firewall.so | function | | read_firewall_whitelist | 0 | firewall.so | aggregate | | read_firewall_users | 0 | firewall.so | aggregate | +--------------------------------+-----+--------------+-----------+ 10 rows in set (0.00 sec)
表字段含义
详见information_schema.routines表,详情参考《Server层表级别对象字典表|全方位认识 information_schema》一文中routines部分,这里不再赘述。
"翻过这座山,你就可以看到一片海! "。 坚持阅读我们的"全方位认识 mysql 系统库"系列文章分享,你就可以系统地学完它。 谢谢你的阅读,我们下期不见不散!
作者简介
罗小波·沃趣科技高级数据库技术专家
IT从业多年,主要负责MySQL 产品的数据库支撑与售后二线支撑。曾参与版本发布系统、轻量级监控系统、运维管理平台、数据库管理平台的设计与编写,熟悉MySQL体系结构,Innodb存储引擎,喜好专研开源技术,多次在公开场合做过线下线上数据库专题分享,发表过多篇数据库相关的研究文章。
