Documentation Home
MySQL Connector/Python Release Notes
Related Documentation Download these Release Notes
PDF (US Ltr) - 327.1Kb
PDF (A4) - 328.2Kb

MySQL Connector/Python Release Notes  /  Changes in MySQL Connector/Python 8.x  /  Changes in MySQL Connector/Python 8.0.30 (2022-07-26, General Availability)

Changes in MySQL Connector/Python 8.0.30 (2022-07-26, General Availability)

Functionality Added or Changed

  • Added support for OpenSSL 3.0. (WL #14815)

  • Added or renamed collations to align with MySQL Server 8.0.30. This includes adding support for language-specific utf8mb4 collations and renaming all existing utf8_ collations to utf8mb3_. In addition, utf8 is now an alias for utf8mb4. Support for MySQL 5.7 collations is preserved for connections to a MySQL 5.7 server. (WL #15212)

  • Implemented an authentication mechanism to instantiate only required authentication plugins according to the authentication handshake performed with MySQL Server. Previously, all available authentication plugins (and their associated third-party modules) were loaded upon initialization. (WL #14822)

  • Improved PEP 7 and PEP 8 style guideline enforcement by adding Black and Isort tooling for PEP 8, and clang-format for PEP 7. The integration includes git pre-commit hooks.

    In addition, Pylint was also tested and integrated with a git pre-commit hook. (WL #15035, WL #15137)

  • Removed support for the bdist_deb, bdist_macos, and bdist_rpm build targets from Instead, use the packages built by Oracle Release Engineering. (WL #15176)

Bugs Fixed

  • Empty strings ("") in the collection fields used in methods like set() that are chained with modify()are no longer allowed; now only the dollar sign ($) is allowed when trying to replace the entire document. (Bug #34260344)

  • The required version of protobuf is now 3.11.0 through 3.20.1, inclusive, due to a breaking change introduced in Python protobuf 4.21.0. (Bug #34231226)

  • C extension and pure Python cursor types are not interchangeable when using connection objects that are not of the same type; now we check for supported cursor classes and raise a ProgrammingError if the cursor is not of a compatible type. (Bug #34223015)

  • The C Extension did not function with the NO_BACKSLASH_ESCAPES SQL mode enabled. We fix this by calling the mysql_real_escape_string_quote() C API function instead of mysql_real_escape_string_quote(). Prior to upgrading to this release, you can work around this problem by using the pure Python implementation instead (use_pure=True). (Bug #107434, Bug #34228442)

  • For Django, allow setting the connection isolation level with an isolation_level OPTIONS entry in the Django DATABASES configuration. (Bug #107174, Bug #34127959)

  • The connect() method's failover argument now accepts a tuple, as was documented, when previously it accepted only a list of dictionaries.

    Thanks to Ville Skyttä for the patch. (Bug #106632, Bug #33923516)

  • For Django, added the missing DatabaseIntrospection _parse_constraint_columns() method. (Bug #105993, Bug #33827760)

  • Fixed potential rounding errors when using arithmetic expressions with decimal data types; decimal values are no longer quoted. (Bug #92790, Bug #28821983)

  • Disabled SSL usage with Unix socket connections. (Bug #91552, Bug #92260, Bug #28295504, Bug #28880051)