7.1.12.2 管理连接管理
如Connection Volume Management所述,为满足在普通连接接口上已经建立了max_connections
连接时,仍然需要执行管理操作的需求,MySQL 服务器允许具有CONNECTION_ADMIN
特权(或弃用的SUPER
特权)的用户在用于普通连接的接口上建立单个管理连接。
服务器还允许将 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
管理界面有自己的加密连接配置参数,这些参数对应于主要界面的参数,但允许独立地配置管理界面的加密连接:
系统变量admin_tls_
和xxx
admin_ssl_
类似于xxx
tls_
和xxx
ssl_
系统变量,但它们配置的是管理界面的TLS上下文,而不是主要界面。xxx
关于配置连接加密支持的总体信息,请参阅第8.3.1节“使用加密连接配置MySQL”和第8.3.2节“加密连接TLS协议和加密方式”。这些讨论是写给主要连接界面的,但参数名称在管理连接界面中也类似。请将这些讨论结合起来,以获取关于管理界面的信息。
管理界面的TLS配置遵循以下规则:
-
管理界面支持加密连接。在接口上,适用的TLS上下文取决于是否配置了非默认的管理TLS参数:
-
如果所有的管理TLS参数都使用默认值,那么管理界面将使用与主界面的相同TLS上下文。
-
如果任何管理TLS参数具有非默认值,那么管理界面将使用其自己的TLS上下文定义。如果无法从这些参数创建有效的TLS上下文,那么管理界面将回退到主界面的TLS上下文。
-
-
可以通过设置
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