Handling Connection Attributes (mysqlx.get_session()
)ΒΆ
The MySQL server stores operational details for all and each client that is connected, such attributes are called connection attributes. Some connection attributes are defined by X DevAPI itself, these can be observed in the following example.
import mysqlx
# Connect to server on localhost
session = mysqlx.get_session({
'host': 'localhost',
'port': 33060,
'user': 'mike',
'password': 's3cr3t!'
})
On the server the connection attributes may look like the following:
mysql> SELECT ATTR_NAME, ATTR_VALUE FROM performance_schema.session_account_connect_attrs;
+-----------------+-------------------------+
| ATTR_NAME | ATTR_VALUE |
+-----------------+-------------------------+
| _pid | 16988 |
| program_name | mysql |
| _client_name | mysqlx-connector-python |
| _thread | 17588 |
| _client_version | 8.0.15 |
| _client_license | GPL-2.0 |
| _os | Win64 |
| _platform | x86_64 |
+-----------------+-------------------------+
The other kind of connection attributes are user specified, these can be specified by the key connection-attributes
or in the form of URL attribute while getting the connection for example:
import mysqlx
mysqlx.getSession('mysqlx://mike@localhost:33060/schema?connection-attributes=[my_attribute=some_value,foo=bar]')
On the server the connection attributes may look like the following:
mysql> SELECT ATTR_NAME, ATTR_VALUE FROM performance_schema.session_account_connect_attrs;
+-----------------+-------------------------+
| ATTR_NAME | ATTR_VALUE |
+-----------------+-------------------------+
| _pid | 16988 |
| program_name | mysql |
| _client_name | mysqlx-connector-python |
| _thread | 17588 |
| _client_version | 8.0.15 |
| _client_license | GPL-2.0 |
| _os | Win64 |
| _platform | x86_64 |
| foo | bar |
| my_attribute | some_value |
+-----------------+-------------------------+
Note
connection attributes defined by the user can not start with the underscore ( _ ) character.