29.12.9 Таблицы атрибутов подключения Performance Schema
Атрибуты подключения — это пары ключ-значение, которые программы приложений могут передавать серверу во время подключения. Для приложений, основанных на C API, реализованном библиотекой клиента libmysqlclient, функции и определяют набор атрибутов подключения. Другие MySQL Connector могут предоставлять свои собственные методы определения атрибутов.
Эти таблицы Performance Schema отображают информацию об атрибутах:
session_account_connect_attrs: Атрибуты подключения для текущей сессии и других сессий, связанных с учетной записью сессии.session_connect_attrs: Атрибуты подключения для всех сессий.
Кроме того, события подключения, записанные в журнал аудита, могут содержать атрибуты подключения. См. Раздел 8.4.5.4, «Форматы файлов журнала аудита».
Имена атрибутов, начинающиеся с подчеркивания (_), зарезервированы для внутреннего использования и не должны создаваться программами приложений. Эта конвенция позволяет вводить новые атрибуты в MySQL без конфликтов с атрибутами приложений и позволяет программам приложений определять собственные атрибуты, которые не конфликтуют с внутренними атрибутами.
Доступные атрибуты подключения
Набор атрибутов подключения, видимых в рамках данного подключения, зависит от таких факторов, как платформа, MySQL Connector, используемый для установления подключения, или программа-клиент.
Библиотека клиента libmysqlclient устанавливает эти атрибуты:
_client_name: Имя клиента (libmysqlдля библиотеки клиента)._client_version: Версия библиотеки клиента._os: Операционная система (например,Linux,Win64)._pid: Идентификатор процесса клиента._platform: Платформа машины (например,x86_64)._thread: Идентификатор потока клиента (только Windows).
Другие MySQL Connector могут определять свои собственные атрибуты подключения.
MySQL Connector/C++ определяет эти атрибуты для приложений, использующих X DevAPI или X DevAPI для C:
_client_license: Лицензия коннектора (например,GPL-2.0)._client_name: Имя коннектора (mysql-connector-cpp)._client_version: Версия коннектора._os: Операционная система (например,Linux,Win64)._pid: Идентификатор процесса клиента._platform: Платформа машины (например,x86_64)._source_host: Имя хоста машины, на которой работает клиент._thread: Идентификатор потока клиента (только Windows).
MySQL Connector/J определяет эти атрибуты:
_client_name: Имя клиента_client_version: Версия библиотеки клиента_os: Операционная система (например,Linux,Win64)_client_license: Тип лицензии коннектора_platform: Платформа машины (например,x86_64)_runtime_vendor: Поставщик среды выполнения Java (JRE)_runtime_version: Версия среды выполнения Java (JRE)
MySQL Connector/NET определяет эти атрибуты:
_client_version: Версия библиотеки клиента._os: Операционная система (например,Linux,Win64)._pid: Идентификатор процесса клиента._platform: Платформа машины (например,x86_64)._program_name: Имя клиента._thread: Идентификатор потока клиента (только Windows).
Реализация Connector/Python определяет эти атрибуты; некоторые значения и атрибуты зависят от реализации Connector/Python (чистый Python или c-ext):
_client_license: Тип лицензии коннектора;GPL-2.0илиCommercial. (только чистый Python)_client_name: Установлено вmysql-connector-python(чистый Python) илиlibmysql(c-ext)_client_version: Версия коннектора (чистый Python) или версия библиотеки mysqlclient (c-ext)._os: Операционная система с коннектором (например,Linux,Win64)._pid: Идентификатор процесса на исходной машине (например,26955)_platform: Платформа машины (например,x86_64)._source_host: Имя хоста машины, с которой подключается коннектор._connector_version: Версия коннектора (например,8.4.4) (только c-ext)._connector_license: Тип лицензии коннектора;GPL-2.0илиCommercial(только c-ext)._connector_name: Всегда установлено вmysql-connector-python(только c-ext).
PHP определяет атрибуты, которые зависят от того, как он был скомпилирован:
Скомпилировано с использованием
libmysqlclient: Стандартные атрибутыlibmysqlclient, описанные ранее.Скомпилировано с использованием
mysqlnd: Только атрибут_client_nameсо значениемmysqlnd.
Многие программы клиентов MySQL устанавливают атрибут program_name со значением, равным имени клиента. Например, mysqladmin и mysqldump устанавливают program_name соответственно в mysqladmin и mysqldump. MySQL Shell устанавливает program_name в mysqlsh.
Некоторые программы клиентов MySQL определяют дополнительные атрибуты:
-
os_user: Имя пользователя операционной системы, выполняющего программу. Доступно в Unix и Unix-подобных системах, а также в Windows.-
os_sudouser: Значение переменной средыSUDO_USER. Доступно в Unix и Unix-подобных системах.
Атрибуты подключения mysql со значением в пустое не отправляются.
-
_client_role:binary_log_listener
-
Подключения реплики:
program_name:mysqld_client_role:binary_log_listener_client_replication_channel_name: Имя канала.
-
Подключения к хранилищу
FEDERATED:program_name:mysqld_client_role:federated_storage
Пределы атрибутов подключения
Существуют ограничения на объем данных атрибутов подключения, передаваемых от клиента к серверу:
Фиксированный лимит, установленный клиентом до момента подключения.
Фиксированный лимит, установленный сервером в момент подключения.
Настраиваемый лимит, установленный Performance Schema в момент подключения.
Для подключений, инициированных с помощью C API, библиотека libmysqlclient накладывает ограничение в 64 КБ на совокупный размер данных атрибутов подключения на стороне клиента: вызовы, которые приводят к превышению этого лимита, вызывают ошибку. Другие MySQL Connectors могут накладывать свои собственные ограничения на стороне клиента на то, сколько данных атрибутов подключения можно передать на сервер.
На стороне сервера происходят проверки размера данных атрибутов подключения:
Сервер устанавливает лимит в 64 КБ на совокупный размер данных атрибутов подключения, которые он принимает. Если клиент пытается отправить более 64 КБ данных атрибутов, сервер отклоняет подключение. В противном случае сервер считает буфер атрибутов допустимым и отслеживает размер самого большого такого буфера в статусной переменной
Performance_schema_session_connect_attrs_longest_seen.-
Для принятых подключений Performance Schema проверяет совокупный размер атрибутов по отношению к значению системной переменной
performance_schema_session_connect_attrs_size. Если размер атрибутов превышает это значение, выполняются следующие действия:Performance Schema обрезает данные атрибутов и увеличивает статусную переменную
Performance_schema_session_connect_attrs_lost, которая указывает количество подключений, для которых произошла обрезка атрибутов.-
Performance Schema записывает сообщение в журнал ошибок, если системная переменная
log_error_verbosityбольше 1:Connection attributes of length
Nwere truncated (Nbytes lost) for connectionN, useruser_name@host_name(asuser_name), auth: {yes|no}Информация в сообщении об ошибке предназначена для того, чтобы помочь администраторам баз данных определить клиентов, для которых произошла обрезка атрибутов.
Атрибут
_truncatedдобавляется в атрибуты сессии со значением, указывающим, сколько байтов было потеряно, если буфер атрибутов имеет достаточно места. Это позволяет Performance Schema предоставлять информацию об обрезке по каждому подключению в таблицах атрибутов подключения. Эту информацию можно проверить, не заглядывая в журнал ошибок.
© 2025 Oracle
Licensed under the GPLv2 License.