Documentation Home
MySQL 8.3 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 40.8Mb
PDF (A4) - 40.9Mb
Man Pages (TGZ) - 294.0Kb
Man Pages (Zip) - 409.0Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb
Excerpts from this Manual

MySQL 8.3 Reference Manual  /  ...  /  Administrative Connection Management

7.1.12.2 管理连接接口

连接量管理中所述,为了允许在普通连接使用的接口上已建立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_xxxadmin_ssl_xxx 系统变量类似于 tls_xxxssl_xxx 系统变量,但它们配置的是管理界面的 TLS 上下文,而不是主界面的。

  • --admin-ssl 选项类似于 --ssl 选项,但它启用或禁用的是管理界面上的加密连接支持,而不是主界面的。

    由于默认情况下启用了对加密连接的支持,因此通常无需指定 --admin-ssl,该选项已被弃用,并将在未来版本的 MySQL 中删除。

有关配置连接加密支持的一般信息,请参阅 第 8.3.1 节,“配置 MySQL 使用加密连接”,以及 第 8.3.2 节,“加密连接 TLS 协议和密码”。 该讨论是针对主连接界面编写的,但管理连接界面的参数名称类似。 将该讨论与以下备注一起使用,这些备注提供了特定于管理界面的信息。

管理界面的 TLS 配置遵循以下规则:

  • 如果启用了 --admin-ssl(默认设置),则管理界面支持加密连接。 对于界面上的连接,适用的 TLS 上下文取决于是否配置了任何非默认的管理 TLS 参数:

    • 如果所有管理 TLS 参数都具有其默认值,则管理界面使用与主界面相同的 TLS 上下文。

    • 如果任何管理 TLS 参数具有非默认值,则管理界面使用由其自身参数定义的 TLS 上下文。 (如果任何 admin_tls_xxxadmin_ssl_xxx 系统变量设置为与其默认值不同的值,则会出现这种情况。)如果无法从这些参数创建有效的 TLS 上下文,则管理界面将回退到主界面 TLS 上下文。

  • 如果 --admin-ssl 被禁用(例如,通过指定 --admin-ssl=OFF),则到管理接口的加密连接将被禁用。即使管理 TLS 参数具有非默认值,也是如此,因为禁用 --admin-ssl 优先。

    也可以在不指定 --admin-ssl 的否定形式的情况下禁用管理接口上的加密连接。将 admin_tls_version 系统变量设置为 empty 值,以指示不支持任何 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