【问题标题】:What is plugins and how it is work in mysql?什么是插件以及它在 mysql 中是如何工作的?
【发布时间】:2016-04-27 07:01:26
【问题描述】:

我正在MySql官方网站(https://dev.mysql.com/doc/refman/5.1/en/partitioning.html)中探索分区。 在第一页,我找到了plugins

mysql> show plugins;
+----------------------------+----------+--------------------+---------+---------+
| Name                       | Status   | Type               | Library | License |
+----------------------------+----------+--------------------+---------+---------+
| binlog                     | ACTIVE   | STORAGE ENGINE     | NULL    | GPL     |
| mysql_native_password      | ACTIVE   | AUTHENTICATION     | NULL    | GPL     |
| mysql_old_password         | ACTIVE   | AUTHENTICATION     | NULL    | GPL     |
| sha256_password            | ACTIVE   | AUTHENTICATION     | NULL    | GPL     |
| MyISAM                     | ACTIVE   | STORAGE ENGINE     | NULL    | GPL     |
| MRG_MYISAM                 | ACTIVE   | STORAGE ENGINE     | NULL    | GPL     |
| MEMORY                     | ACTIVE   | STORAGE ENGINE     | NULL    | GPL     |
| CSV                        | ACTIVE   | STORAGE ENGINE     | NULL    | GPL     |
| InnoDB                     | ACTIVE   | STORAGE ENGINE     | NULL    | GPL     |
| INNODB_TRX                 | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_LOCKS               | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_LOCK_WAITS          | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_CMP                 | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_CMP_RESET           | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_CMPMEM              | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_CMPMEM_RESET        | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_CMP_PER_INDEX       | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_CMP_PER_INDEX_RESET | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_BUFFER_PAGE         | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_BUFFER_PAGE_LRU     | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_BUFFER_POOL_STATS   | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_METRICS             | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_FT_DEFAULT_STOPWORD | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_FT_DELETED          | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_FT_BEING_DELETED    | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_FT_CONFIG           | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_FT_INDEX_CACHE      | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_FT_INDEX_TABLE      | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_SYS_TABLES          | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_SYS_TABLESTATS      | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_SYS_INDEXES         | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_SYS_COLUMNS         | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_SYS_FIELDS          | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_SYS_FOREIGN         | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_SYS_FOREIGN_COLS    | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_SYS_TABLESPACES     | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_SYS_DATAFILES       | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| PERFORMANCE_SCHEMA         | ACTIVE   | STORAGE ENGINE     | NULL    | GPL     |
| FEDERATED                  | DISABLED | STORAGE ENGINE     | NULL    | GPL     |
| ARCHIVE                    | ACTIVE   | STORAGE ENGINE     | NULL    | GPL     |
| BLACKHOLE                  | ACTIVE   | STORAGE ENGINE     | NULL    | GPL     |
| partition                  | ACTIVE   | STORAGE ENGINE     | NULL    | GPL     |
+----------------------------+----------+--------------------+---------+---------+
42 rows in set (0.05 sec)

在我心中有一些问题

  1. plugins 是什么?
  2. 它是如何工作的?
  3. MySql 有多少插件可用?
  4. 我可以添加其他plugins 吗?
  5. 如果我可以添加那么如何添加?

【问题讨论】:

  • Type-列中可以看到,它们都是存储引擎。
  • @tkausl 我已经更新了我的问题,在我的系统中,显示插件的响应在上述问题中。现在你怎么说都有存储引擎。这些不是存储引擎。
  • 插件提供了一种开发复杂产品的方法,无需预先决定所有功能。安装插件比编译一堆代码要简单得多。

标签: mysql mariadb


【解决方案1】:

在分析了关于插件之后,我发现了更多关于它的东西。我解释得很深。

What is plugins and How it is work?

MySQL 支持允许创建服务器组件的插件 API。插件可以在服务器启动时加载,或者在运行时加载和卸载而无需重新启动服务器。 API 是通用的,并没有指定插件可以做什么。该接口支持的组件包括但不限于存储引擎、全文解析器插件和服务器扩展。

例如,全文解析器插件可用于替换或扩充内置的全文解析器。插件可以使用与内置解析器不同的规则将文本解析为单词。如果您需要解析具有与内置解析器预期不同的特征的文本,这将非常有用。

插件界面比旧的用户​​定义的更通用 函数(UDF)接口。

How much plugin available for MySql? (Types of Plugins)

插件 API 支持创建实现多种功能的插件:

  • 存储引擎
  • 全文解析器
  • 守护进程
  • INFORMATION_SCHEMA 表
  • 半同步复制
  • 审计
  • 身份验证
  • 密码验证和强度检查
  • 协议跟踪
  • 查询重写

Can i add other plugins ? / If i can add then how to add ?

使用 INSTALL PLUGIN 语句安装的插件:

位于插件库文件中的插件可以在运行时使用 INSTALL PLUGIN 语句加载。该语句还在 mysql.plugin 表中注册插件,以使服务器在后续重新启动时加载它。因此,INSTALL PLUGIN 需要 mysql.plugin 表的 INSERT 权限。

mysql> INSTALL PLUGIN myplugin SONAME 'somepluglib.so';

卸载插件

在运行时,UNINSTALL PLUGIN 语句禁用和卸载服务器已知的插件。该语句卸载插件并将其从 mysql.plugin 表中删除,如果它在那里注册。因此, UNINSTALL PLUGIN 语句需要 mysql.plugin 表的 DELETE 权限。由于插件不再在表中注册,服务器将不会自动加载插件以供后续重启。

【讨论】:

    【解决方案2】:

    这里是我安装的插件列表。还有很多。他们可以做很多事情。它们可以是存储引擎或处理用户函数或调度程序或... 因此可以通过普通的 SQL 和 and 直接读取或写入 CSV 或 JSON 文件。

    在这里你可以找到一些Informations

    MariaDB > SHOW PLUGINS;
    +-----------------------------+--------+--------------------+------------------------+---------+
    | Name                        | Status | Type               | Library                | License |
    +-----------------------------+--------+--------------------+------------------------+---------+
    | binlog                      | ACTIVE | STORAGE ENGINE     | NULL                   | GPL     |
    | mysql_native_password       | ACTIVE | AUTHENTICATION     | NULL                   | GPL     |
    | mysql_old_password          | ACTIVE | AUTHENTICATION     | NULL                   | GPL     |
    | CSV                         | ACTIVE | STORAGE ENGINE     | NULL                   | GPL     |
    | MEMORY                      | ACTIVE | STORAGE ENGINE     | NULL                   | GPL     |
    | MyISAM                      | ACTIVE | STORAGE ENGINE     | NULL                   | GPL     |
    | MRG_MyISAM                  | ACTIVE | STORAGE ENGINE     | NULL                   | GPL     |
    | Aria                        | ACTIVE | STORAGE ENGINE     | NULL                   | GPL     |
    | PERFORMANCE_SCHEMA          | ACTIVE | STORAGE ENGINE     | NULL                   | GPL     |
    | InnoDB                      | ACTIVE | STORAGE ENGINE     | NULL                   | GPL     |
    | XTRADB_READ_VIEW            | ACTIVE | INFORMATION SCHEMA | NULL                   | GPL     |
    | XTRADB_INTERNAL_HASH_TABLES | ACTIVE | INFORMATION SCHEMA | NULL                   | GPL     |
    | XTRADB_RSEG                 | ACTIVE | INFORMATION SCHEMA | NULL                   | GPL     |
    | INNODB_TRX                  | ACTIVE | INFORMATION SCHEMA | NULL                   | GPL     |
    | INNODB_LOCKS                | ACTIVE | INFORMATION SCHEMA | NULL                   | GPL     |
    | INNODB_LOCK_WAITS           | ACTIVE | INFORMATION SCHEMA | NULL                   | GPL     |
    | INNODB_CMP                  | ACTIVE | INFORMATION SCHEMA | NULL                   | GPL     |
    | INNODB_CMP_RESET            | ACTIVE | INFORMATION SCHEMA | NULL                   | GPL     |
    | INNODB_CMPMEM               | ACTIVE | INFORMATION SCHEMA | NULL                   | GPL     |
    | INNODB_CMPMEM_RESET         | ACTIVE | INFORMATION SCHEMA | NULL                   | GPL     |
    | INNODB_CMP_PER_INDEX        | ACTIVE | INFORMATION SCHEMA | NULL                   | GPL     |
    | INNODB_CMP_PER_INDEX_RESET  | ACTIVE | INFORMATION SCHEMA | NULL                   | GPL     |
    | INNODB_BUFFER_PAGE          | ACTIVE | INFORMATION SCHEMA | NULL                   | GPL     |
    | INNODB_BUFFER_PAGE_LRU      | ACTIVE | INFORMATION SCHEMA | NULL                   | GPL     |
    | INNODB_BUFFER_POOL_STATS    | ACTIVE | INFORMATION SCHEMA | NULL                   | GPL     |
    | INNODB_METRICS              | ACTIVE | INFORMATION SCHEMA | NULL                   | GPL     |
    | INNODB_FT_DEFAULT_STOPWORD  | ACTIVE | INFORMATION SCHEMA | NULL                   | GPL     |
    | INNODB_FT_DELETED           | ACTIVE | INFORMATION SCHEMA | NULL                   | GPL     |
    | INNODB_FT_BEING_DELETED     | ACTIVE | INFORMATION SCHEMA | NULL                   | GPL     |
    | INNODB_FT_CONFIG            | ACTIVE | INFORMATION SCHEMA | NULL                   | GPL     |
    | INNODB_FT_INDEX_CACHE       | ACTIVE | INFORMATION SCHEMA | NULL                   | GPL     |
    | INNODB_FT_INDEX_TABLE       | ACTIVE | INFORMATION SCHEMA | NULL                   | GPL     |
    | INNODB_SYS_TABLES           | ACTIVE | INFORMATION SCHEMA | NULL                   | GPL     |
    | INNODB_SYS_TABLESTATS       | ACTIVE | INFORMATION SCHEMA | NULL                   | GPL     |
    | INNODB_SYS_INDEXES          | ACTIVE | INFORMATION SCHEMA | NULL                   | GPL     |
    | INNODB_SYS_COLUMNS          | ACTIVE | INFORMATION SCHEMA | NULL                   | GPL     |
    | INNODB_SYS_FIELDS           | ACTIVE | INFORMATION SCHEMA | NULL                   | GPL     |
    | INNODB_SYS_FOREIGN          | ACTIVE | INFORMATION SCHEMA | NULL                   | GPL     |
    | INNODB_SYS_FOREIGN_COLS     | ACTIVE | INFORMATION SCHEMA | NULL                   | GPL     |
    | INNODB_SYS_TABLESPACES      | ACTIVE | INFORMATION SCHEMA | NULL                   | GPL     |
    | INNODB_SYS_DATAFILES        | ACTIVE | INFORMATION SCHEMA | NULL                   | GPL     |
    | INNODB_CHANGED_PAGES        | ACTIVE | INFORMATION SCHEMA | NULL                   | GPL     |
    | partition                   | ACTIVE | STORAGE ENGINE     | NULL                   | GPL     |
    | SEQUENCE                    | ACTIVE | STORAGE ENGINE     | ha_sequence.so         | GPL     |
    | CONNECT                     | ACTIVE | STORAGE ENGINE     | ha_connect.so          | GPL     |
    | QUERY_CACHE_INFO            | ACTIVE | INFORMATION SCHEMA | QUERY_CACHE_INFO.so    | BSD     |
    | QUERY_RESPONSE_TIME         | ACTIVE | INFORMATION SCHEMA | query_response_time.so | GPL     |
    | METADATA_LOCK_INFO          | ACTIVE | INFORMATION SCHEMA | metadata_lock_info.so  | GPL     |
    | QUERY_RESPONSE_TIME_AUDIT   | ACTIVE | AUDIT              | query_response_time.so | GPL     |
    | SPHINX                      | ACTIVE | STORAGE ENGINE     | ha_sphinx.so           | GPL     |
    +-----------------------------+--------+--------------------+------------------------+---------+
    50 rows in set (0.01 sec)
    

    【讨论】:

    • MariaDB 是一个二进制 MySQL 替代品。它只会比 MySQL 更好更快
    猜你喜欢
    • 2020-08-06
    • 2013-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-14
    • 2016-05-22
    相关资源
    最近更新 更多