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

来源:这里教程网 时间:2026-03-01 12:29:03 作者:

在上一期 《访问权限控制系统|全方位认识 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存储引擎,喜好专研开源技术,多次在公开场合做过线下线上数据库专题分享,发表过多篇数据库相关的研究文章。

  • 相关推荐