25.12.9 性能架构连接属性 table

连接属性是键值对,应用程序可以在连接时将它们传递给服务器。对于基于libmysqlclientClient 端库实现的 C API 的应用程序,mysql_options()mysql_options4()函数定义连接属性集。其他 MySQL 连接器可以提供自己的属性定义方法。

这些性能模式 table 公开了属性信息:

以下划线(_)开头的属性名称仅供内部使用,不应由应用程序创建。该约定允许 MySQL 引入新属性而不会与应用程序属性发生冲突,并使应用程序能够定义自己的与内部属性不发生冲突的属性。

可用的连接属性

给定 Connecting 可见的连接属性集取决于各种因素,例如您的平台,用于构建连接的 MySQL Connector 或 Client 端程序。

libmysqlclientClient 端库设置以下属性:

  • _client_name:Client 端名称(Client 端库为libmysql)。

  • _client_version:Client 端库版本。

  • _os:os(例如LinuxWin64)。

  • _pid:Client 端进程 ID。

  • _platform:机器平台(例如x86_64)。

  • _thread:Client 端线程 ID(仅 Windows)。

其他 MySQL 连接器可以定义自己的连接属性。

MySQL Connector/J 定义了以下属性:

  • _client_license:连接器许可证类型。

  • _runtime_vendor:Java 运行时环境(JRE)供应商。

  • _runtime_version:Java 运行时环境(JRE)版本。

MySQL Connector/NET 定义了以下属性:

  • _client_version:Client 端库版本。

  • _os:os(例如LinuxWin64)。

  • _pid:Client 端进程 ID。

  • _platform:机器平台(例如x86_64)。

  • _program_name:Client 名称。

  • _thread:Client 端线程 ID(仅 Windows)。

PHP 定义了取决于其编译方式的属性:

  • 使用libmysqlclient编译:标准libmysqlclient属性,如前所述。

  • 使用mysqlnd编译:仅_client_name属性,值为mysqlnd

许多 MySQLClient 端程序将program_name属性设置为等于 Client 端名称的值。例如,mysqladminmysqldump分别将program_name设置为mysqladminmysqldump

一些 MySQLClient 端程序定义了其他属性:

  • mysqlbinlog:

  • _client_role : binary_log_listener

  • Replica connections:

  • program_name : mysqld

    • _client_role : binary_log_listener

    • _client_replication_channel_name:Channels 名称。

  • FEDERATED存储引擎连接:

  • program_name : mysqld

    • _client_role : federated_storage

连接属性限制

从 Client 端传输到服务器的连接属性数据的数量受到限制:

  • Client 端在连接时间之前施加的固定限制。

  • 服务器在连接时施加的固定限制。

  • 性能模式在连接时施加的可配置限制。

对于使用 C API 启动的连接,libmysqlclient库在 Client 端的连接属性数据的总大小上施加了 64KB 的限制:导致超出此限制的mysql_options()调用将产生CR_INVALID_PARAMETER_NO错误。其他 MySQL 连接器可能会对可以将多少连接属性数据传输到服务器施加自己的 Client 端限制。

在服务器端,将对连接属性数据进行以下大小检查:

  • 服务器将接受的连接属性数据的总大小限制为 64KB。如果 Client 端尝试发送超过 64KB 的属性数据,则服务器将拒绝连接。

  • 对于可接受的连接,性能架构将根据performance_schema_session_connect_attrs_size系统变量的值检查聚合属性的大小。如果属性大小超过此值,则会发生以下操作:

  • 性能架构将截断属性数据并增加Performance_schema_session_connect_attrs_lost状态变量,该变量 table 示发生属性截断的连接数。

    • 如果log_error_verbosity系统变量大于 1,则性能架构会将消息写入错误日志。
[Warning] Connection attributes of length N were truncated