本节介绍如何安装MySQL Enterprise Thread Pool。有关安装插件的一般信息,请参见 第5.6.1节“安装和卸载插件”。
要由服务器使用,插件库文件必须位于MySQL插件目录(由plugin_dir系统变量命名的目录)中。如有必要,通过设置plugin_dir服务器启动时的值来配置插件目录位置 。
高版本中,线程池监视表是性能模式表,与线程池插件一起加载和卸载。这些INFORMATION_SCHEMA表的 版本已弃用,但仍然可用;按照MySQL 8.0.14之前的线程池安装中的说明 安装它们。
要启用线程池功能,请通过使用--plugin-load-add选项启动服务器来加载插件 。为此,请将这些行放在服务器 my.cnf文件中,并.so根据需要调整平台的 后缀:
[mysqld]
plugin-load-add=thread_pool.so
要验证插件安装,请检查 INFORMATION_SCHEMA.PLUGINS表或使用以下SHOW PLUGINS 语句(请参见 第5.6.2节“获取服务器插件信息”)。例如:
mysql> SELECT PLUGIN_NAME, PLUGIN_STATUS
FROM INFORMATION_SCHEMA.PLUGINS
WHERE PLUGIN_NAME LIKE 'thread%';
+-----------------------+---------------+
| PLUGIN_NAME | PLUGIN_STATUS |
+-----------------------+---------------+
| thread_pool | ACTIVE |
+-----------------------+---------------+
要验证性能模式监视表是否可用,请检查该 INFORMATION_SCHEMA.TABLES表或使用该SHOW TABLES 语句。例如:
mysql> SELECT TABLE_NAME
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'performance_schema'
AND TABLE_NAME LIKE 'tp%';
+-----------------------+
| TABLE_NAME |
+-----------------------+
| tp_thread_group_state |
| tp_thread_group_stats |
| tp_thread_state |
+-----------------------+
如果服务器成功加载线程池插件,则会将thread_handling系统变量设置为 loaded-dynamically。
如果插件未能初始化,请检查服务器错误日志以获取诊断消息。
MySQL 8.0.14之前的线程池安装
在MySQL 8.0.14之前,线程池监视表是与线程池插件分开的插件,可以单独安装。
要启用线程池功能,请通过使用--plugin-load-add选项启动服务器来加载要使用的插件 。例如,如果仅命名插件库文件,则服务器将加载它包含的所有插件(即线程池插件和所有INFORMATION_SCHEMA 表)。为此,请将这些行放在服务器 my.cnf文件中,并.so根据需要调整平台的 后缀:
[mysqld]
plugin-load-add=thread_pool.so
这相当于通过单独命名所有线程池插件来加载它们:
[mysqld]
plugin-load-add=thread_pool=thread_pool.so
plugin-load-add=tp_thread_state=thread_pool.so
plugin-load-add=tp_thread_group_state=thread_pool.so
plugin-load-add=tp_thread_group_stats=thread_pool.so
如果需要,您可以从库文件中加载单个插件。要加载线程池插件而不加载 INFORMATION_SCHEMA表,请使用如下选项:
[mysqld]
plugin-load-add=thread_pool=thread_pool.so
要加载线程池插件和仅加载 表,请使用以下选项: TP_THREAD_STATE INFORMATION_SCHEMA
[mysqld]
plugin-load-add=thread_pool=thread_pool.so
plugin-load-add=tp_thread_state=thread_pool.so
要验证插件安装,请检查 INFORMATION_SCHEMA.PLUGINS表或使用以下SHOW PLUGINS 语句(请参见 第5.6.2节“获取服务器插件信息”)。例如:
mysql> SELECT PLUGIN_NAME, PLUGIN_STATUS
FROM INFORMATION_SCHEMA.PLUGINS
WHERE PLUGIN_NAME LIKE 'thread%' OR PLUGIN_NAME LIKE 'tp%';
+-----------------------+---------------+
| PLUGIN_NAME | PLUGIN_STATUS |
+-----------------------+---------------+
| thread_pool | ACTIVE |
| TP_THREAD_STATE | ACTIVE |
| TP_THREAD_GROUP_STATE | ACTIVE |
| TP_THREAD_GROUP_STATS | ACTIVE |
+-----------------------+---------------+
如果服务器成功加载线程池插件,则会将thread_handling系统变量设置为 loaded-dynamically。
如果插件未能初始化,请检查服务器错误日志以获取诊断消息。




