数据库对象信息记录表|全方位认识 mysql 系统库

在上一期 《访问权限控制系统|全方位认识 mysql 系统库》 中,我们结合MySQL的权限表详细介绍了MySQL 的访问权限控制系统,本期我们将为大家带来系列第三篇《元数据记录表|全方位认识 mysql 系统库》,下面请跟随我们一起开始 mysql 系统库的系统学习之旅吧。

1、plugin

该表提供查询自定义安装的插件信息(非系统默认启用的插件),该表的功能已经被information_schema.plugins表取代。
下面是该表中存储的信息内容。

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)

表字段含义
name: 自定义安装插件时指定的插件名称。
dl: 自定义安装的插件so库名称。

2、proc

该表提供查询与information_schema.routines表类似的内容(早期版本主要用户记录存储过程),但information_schema.routines表记录的更加详细。
下面是该表中存储的信息内容。

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)

表字段含义
与information_schema.routines表类似,详情参考《Server层表级别对象字典表|全方位认识 information_schema》一文中routines部分,这里不再赘述。

3、event

该表提供查询计划任务相关的事件信息,该表中的信息与information_schema.events相同,且information_schema.events中记录的信息更加详细。
下面是该表中存储的信息内容。

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插件库中安装的函数信息。
下面是该表中存储的信息内容(这里列出的示例内容为从企业版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部分,这里不再赘述。

本期内容就介绍到这里,本期内容参考链接如下:
https://dev.mysql.com/doc/refman/5.7/en/system-database.html

"翻过这座山,你就可以看到一片海! "。 坚持阅读我们的"全方位认识 mysql 系统库"系列文章分享,你就可以系统地学完它。 谢谢你的阅读,我们下期不见不散!

作者简介

罗小波·沃趣科技高级数据库技术专家

IT从业多年,主要负责MySQL 产品的数据库支撑与售后二线支撑。曾参与版本发布系统、轻量级监控系统、运维管理平台、数据库管理平台的设计与编写,熟悉MySQL体系结构,Innodb存储引擎,喜好专研开源技术,多次在公开场合做过线下线上数据库专题分享,发表过多篇数据库相关的研究文章。

发表评论

电子邮件地址不会被公开。 必填项已用*标注