When a connection disabled SSL Mode using ssl_disabled=True (or with ssl-mode='DISABLED' for X Protocol connections), specifying other TLS/SSL connection options caused Connector/Python to throw an error. With this change, disabling SSL now means those additional TLS/SSL connection options are ignored. For example, defining tls_version with ssl_disabled=True raised an error in previous versions of Connector/Python.
Connector/Python's c-extension implementation now supports FIDO Pluggable Authentication, and adds a new
Protobuf used in the c-extension implementation was updated to version 3.19.4.
Removed Python 3.6 support.
On EL7, EL8, and SUSE: A
python3-protobufRPM package is not available for Python 3.8 on these platforms, so the dependency was removed from the RPM specification; instead it must be manually installed with the likes of
pip install protobuf.
Expanded Kerberos Authentication Protocol support to include Windows clients using the pure Python Connector/Python implementation.
Django support now allows a custom class for data type conversion in the Django backend, typically used to convert non-default data types. Implement as a subclass of mysql.connector.django.base.DjangoMySQLConverter.
Upon connecting to the server, Connector/Python executed a number of SHOW [SESSION] VARIABLES statements to retrieve system variable values. Such statements involve locking in the server, so they are now avoided in favor of SELECT @@var_name statements. (Bug #33861549)
For the c-ext implementation, using an expression as a column without an alias would raise a UnicodeDecodeError error. (Bug #33747585)
Now recognize the deprecated 'utf8mb3' character set because the 'utf8' alias shows 'utf8mb3' in the Information Schema and with SHOW statements as of MySQL 8.0.28. For additional information, see The utf8 Character Set (Alias for utf8mb3). (Bug #33729842)
With consume_results=True, the C extension implementation threw an error with some methods such as cmd_refresh(), reset_session() and commit() if there were pending results to fetch. Now, unread results are handled and consumed. (Bug #21528553)
When connecting to MySQL Server versions below 5.7.35, servers failed to execute change_user commands due to the default collation used by Connector/Python; a problem that affected connection pooling functionality by raising an exception when closing a pooled connection. Now Connector/Python reconnects instead of emitting the exception. (Bug #104569, Bug #33203161)
On Windows, and with the C extension with prepared=True, BIGINT data was seen as MYSQL_TYPE_LONG instead of MYSQL_TYPE_LONGLONG; this raised an overflow error with values over 2147483647. (Bug #96588, Bug #105254, Bug #30203754, Bug #33481203)
If decoding a bytearray fails, now the raw bytes or bytearray is returned instead of raising a UnicodeDecodeError error. Thanks to Meik Milevczik for the patch. (Bug #93065, Bug #28877987)
Added support for Decimal parsing. Thanks to Luke Weber for the patch. (Bug #81571, Bug #23338623)
Added a context manager to open files in the optionfiles module to be closed correctly. Thanks to Vilnis Termanis for the patch. (Bug #81519, Bug #23324748)
Attempts to insert Python
ByteArraydata into binary table columns failed when using the c-extension implementation of Connector/Python. (Bug #77822, Bug #21498719)
Added support for NaN in the float to MySQL conversion; it's now set to None. (Bug #74934, Bug #20065830)