Таблица Performance Schema session_connect_attrs
Описание
session_connect_attrs — это таблица Performance Schema, которая отображает атрибуты соединения для всех сессий. Для заполнения таблицы необходимо включить Performance Schema.
При установлении соединения приложения могут передавать серверу атрибуты соединения в формате ключ/значение. Таблицы session_connect_attrs и session_account_connect_attrs предоставляют доступ к этой информации, соответственно, для всех сессий и текущей сессии.
Для передачи атрибутов соединения серверу используются функции C API mysql_options() и mysql_optionsv().
session_connect_attrs содержит следующие столбцы:
| Столбец | Описание |
|---|---|
PROCESSLIST_ID |
Идентификатор соединения сессии. |
ATTR_NAME |
Имя атрибута. |
ATTR_VALUE |
Значение атрибута. |
ORDINAL_POSITION |
Порядок добавления атрибута к атрибутам соединения. |
Пример
Возвращение атрибутов текущего соединения:
SELECT * FROM performance_schema.session_connect_attrs WHERE processlist_id=CONNECTION_ID(); +----------------+-----------------+------------------+------------------+ | PROCESSLIST_ID | ATTR_NAME | ATTR_VALUE | ORDINAL_POSITION | +----------------+-----------------+------------------+------------------+ | 45 | _os | debian-linux-gnu | 0 | | 45 | _client_name | libmysql | 1 | | 45 | _pid | 7711 | 2 | | 45 | _client_version | 10.0.5 | 3 | | 45 | _platform | x86_64 | 4 | | 45 | program_name | mysql | 5 | +----------------+-----------------+------------------+------------------+
Использование других коннекторов
JDBC
Значения атрибутов соединения устанавливаются с помощью параметра connectionAttributes.
Пример использования строки подключения jdbc:mariadb://localhost/?connectionAttributes=test:test1,test2:test2Val,test3
SELECT * FROM performance_schema.session_connect_attrs WHERE processlist_id=17; +----------------+-----------------+---------------------+------------------+ | PROCESSLIST_ID | ATTR_NAME | ATTR_VALUE | ORDINAL_POSITION | +----------------+-----------------+---------------------+------------------+ | 17 | _client_name | MariaDB Connector/J | 0 | | 17 | _client_version | 3.1.3 | 1 | | 17 | _server_host | localhost | 2 | | 17 | _os | Windows 11 | 3 | | 17 | _thread | 1 | 4 | | 17 | _java_vendor | Oracle Corporation | 5 | | 17 | _java_version | 19.0.2 | 6 | | 17 | test | test1 | 7 | | 17 | test2 | test2Val | 8 | | 17 | test3 | NULL | 9 | +----------------+-----------------+---------------------+------------------+
Node.js
Значения атрибутов соединения устанавливаются с помощью параметра connectAttributes
Пример использования строки подключения
const conn = await mariadb.createConnection({
host: 'localhost',
user: 'root',
connectAttributes: { test: 'test1', test2: 'test2Val', test3: 'f' }
});
SELECT * FROM performance_schema.session_connect_attrs WHERE processlist_id=30; +----------------+-----------------+------------------------+------------------+ | PROCESSLIST_ID | ATTR_NAME | ATTR_VALUE | ORDINAL_POSITION | +----------------+-----------------+------------------------+------------------+ | 30 | _client_name | MariaDB connector/Node | 0 | | 30 | _client_version | 3.1.1 | 1 | | 30 | _server_host | ::1 | 2 | | 30 | _os | win32 | 3 | | 30 | _client_host | NOSTROMO | 4 | | 30 | _node_version | 18.15.0 | 5 | | 30 | test | test1 | 6 | | 30 | test2 | test2Val | 7 | | 30 | test3 | f | 8 | +----------------+-----------------+------------------------+------------------+
R2DBC
Значения атрибутов соединения устанавливаются с помощью параметра connectionAttributes.
Пример использования строки подключения jdbc:mariadb://localhost/?connectionAttributes=test:test1,test2:test2Val,test3
TreeMap<String, String> connectionAttributes = new TreeMap<>();
connectionAttributes.put("entry1", "val1");
connectionAttributes.put("entry2", "val2");
MariadbConnectionConfiguration conf = MariadbConnectionConfiguration.builder()
.host("localhost")
.port(3306)
.username("root")
.connectionAttributes(connectionAttributes)
.database("test")
.build();
MariadbConnectionFactory connFactory = new MariadbConnectionFactory(conf);
MariadbConnection connection = connFactory.create().block();
SELECT * FROM performance_schema.session_connect_attrs WHERE processlist_id=34; +----------------+-----------------+--------------------+------------------+ | PROCESSLIST_ID | ATTR_NAME | ATTR_VALUE | ORDINAL_POSITION | +----------------+-----------------+--------------------+------------------+ | 34 | _client_name | mariadb | 0 | | 34 | _client_version | 1.1.4 | 1 | | 34 | _server_host | localhost | 2 | | 34 | _os | Windows 11 | 3 | | 34 | _thread | 49 | 4 | | 34 | _java_vendor | Oracle Corporation | 5 | | 34 | _java_version | 19.0.2 | 6 | | 34 | entry1 | val1 | 7 | | 34 | entry2 | val2 | 8 | +----------------+-----------------+--------------------+------------------+
© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/performance-schema-session_connect_attrs-table/