#### 5.1.12.2 管理连接管理

[](<>)

如中所述[连接卷管理](connection-interfaces.html#connection-interfaces-volume-management), 以允许即使在以下情况下也需要执行管理操作[`最大连接数`](server-system-variables.html#sysvar_max_connections)连接已经在用于普通连接的接口上建立，MySQL 服务器允许单个管理连接到具有[`CONNECTION_ADMIN`](privileges-provided.html#priv_connection-admin)特权（或已弃用的[`极好的`](privileges-provided.html#priv_super)特权）。

此外，从 MySQL 8.0.14 开始，服务器允许将 TCP/IP 端口专用于管理连接，如以下部分所述。

-   [管理界面特征](administrative-connection-interface.html#administrative-interface-characteristics)

-   [加密连接的管理界面支持](administrative-connection-interface.html#administrative-interface-encrypted-connections)

##### 管理界面特征

管理连接接口具有以下特点：

-   服务器仅在以下情况下启用接口[`管理员地址`](server-system-variables.html#sysvar_admin_address)系统变量在启动时设置以指示它的 IP 地址。如果[`管理员地址`](server-system-variables.html#sysvar_admin_address)未设置，服务器不维护管理界面。

-   这[`管理员端口`](server-system-variables.html#sysvar_admin_port)系统变量指定接口 TCP/IP 端口号（默认 33062）。

-   管理连接的数量没有限制，但只有拥有[`SERVICE_CONNECTION_ADMIN`](privileges-provided.html#priv_service-connection-admin)特权。

-   这[`create_admin_listener_thread`](server-system-variables.html#sysvar_create_admin_listener_thread)系统变量使 DBA 在启动时可以选择管理界面是否有自己的单独线程。默认是`离开`;也就是说，主界面上普通连接的管理器线程也处理管理界面的连接。

    服务器中的这些行`我的.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 开始，管理界面有自己的加密连接配置参数。这些对应于主要接口参数，但启用管理接口的加密连接的独立配置：

-   这`admin_tls_*`xxx`*`和`admin_ssl_*`xxx`*`系统变量就像`tls_*`xxx`*`和`ssl_*`xxx`*`系统变量，但它们为管理界面而不是主界面配置 TLS 上下文。

-   这[`--admin-ssl`](server-options.html#option_mysqld_admin-ssl)选项就像[`--ssl`](server-options.html#option_mysqld_ssl)选项，但它启用或禁用对管理界面而非主界面上的加密连接的支持。

    因为默认启用了对加密连接的支持，所以通常不需要指定[`--admin-ssl`](server-options.html#option_mysqld_admin-ssl).从 MySQL 8.0.26 开始，[`--admin-ssl`](server-options.html#option_mysqld_admin-ssl)已弃用，并可能在未来的 MySQL 版本中删除。

    有关配置连接加密支持的一般信息，请参阅[第 6.3.1 节，“配置 MySQL 以使用加密连接”](using-encrypted-connections.html)， 和[第 6.3.2 节，“加密连接 TLS 协议和密码”](encrypted-connection-protocols-ciphers.html).该讨论是针对主连接接口编写的，但参数名称与管理连接接口相似。将该讨论与以下备注一起使用，这些备注提供特定于管理界面的信息。

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

-   如果[`--admin-ssl`](server-options.html#option_mysqld_admin-ssl)启用（默认），管理界面支持加密连接。对于接口上的连接，适用的 TLS 上下文取决于是否配置了任何非默认管理 TLS 参数：

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

    -   如果任何管理 TLS 参数具有非默认值，则管理接口使用由其自己的参数定义的 TLS 上下文。（如果有的话就是这种情况`admin_tls_*`xxx`*`要么`admin_ssl_*`xxx`*`系统变量设置为与其默认值不同的值。）如果无法从这些参数创建有效的 TLS 上下文，则管理接口回退到主接口 TLS 上下文。

-   如果[`--admin-ssl`](server-options.html#option_mysqld_admin-ssl)被禁用（例如，通过指定[`--admin-ssl=OFF`](server-options.html#option_mysqld_admin-ssl), 到管理界面的加密连接被禁用。即使管理 TLS 参数具有非默认值也是如此，因为禁用[`--admin-ssl`](server-options.html#option_mysqld_admin-ssl)优先。

    也可以在管理界面上禁用加密连接而无需指定[`--admin-ssl`](server-options.html#option_mysqld_admin-ssl)以否定形式。设置[`admin_tls_version`](server-system-variables.html#sysvar_admin_tls_version)系统变量为空值，表示不支持 TLS 版本。例如，服务器中的这些行`我的.cnf`文件禁用管理界面上的加密连接：

    ```
    [mysqld]
    admin_tls_version=''
    ```

    例子：

-   服务器中的这个配置`我的.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
    ```
