如
连接卷管理max_connections
中所述,即使在
用于普通连接的接口上已经建立连接
时,为了允许执行管理操作的需要,MySQL 服务器允许对具有CONNECTION_ADMIN
特权(或弃用SUPER
特权)的用户进行单一管理连接.
此外,从 MySQL 8.0.14 开始,服务器允许专用于管理连接的 TCP/IP 端口,如以下部分所述。
管理连接接口具有以下特征:
仅当
admin_address
系统变量在启动时设置为指示其 IP 地址时,服务器才启用该接口。如果admin_address
未设置,则服务器不维护任何管理界面。系统
admin_port
变量指定接口 TCP/IP 端口号(默认 33062)。管理连接的数量没有限制,但只允许有
SERVICE_CONNECTION_ADMIN
权限的用户连接。系统
create_admin_listener_thread
变量使 DBA 能够在启动时选择管理界面是否有自己的独立线程。默认是OFF
; 也就是说,主界面上普通连接的管理器线程也处理管理界面的连接。
服务器文件中的这些行my.cnf
启用环回接口上的管理接口并将其配置为使用端口号 33064(即与默认端口不同的端口):
[mysqld]
admin_address=127.0.0.1
admin_port=33064
MySQL 客户端程序通过指定适当的连接参数连接到主界面或管理界面。如果在本地主机上运行的服务器使用默认 TCP/IP 端口号 3306 和 33062 作为主界面和管理界面,则这些命令连接到这些界面:
mysql --protocol=TCP --port=3306
mysql --protocol=TCP --port=33062
在 MySQL 8.0.21 之前,管理界面使用适用于主界面的连接加密配置支持加密连接。从 MySQL 8.0.21 开始,管理界面有自己的加密连接配置参数。这些对应于主要界面参数,但可以为管理界面启用加密连接的独立配置:
和 系统变量类似于 和 系统变量, 但它们为管理界面而不是主界面配置 TLS 上下文。
admin_tls_
xxx
admin_ssl_
xxx
tls_
xxx
ssl_
xxx
该
--admin-ssl
选项与--ssl
选项类似,但它在管理界面而不是主界面上启用或禁用对加密连接的支持。因为默认启用对加密连接的支持,所以通常不需要指定
--admin-ssl
. 从 MySQL 8.0.26 开始,--admin-ssl
已弃用并在未来的 MySQL 版本中删除。
有关配置连接加密支持的一般信息,请参阅 第 6.3.1 节,“配置 MySQL 以使用加密连接”和 第 6.3.2 节,“加密连接 TLS 协议和密码”。该讨论是针对主连接接口编写的,但参数名称与管理连接接口的参数名称类似。将该讨论与以下注释结合使用,这些注释提供特定于管理界面的信息。
管理界面的 TLS 配置遵循以下规则:
如果
--admin-ssl
启用(默认),则管理界面支持加密连接。对于接口上的连接,适用的 TLS 上下文取决于是否配置了任何非默认管理 TLS 参数:如果所有管理 TLS 参数都有其默认值,则管理界面使用与主界面相同的 TLS 上下文。
如果任何管理 TLS 参数具有非默认值,则管理接口使用由其自己的参数定义的 TLS 上下文。(如果任何 或 系统变量设置为与其默认值不同的值,就会出现这种情况。)如果无法从这些参数创建有效的 TLS 上下文,则管理界面会回退到主界面 TLS 上下文。
admin_tls_
xxx
admin_ssl_
xxx
如果
--admin-ssl
被禁用(例如,通过指定--admin-ssl=OFF
,到管理界面的加密连接被禁用。即使管理 TLS 参数具有非默认值也是如此,因为禁用--admin-ssl
优先。也可以在管理界面上禁用加密连接而不用
--admin-ssl
否定形式指定。将admin_tls_version
系统变量设置为空值以指示不支持任何 TLS 版本。例如,服务器my.cnf
文件中的这些行禁用管理界面上的加密连接:[mysqld] admin_tls_version=''
例子:
服务器文件中的此配置
my.cnf
启用管理界面,但不设置任何特定于该界面的 TLS 参数:[mysqld] admin_address=127.0.0.1
因此,管理界面支持加密连接(因为启用管理界面时默认支持加密),并使用主界面 TLS 上下文。当客户端连接到管理界面时,他们应该使用与主界面上的普通连接相同的证书和密钥文件。例如(在一行中输入命令):
mysql --protocol=TCP --port=33062 --ssl-ca=ca.pem --ssl-cert=client-cert.pem --ssl-key=client-key.pem
此服务器配置启用管理界面并设置特定于该界面的 TLS 证书和密钥文件参数:
[mysqld] admin_address=127.0.0.1 admin_ssl_ca=admin-ca.pem admin_ssl_cert=admin-server-cert.pem admin_ssl_key=admin-server-key.pem
因此,管理界面支持使用自己的 TLS 上下文进行加密连接。当客户端连接到管理界面时,它们应该使用特定于该界面的证书和密钥文件。例如(在一行中输入命令):
mysql --protocol=TCP --port=33062 --ssl-ca=admin-ca.pem --ssl-cert=admin-client-cert.pem --ssl-key=admin-client-key.pem