# What changed in mysqlclient

> 9 changes in mysqlclient 2 from its official release notes, upgrade guides and advisories: 1 breaking, 2 deprecations, 2 new APIs and options. Each one cited. Sources checked 2026-10-25. HTML: https://unstale.sh/pypi/mysqlclient/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## mysqlclient 2

### Breaking changes

- Raises ProgrammingError immediately on concurrent connection use instead of blocking. (2.3.0) — [release notes](https://github.com/PyMySQL/mysqlclient/releases/tag/v2.3.0)

### Deprecations

- Exception classes exposed in Cursor attributes are deprecated. (2.3.0) — [release notes](https://github.com/PyMySQL/mysqlclient/releases/tag/v2.3.0)
- The reconnect parameter of ping() is deprecated. (2.3.0) — [release notes](https://github.com/PyMySQL/mysqlclient/releases/tag/v2.3.0)

### New APIs and options

- Exposes the cursor's warning count. (2.3.0) — [release notes](https://github.com/PyMySQL/mysqlclient/releases/tag/v2.3.0)
- Adds a Windows ARM64 build. (2.3.0) — [release notes](https://github.com/PyMySQL/mysqlclient/releases/tag/v2.3.0)

### Behavior and default changes

- Cursor now conforms to the DB-API 2.0 iterator interface. (2.3.0) — [release notes](https://github.com/PyMySQL/mysqlclient/releases/tag/v2.3.0)
- Enhanced to use multistatement. (2.3.0) — [release notes](https://github.com/PyMySQL/mysqlclient/releases/tag/v2.3.0)

### Fixes and other changes

- Quotes procedure names and user variables with backticks when calling stored procedures. (2.3.0) — [release notes](https://github.com/PyMySQL/mysqlclient/releases/tag/v2.3.0)
- Supports microseconds and negative values. (2.3.0) — [release notes](https://github.com/PyMySQL/mysqlclient/releases/tag/v2.3.0)
