Documentation Home

5.1.12.2 行政连接管理

连接卷管理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_xxxadmin_ssl_xxxtls_xxxssl_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_xxxadmin_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