Dear MySQL users,
MySQL Connector/Python 8.0.23 is the latest GA release version of the MySQL Connector Python 8.0 series. The X DevAPI enables application developers to write code that combines the strengths of the relational and document models using a modern, NoSQL-like syntax that does not assume previous experience writing traditional SQL.
To learn more about how to write applications using the X DevAPI, see
For more information about how the X DevAPI is implemented in MySQL Connector/Python, and its usage, see
Please note that the X DevAPI requires at least MySQL Server version 8.0 or higher with the X Plugin enabled. For general documentation about how
To download MySQL Connector/Python 8.0.23, see the “General Availability (GA) Releases” tab at
Changes in MySQL Connector/Python 8.0.23 (2021-01-18, General Availability)
Functionality Added or Changed
- Deprecated Python 2.7 support; a warning was added to describe Python 2.7 support being removed in Connector/Python 8.0.24.
Previously, Connector/Python added client support for the MySQL Enterprise Edition SASL LDAP authentication plugin with SCRAM-SHA-1 as an authentication method. Connector/Python now also supports SCRAM-SHA-256 as an alternative authentication method for classic MySQL protocol connections. SASL-based LDAP authentication does not apply to clients running macOS.
- Added SASL authentication protocol support using the GSSAPI (Kerberos) authentication method for the pure python implementation (this is not available for the c-ext version of Connector/Python).
This functionality requires the GSSAPI pypi module, which provides both low-level and high-level wrappers around the GSSAPI C libraries. The GSSAPI pypi module requires MIT kerberos installed opn the system to function and request tickets to authenticate Connector/Python with the MySQL server when the user is IDENTIFIED WITH authentication_ldap_sasl and the authentication_ldap_sasl plugin is configured to use the GSSAPI mechanism.
This also adds a new krb_service_principal option, which must be a string in the form “primary/instance@realm” such as “ldap/ldapauth@MYSQL.COM” where “@realm” is optional. The “@realm” defaults to the default realm, as configured in the krb5.conf file.
- Fixed the AttributeError raised when getting the connection ID from a closed CMySQLConnection. (Bug #31882419, Bug #100825)
- Fixed support for named tuple (an invalid exception was generated) and dictionary cursors (incorrect type of result was returned). (Bug #29195610)
- Fixed cursor.fetchone() and cursor.fetchmany() to comply with PEP 249, which specifies that an exception must be raised if the previous call to cursor.execute*() does not produce any result set or no call was issued yet. (Bug #26834307, Bug #87815)
- Fixed the microsecond conversion from MySQL datetime to Python datetime when using fractional values with the C extension enabled. For example, 2016-10-20 15:40:23.8 from MySQL resulted in datetime.datetime(2016, 10, 20, 15, 40, 23, 8) instead of datetime.datetime(2016, 10, 20, 15, 40, 23, 800000). Thanks to Vilnis Termanis for the patch. (Bug #24938411, Bug #83479)