MySQL Connector/Python Developer Guide  /  Connector/Python Versions

Chapter 3 Connector/Python Versions

This section describes both version releases, such as 8.0.34, along with notes specific to the two implementations (C Extension and Pure Python).

Connector/Python Releases

The following table summarizes the available Connector/Python versions. For series that have reached General Availability (GA) status, development releases in the series prior to the GA version are no longer supported.

Note

MySQL Connectors and other MySQL client tools and applications now synchronize the first digit of their version number with the (highest) MySQL server version they support. For example, MySQL Connector/Python 8.0.12 would be designed to support all features of MySQL server version 8 (or lower). This change makes it easy and intuitive to decide which client version to use for which server version.

Connector/Python 8.0.4 is the first release to use the new numbering. It is the successor to Connector/Python 2.2.3.

Table 3.1 Connector/Python Version Reference

Connector/Python Version MySQL Server Versions Python Versions Connector Status
8.x Innovation 8.3, 8.2, 8.1, 8.0, 5.7, 5.6 3.12 (8.2.0+), 3.11, 3.10, 3.9, 3.8 General Availability
8.0 8.0, 5.7, 5.6, 5.5 3.11, 3.10, 3.9, 3.8, 3.7, (3.6 before 8.0.29), (2.7 and 3.5 before 8.0.24) General Availability
2.2 (continues as 8.0) 5.7, 5.6, 5.5 3.5, 3.4, 2.7 Developer Milestone, No releases
2.1 5.7, 5.6, 5.5 3.5, 3.4, 2.7, 2.6 General Availability
2.0 5.7, 5.6, 5.5 3.5, 3.4, 2.7, 2.6 GA, final release on 2016-10-26
1.2 5.7, 5.6, 5.5 (5.1, 5.0, 4.1) 3.4, 3.3, 3.2, 3.1, 2.7, 2.6 GA, final release on 2014-08-22

Note

MySQL server and Python versions within parentheses are known to work with Connector/Python, but are not officially supported. Bugs might not get fixed for those versions.

Note

Connector/Python does not support the old MySQL Server authentication methods, which means that MySQL versions prior to 4.1 will not work.

Note

On macOS x86_64 ARM: Python 3.7 is not supported with the c-ext implementation; note this is a non-default version of Python on macOS.

Connector/Python Implementations

Connector/Python implements the MySQL client/server protocol two ways:

  • As pure Python; an implementation written in Python. Its dependencies are the Python Standard Library and Python Protobuf >= 4.21.1,<= 4.21.12.

    Note

    EL7 and Ubuntu 16.04 do not provide Python Protobuf 3+ making the pure Python version unavailable on those platforms; use the C Extension variant there instead. You may have to --force the installation but may not use use_pure=True.

  • As a C Extension that interfaces with the MySQL C client library. This implementation of the protocol is dependent on the client library, but can use the library provided by MySQL Server packages (see MySQL C API Implementations).

Neither implementation of the client/server protocol has any third-party dependencies. However, if you need SSL support, verify that your Python installation has been compiled using the OpenSSL libraries.

TLS Support

By default, EL8 and Debian 10 supports TLSv1.2 and later when the policy level is set to DEFAULT. To support TLSv1 and TLSv1.1, the policy needs to be changed to LEGACY. This means that a default EL8/DEB10 setup cannot make connections with TLSv1 and TLSv1.1 using the C-extension. Other platforms may change their default behavior in the future.

The TLSv1.0 and TLSv1.1 connection protocols are deprecated as of Connector/Python 8.0.26 and support for them was removed in Connector/Python 8.0.28.

Note

Support for distutils was removed in Connector/Python 8.0.32.

Python terminology regarding distributions:

  • Built Distribution: A package created in the native packaging format intended for a given platform. It contains both sources and platform-independent bytecode. Connector/Python binary distributions are built distributions.

  • Source Distribution: A distribution that contains only source files and is generally platform independent.