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


MySQL Connector/Python Release Notes  /  Changes in MySQL Connector/Python 8.0  /  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 OpenSSL 3.0 support.

  • Added or renamed collations as per MySQL Server 8.0.30. This includes adding support for the new language-specific utf8mb4 collations and renaming all existing utf8_* collations to utf8mb3_*. This also makes utf8 an alias to utf8mb4. Support for MySQL 5.7 collations were preserved for connections to a MySQL 5.7 server.

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

  • 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.

  • Removed support for the "bdist_deb", "bdist_macos", and "bdist_rpm" build targets from setup.py. Instead, use packages built by the Release Engineering team.

Bugs Fixed

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

  • Updated the protobuf version requirement to version >= 3.11.0, <=3.20.1 due to a breaking change introduced in Python protobuf 4.21.0. (Bug #34231226)

  • Now check for supported cursor classes and raise a ProgrammingError if it's not compatible cursor type; as c-ext and pure Python cursor types are not interchangeable when using connection objects that aren't of the same type. (Bug #34223015)

  • The C Extension implementation did not function with the NO_BACKSLASH_ESCAPES SQL mode enabled. The fix is to internally call the mysql_real_escape_string_quote() C API function instead of mysql_real_escape_string_quote(). The workaround was to use the pure Python implementation (use_pure=True). (Bug #107434, Bug #34228442)

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

  • The connect()'s failover argument now accepts a tuple, as was documented, when previously it only accepted 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)