MySQL

This wiki is in the process of being archived due to lack of usage and the resources necessary to serve it — predominately to bots, crawlers, and LLM companies. Edits are discouraged.
Pages are preserved as they were at the time of archival. For current information, please visit

python.org

.
If a change to this archive is absolutely needed, requests can be made via the

[email protected]

mailing list.

URL

http://www.mysql.com/

licenseGPLv2 platformsUnix, win32, win64, MacOS X, i5/OS Pros

Easy to install and administer

Support for many SQL Features (v5.0 and up): Good compliance with SQL standards

Foreign Keys (using InnoDB)

Stored Routines

Views

Triggers

Subqueries (as of v4.1)

Partitioning (as of v5.1)

ACID compliant (InnoDB and NDB storage engines)

Character set support

Built-in Replication

Many administration tools from third parties

Widely deployed

Regarded as being fast

Modular storage engines and interesting clustering features

Cons

Early versions (v4.1 and earlier) have the reputation for only basic SQL support (entry-level SQL 92) and deviations from the standards. Many interesting features (views, triggers,..) are included in the latest version (5 and above), but are missing in prior versions. Check

SQL Modes

for making MySQL more strict.

Some

gotchas

for MySQL v4.1 and earlier.

———
DB API 2.0 Drivers

MySQL for Python

URL

http://sourceforge.net/projects/mysql-python

LicenseGNU General Public License (GPL), Python License (CNRI Python License), Zope Public License PlatformsOS Independent Python versions2.3 - 2.6 PyPI

https://pypi.org/project/MySQL-python/

MySQL on-line documentation, additional forums

(maintainer does not currently read these)

mysqlclient

URL

https://github.com/PyMySQL/mysqlclient-python

LicenseGPL PlatformsOS Independent Python versionsPython 2.7 and 3.4+ PyPI

https://pypi.org/project/mysqlclient/

mysqlclient is a fork of MySQL-python. It adds Python 3 support and fixed many bugs. It is the MySQL library that is recommended by the Django documentation.

PyMySQL

URL

http://www.pymysql.org/

LicenseMIT PlatformsOS Independent, CPython 2.x and 3.x,

PyPy

, Jython,

IronPython

Python versions2.4 - 3.2 PyPI

https://pypi.org/project/PyMySQL/

Pure-Python focused on simplicity and compatibility

Virtually 100% compatible with MySQLdb

Good performance

mxODBC

URL

http://www.egenix.com/products/python/mxODBC/

LicenseeGenix Commercial License PlatformsWindows, Linux, MacOS X, FreeBSD, Solaris, AIX Python versions2.4 - 2.7 PyPI

https://pypi.org/project/egenix-mxodbc/

mxODBC is compatible with the MySQL ODBC driver on Windows and Unix.

pyodbc

URL

https://github.com/mkleehammer/pyodbc

LicenseMIT PlatformsWindows, Linux, MacOS X, FreeBSD, Solaris, Any (source provided) Python versions2.4+ PyPI

https://pypi.org/project/pyodbc/

Actively maintained Open Source project.

Precompiled binaries are available for Windows. Red Hat Enterprise Linux, Centos, and Fedora have precompiled RPMs available in their Extras repositories.

MySQL Connector/Python

URL

https://dev.mysql.com/downloads/connector/python/

LicenseGNU GPL v2 with

FOSS License Exception

PlatformsAny (presumably) Python versionsv2.6, v2.7 and Python v3.1 to 3.3 (See

version overview

)

PyPI?? Implements the Python DB API 2.0 (PEP 249).

Pure Python implementation of the MySQL protocol.

Actively developed and maintained by Oracle.

Includes Django database backend.

mypysql

URL

http://sourceforge.net/projects/mypysql/

LicenseGNU GPL v3+ PlatformsAny (presumably) Python versions3 PyPI?? This module provides (yet) incomplete PEP 249 functionality

C implementation of MySQL database connector

A majority of the commands are implemented

Still experimental but actively developed

PyPyODBC (Pure Python ODBC)

URL

https://github.com/jiangwen365/pypyodbc

LicenseMIT PlatformsWindows, Linux Python versions2.4 - 3.3 PyPI

https://pypi.org/project/pypyodbc/

Run SQLAlchemy on PyPy

One pure Python script, runs on CPython /

IronPython

/

PyPy

, Version 3.3 / 3.2 / 3.1 / 2.4 / 2.5 / 2.6 / 2.7 , Win / Linux , 32 / 64 bit.

Similar usage as pyodbc ( can be seen as a re-implementation of pyodbc in pure Python ).

Simple - the whole module is implemented in a single python script with less than 3000 lines.

mxODBC Connect

URL

http://www.egenix.com/products/python/mxODBCConnect/

LicenseeGenix Commercial License 1.3.0 PlatformsClient: all Python platforms; Server: Windows, Linux Python versions2.5 - 2.7 PyPI

https://pypi.org/project/egenix-mxodbc-connect-client/

mxODBC Connect is a commercial client-server product that allows connecting Python to ODBC compatible databases running on remote servers without requiring an ODBC driver on the client side. The product uses mxODBC on the server side and provides a highly portable Python library for the client side. As such it supports all database backend that mxODBC supports, but allows connecting to these from many different Python-supported platforms.

mxODBC Connect supports asynchronous query execution via the popular

gevent package

, provides secure certificate based authentication, SSL encrypted database connections, comes with full support for stored procedures, multiple result sets, Unicode, a common interface on all platforms and implements

many other useful features

.

mxODBC Connect Server is compatible with the MySQL ODBC drivers.

———
Supported Python Applications

Zope

A MySQL driver exists for

PyDO

(Python Data Objects)