Documentation Home
MySQL 8.4 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 39.8Mb
PDF (A4) - 39.9Mb
Man Pages (TGZ) - 257.9Kb
Man Pages (Zip) - 364.9Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


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

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_xxxadmin_ssl_xxx类似于tls_xxxssl_xxx系统变量,但它们配置的是管理界面的TLS上下文,而不是主要界面。

关于配置连接加密支持的总体信息,请参阅第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