Changelog
### 2.2.5
```
======================
Release: 2024-10-20
* (Windows wheel) Update MariaDB Connector/C to 3.4.1. 726
* (Windows wheel) Build wheels for Python 3.13. 726
======================
```
### 2.2.4
```
======================
Release: 2024-02-09
* Support ``ssl=True`` in ``connect()``. (700)
This makes better compatibility with PyMySQL and mysqlclient==2.2.1
with libmariadb. See 698 for detail.
======================
```
### 2.2.3
```
======================
Release: 2024-02-04
* Fix ``Connection.kill()`` method that broken in 2.2.2. (689)
======================
```
### 2.2.2
```
======================
Release: 2024-02-04
* Support building with MySQL 8.3 (688).
* Deprecate ``db.shutdown()`` and ``db.kill()`` methods in docstring.
This is because ``mysql_shutdown()`` and ``mysql_kill()`` were removed in MySQL 8.3.
They will emit DeprecationWarning in the future but not for now.
======================
```
### 2.2.1
```
======================
Release: 2023-12-13
* ``Connection.ping()`` avoid using ``MYSQL_OPT_RECONNECT`` option until
``reconnect=True`` is specified. MySQL 8.0.33 start showing warning
when the option is used. (664)
* Windows: Update MariaDB Connector/C to 3.3.8. (665)
* Windows: Build wheels for Python 3.12 (644)
======================
```
### 2.2.0
```
======================
Release: 2023-06-22
* Use ``pkg-config`` instead of ``mysql_config`` (586)
* Raise ProgrammingError on -inf (557)
* Raise IntegrityError for ER_BAD_NULL. (579)
* Windows: Use MariaDB Connector/C 3.3.4 (585)
* Use pkg-config instead of mysql_config (586)
* Add collation option (564)
* Drop Python 3.7 support (593)
* Use pyproject.toml for build (598)
* Add Cursor.mogrify (477)
* Partial support of ssl_mode option with mariadbclient (475)
* Discard remaining results without creating Python objects (601)
* Fix executemany with binary prefix (605)
======================
```
### 2.1.1
```
======================
Release: 2022-06-22
* Fix qualname of exception classes. (522)
* Fix range check in ``MySQLdb._mysql.result.fetch_row()``. Invalid ``how`` argument caused SEGV. (538)
* Fix docstring of ``_mysql.connect``. (540)
* Windows: Binary wheels are updated. (541)
* Use MariaDB Connector/C 3.3.1.
* Use cibuildwheel to build wheels.
* Python 3.8-3.11
======================
```
### 2.1.0
```
======================
Release: 2021-11-17
* Add ``multistatement=True`` option. You can disable multi statement. (500).
* Remove unnecessary bytes encoder which is remained for Django 1.11
compatibility (490).
* Deprecate ``passwd`` and ``db`` keyword. Use ``password`` and ``database``
instead. (488).
* Windows: Binary wheels are built with MariaDB Connector/C 3.2.4. (508)
* ``set_character_set()`` sends ``SET NAMES`` query always. This means
all new connections send it too. This solves compatibility issues
when server and client library are different version. (509)
* Remove ``escape()`` and ``escape_string()`` from ``MySQLdb`` package.
(511)
* Add Python 3.10 support and drop Python 3.5 support.
======================
```
### 2.0.3
```
======================
Release: 2021-01-01
* Add ``-std=c99`` option to cflags by default for ancient compilers that doesn't
accept C99 by default.
* You can customize cflags and ldflags by setting ``MYSQLCLIENT_CFLAGS`` and
``MYSQLCLIENT_LDFLAGS``. It overrides ``mysql_config``.
======================
```
### 2.0.2
```
======================
Release: 2020-12-10
* Windows: Update MariaDB Connector/C to 3.1.11.
* Optimize fetching many rows with DictCursor.
======================
```
### 2.0.1
```
======================
Release: 2020-07-03
* Fixed multithread safety issue in fetching row.
* Removed obsolete members from Cursor. (e.g. `messages`, `_warnings`, `_last_executed`)
======================
```
### 2.0.0
```
======================
Release: 2020-07-02
* Dropped Python 2 support
* Dropped Django 1.11 support
* Add context manager interface to Connection which closes the connection on ``__exit__``.
* Add ``ssl_mode`` option.
======================
```
### 1.4.6
```
======================
Release: 2019-11-21
* The ``cp1252`` encoding is used when charset is "latin1". (390)
======================
```
### 1.4.5
```
======================
Release: 2019-11-06
* The ``auth_plugin`` option is added. (389)
======================
```
### 1.4.4
```
======================
Release: 2019-08-12
* ``charset`` option is passed to ``mysql_options(mysql, MYSQL_SET_CHARSET_NAME, charset)``
before ``mysql_real_connect`` is called.
This avoid extra ``SET NAMES <charset>`` query when creating connection.
======================
```
### 1.4.3
```
======================
Release: 2019-08-09
* ``--static`` build supports ``libmariadbclient.a``
* Try ``mariadb_config`` when ``mysql_config`` is not found
* Fixed warning happened in Python 3.8 (359)
* Fixed ``from MySQLdb import *``, while I don't recommend it. (369)
* Fixed SEGV ``MySQLdb.escape_string("1")`` when libmariadb is used and
no connection is created. (367)
* Fixed many circular references are created in ``Cursor.executemany()``. (375)
======================
```
### 1.4.2
```
======================
Release: 2019-02-08
* Fix Django 1.11 compatibility. (327)
mysqlclient 1.5 will not support Django 1.11. It is not because
mysqlclient will break backward compatibility, but Django used
unsupported APIs and Django 1.11 don't fix bugs including
compatibility issues.
======================
```
### 1.4.1
```
======================
Release: 2019-01-19
* Fix dict parameter support (323, regression of 1.4.0)
======================
```
### 1.4.0
```
======================
Release: 2019-01-18
* Dropped Python 3.4 support.
* Removed ``threadsafe`` and ``embedded`` build options.
* Remove some deprecated cursor classes and methods.
* ``_mysql`` and ``_mysql_exceptions`` modules are moved under
``MySQLdb`` package. (293)
* Remove ``errorhandler`` from Connection and Cursor classes.
* Remove context manager API from Connection. It was for transaction.
New context manager API for closing connection will be added in future version.
* Remove ``waiter`` option from Connection.
* Remove ``escape_sequence``, and ``escape_dict`` methods from Connection class.
* Remove automatic MySQL warning checking.
* Drop support for MySQL Connector/C with MySQL<5.1.12.
* Remove ``_mysql.NULL`` constant.
* Remove ``_mysql.thread_safe()`` function.
* Support non-ASCII field name with non-UTF-8 connection encoding. (210)
* Optimize decoding speed of string and integer types.
* Remove ``MySQLdb.constants.REFRESH`` module.
* Remove support for old datetime format for MySQL < 4.1.
* Fix wrong errno is raised when ``mysql_real_connect`` is failed. (316)
======================
```
### 1.3.14
```
======================
Release: 2018-12-04
* Support static linking of MariaDB Connector/C (265)
* Better converter for Decimal and Float (267, 268, 273, 286)
* Add ``Connection._get_native_connection`` for XTA project (269)
* Fix SEGV on MariaDB Connector/C when some methods of ``Connection``
objects are called after ``Connection.close()`` is called. (270, 272, 276)
See https://jira.mariadb.org/browse/CONC-289
* Fix ``Connection.client_flag`` (266)
* Fix SSCursor may raise same exception twice (282)
* This removed ``Cursor._last_executed`` which was duplicate of ``Cursor._executed``.
Both members are private. So this type of changes are not documented in changelog
generally. But Django used the private member for ``last_executed_query`` implementation.
If you use the method the method directly or indirectly, this version will break
your application. See https://code.djangoproject.com/ticket/30013
* ``waiter`` option is now deprecated. (285)
* Fixed SSL support is not detected when built with MySQL < 5.1 (291)
======================
```
Links
- PyPI: https://pypi.org/project/mysqlclient
- Changelog: https://data.safetycli.com/changelogs/mysqlclient/
This PR updates mysqlclient from 1.3.13 to 2.2.6.
Changelog
### 2.2.5 ``` ====================== Release: 2024-10-20 * (Windows wheel) Update MariaDB Connector/C to 3.4.1. 726 * (Windows wheel) Build wheels for Python 3.13. 726 ====================== ``` ### 2.2.4 ``` ====================== Release: 2024-02-09 * Support ``ssl=True`` in ``connect()``. (700) This makes better compatibility with PyMySQL and mysqlclient==2.2.1 with libmariadb. See 698 for detail. ====================== ``` ### 2.2.3 ``` ====================== Release: 2024-02-04 * Fix ``Connection.kill()`` method that broken in 2.2.2. (689) ====================== ``` ### 2.2.2 ``` ====================== Release: 2024-02-04 * Support building with MySQL 8.3 (688). * Deprecate ``db.shutdown()`` and ``db.kill()`` methods in docstring. This is because ``mysql_shutdown()`` and ``mysql_kill()`` were removed in MySQL 8.3. They will emit DeprecationWarning in the future but not for now. ====================== ``` ### 2.2.1 ``` ====================== Release: 2023-12-13 * ``Connection.ping()`` avoid using ``MYSQL_OPT_RECONNECT`` option until ``reconnect=True`` is specified. MySQL 8.0.33 start showing warning when the option is used. (664) * Windows: Update MariaDB Connector/C to 3.3.8. (665) * Windows: Build wheels for Python 3.12 (644) ====================== ``` ### 2.2.0 ``` ====================== Release: 2023-06-22 * Use ``pkg-config`` instead of ``mysql_config`` (586) * Raise ProgrammingError on -inf (557) * Raise IntegrityError for ER_BAD_NULL. (579) * Windows: Use MariaDB Connector/C 3.3.4 (585) * Use pkg-config instead of mysql_config (586) * Add collation option (564) * Drop Python 3.7 support (593) * Use pyproject.toml for build (598) * Add Cursor.mogrify (477) * Partial support of ssl_mode option with mariadbclient (475) * Discard remaining results without creating Python objects (601) * Fix executemany with binary prefix (605) ====================== ``` ### 2.1.1 ``` ====================== Release: 2022-06-22 * Fix qualname of exception classes. (522) * Fix range check in ``MySQLdb._mysql.result.fetch_row()``. Invalid ``how`` argument caused SEGV. (538) * Fix docstring of ``_mysql.connect``. (540) * Windows: Binary wheels are updated. (541) * Use MariaDB Connector/C 3.3.1. * Use cibuildwheel to build wheels. * Python 3.8-3.11 ====================== ``` ### 2.1.0 ``` ====================== Release: 2021-11-17 * Add ``multistatement=True`` option. You can disable multi statement. (500). * Remove unnecessary bytes encoder which is remained for Django 1.11 compatibility (490). * Deprecate ``passwd`` and ``db`` keyword. Use ``password`` and ``database`` instead. (488). * Windows: Binary wheels are built with MariaDB Connector/C 3.2.4. (508) * ``set_character_set()`` sends ``SET NAMES`` query always. This means all new connections send it too. This solves compatibility issues when server and client library are different version. (509) * Remove ``escape()`` and ``escape_string()`` from ``MySQLdb`` package. (511) * Add Python 3.10 support and drop Python 3.5 support. ====================== ``` ### 2.0.3 ``` ====================== Release: 2021-01-01 * Add ``-std=c99`` option to cflags by default for ancient compilers that doesn't accept C99 by default. * You can customize cflags and ldflags by setting ``MYSQLCLIENT_CFLAGS`` and ``MYSQLCLIENT_LDFLAGS``. It overrides ``mysql_config``. ====================== ``` ### 2.0.2 ``` ====================== Release: 2020-12-10 * Windows: Update MariaDB Connector/C to 3.1.11. * Optimize fetching many rows with DictCursor. ====================== ``` ### 2.0.1 ``` ====================== Release: 2020-07-03 * Fixed multithread safety issue in fetching row. * Removed obsolete members from Cursor. (e.g. `messages`, `_warnings`, `_last_executed`) ====================== ``` ### 2.0.0 ``` ====================== Release: 2020-07-02 * Dropped Python 2 support * Dropped Django 1.11 support * Add context manager interface to Connection which closes the connection on ``__exit__``. * Add ``ssl_mode`` option. ====================== ``` ### 1.4.6 ``` ====================== Release: 2019-11-21 * The ``cp1252`` encoding is used when charset is "latin1". (390) ====================== ``` ### 1.4.5 ``` ====================== Release: 2019-11-06 * The ``auth_plugin`` option is added. (389) ====================== ``` ### 1.4.4 ``` ====================== Release: 2019-08-12 * ``charset`` option is passed to ``mysql_options(mysql, MYSQL_SET_CHARSET_NAME, charset)`` before ``mysql_real_connect`` is called. This avoid extra ``SET NAMES <charset>`` query when creating connection. ====================== ``` ### 1.4.3 ``` ====================== Release: 2019-08-09 * ``--static`` build supports ``libmariadbclient.a`` * Try ``mariadb_config`` when ``mysql_config`` is not found * Fixed warning happened in Python 3.8 (359) * Fixed ``from MySQLdb import *``, while I don't recommend it. (369) * Fixed SEGV ``MySQLdb.escape_string("1")`` when libmariadb is used and no connection is created. (367) * Fixed many circular references are created in ``Cursor.executemany()``. (375) ====================== ``` ### 1.4.2 ``` ====================== Release: 2019-02-08 * Fix Django 1.11 compatibility. (327) mysqlclient 1.5 will not support Django 1.11. It is not because mysqlclient will break backward compatibility, but Django used unsupported APIs and Django 1.11 don't fix bugs including compatibility issues. ====================== ``` ### 1.4.1 ``` ====================== Release: 2019-01-19 * Fix dict parameter support (323, regression of 1.4.0) ====================== ``` ### 1.4.0 ``` ====================== Release: 2019-01-18 * Dropped Python 3.4 support. * Removed ``threadsafe`` and ``embedded`` build options. * Remove some deprecated cursor classes and methods. * ``_mysql`` and ``_mysql_exceptions`` modules are moved under ``MySQLdb`` package. (293) * Remove ``errorhandler`` from Connection and Cursor classes. * Remove context manager API from Connection. It was for transaction. New context manager API for closing connection will be added in future version. * Remove ``waiter`` option from Connection. * Remove ``escape_sequence``, and ``escape_dict`` methods from Connection class. * Remove automatic MySQL warning checking. * Drop support for MySQL Connector/C with MySQL<5.1.12. * Remove ``_mysql.NULL`` constant. * Remove ``_mysql.thread_safe()`` function. * Support non-ASCII field name with non-UTF-8 connection encoding. (210) * Optimize decoding speed of string and integer types. * Remove ``MySQLdb.constants.REFRESH`` module. * Remove support for old datetime format for MySQL < 4.1. * Fix wrong errno is raised when ``mysql_real_connect`` is failed. (316) ====================== ``` ### 1.3.14 ``` ====================== Release: 2018-12-04 * Support static linking of MariaDB Connector/C (265) * Better converter for Decimal and Float (267, 268, 273, 286) * Add ``Connection._get_native_connection`` for XTA project (269) * Fix SEGV on MariaDB Connector/C when some methods of ``Connection`` objects are called after ``Connection.close()`` is called. (270, 272, 276) See https://jira.mariadb.org/browse/CONC-289 * Fix ``Connection.client_flag`` (266) * Fix SSCursor may raise same exception twice (282) * This removed ``Cursor._last_executed`` which was duplicate of ``Cursor._executed``. Both members are private. So this type of changes are not documented in changelog generally. But Django used the private member for ``last_executed_query`` implementation. If you use the method the method directly or indirectly, this version will break your application. See https://code.djangoproject.com/ticket/30013 * ``waiter`` option is now deprecated. (285) * Fixed SSL support is not detected when built with MySQL < 5.1 (291) ====================== ```Links
- PyPI: https://pypi.org/project/mysqlclient - Changelog: https://data.safetycli.com/changelogs/mysqlclient/