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.22 (2020-10-19, General Availability)

Changes in MySQL Connector/Python 8.0.22 (2020-10-19, General Availability)

Functionality Added or Changed

  • Added Django 3.0 support while preserving compatibility with Django 2.2. Removed support for Django 1.11 with Python 2.7. (Bug #91699, Bug #99069, Bug #28367300, Bug #30835272, WL #13380)

  • Refactored the Connector/Python build system by removing artifacts of old implementations, improved debugging, and now statically link the C extensions. This also exposes the distutils commands, to allow the end-user build packages. (Bug #79766, Bug #81203, Bug #81242, Bug #87493, Bug #99923, Bug #23194976, Bug #23208553, Bug #26660893, Bug #31529348, WL #13997)

  • Previously, the client-side mysql_clear_password authentication plugin was not supported. Now, it is permitted to send passwords without hashing or encryption by using mysql_clear_password on the client side together with any server-side plugin that needs a clear text password, such as for LDAP pluggable authentication. Connector/Python returns an exception if the mysql_clear_password plugin is requested but the connection is neither encrypted nor using Unix domain sockets. For usage information, see Client-Side Cleartext Pluggable Authentication. (WL #13994)

  • Connections made using the MySQL Enterprise Edition SASL LDAP authentication plugin now are supported on Windows and Linux, but not on macOS. Connector/Python implements the SCRAM-SHA-1 authentication method of the SASL authentication protocol. (WL #14110)

  • The new compression-algorithms connection option sets the order by which supported algorithms are negotiated and selected to send compressed data over X Protocol connections. The algorithms available are specified by the server and currently include: lz4_message, deflate_stream, and zstd_stream. Supported algorithm aliases are lz4, deflate, and zstd. Unknown or unsupported values are ignored.

    Example usage:

    session = mysqlx.get_session({
        "host": "localhost", 
        "port": 33060,
        "user": "root", 
        "password": "s3cr3t",
        "compression": "required",
        "compression-algorithms": ["lz4', "zstd_stream"]
    })

    (WL #13995)

  • For enhanced security of the existing allow_local_infile connection string option, the new allow_local_infile_in_path option allows restricting LOCAL data loading to files located in this designated directory. (WL #14098)

  • The pure Python and C extension implementations were combined into a single package; this applies to both DEB and RPM packages. (WL #13985)

Bugs Fixed

  • Fixed a memory leak in the C-extension implementation when using the Decimal data type. Thanks to Kan Liyong for the patch. (Bug #31335275, Bug #99517)

  • Copyright and License headers were missing in the Python modules generated by protoc. (Bug #31267800)

  • When creating an index on a collection, if a collation was specified but the field is not of the type TEXT, then an error message was generated with a wrong field type. It'd always report it as GEOJSON. (Bug #27535063)

  • The reset connection command was missing from the C-extension implementation, which is required to reuse a connection from the pool. As such, connection pooling is now allowed with the C-extension implementation. (Bug #20811567, Bug #27489937)