Skip to content
MySQL database connector for Python (with Python 3 support)
Branch: master
Clone or download
fried and methane memory leak in ConnectionObject_Initialize when mysql_real_connect fa…
…ils (#350)

We can't set open=0 after we mysql_init or dealloc will not cleanup the memory.

Also if mysql_init returns NULL we are out of memory and shouldn't set open=1, or we could segfault in dealloc if we didn't seg before that.
Latest commit b66971e Mar 25, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github
MySQLdb memory leak in ConnectionObject_Initialize when mysql_real_connect fa… Mar 25, 2019
ci travis: run django-1.11.18 tests (#328) Feb 7, 2019
doc Grammar fixes (#333) Feb 17, 2019
tests Grammar fixes (#333) Feb 17, 2019
.gitignore
.travis.yml
HISTORY.rst
INSTALL.rst Update INSTALL.rst Dec 12, 2018
LICENSE
MANIFEST.in
Makefile
README.md use metapackage for libmysqlclient-dev (#245) May 31, 2018
metadata.cfg
setup.py Move _mysql and _mysql_exceptions into MySQLdb/ (#293) Dec 4, 2018
setup_common.py
setup_posix.py Move _mysql and _mysql_exceptions into MySQLdb/ (#293) Dec 4, 2018
setup_windows.py
site.cfg

README.md

mysqlclient

Build Status

This is a fork of MySQLdb1.

This project adds Python 3 support and bug fixes. I hope this fork is merged back to MySQLdb1 like distribute was merged back to setuptools.

Install

Prerequisites

You may need to install the Python and MySQL development headers and libraries like so:

  • sudo apt-get install python-dev default-libmysqlclient-dev # Debian / Ubuntu
  • sudo yum install python-devel mysql-devel # Red Hat / CentOS
  • brew install mysql-connector-c # macOS (Homebrew) (Currently, it has bug. See below)

On Windows, there are binary wheels you can install without MySQLConnector/C or MSVC.

Note on Python 3 : if you are using python3 then you need to install python3-dev using the following command :

sudo apt-get install python3-dev # debian / Ubuntu

sudo yum install python3-devel # Red Hat / CentOS

Note about bug of MySQL Connector/C on macOS

See also: https://bugs.mysql.com/bug.php?id=86971

Versions of MySQL Connector/C may have incorrect default configuration options that cause compilation errors when mysqlclient-python is installed. (As of November 2017, this is known to be true for homebrew's mysql-connector-c and official package)

Modification of mysql_config resolves these issues as follows.

Change

# on macOS, on or about line 112:
# Create options
libs="-L$pkglibdir"
libs="$libs -l "

to

# Create options
libs="-L$pkglibdir"
libs="$libs -lmysqlclient -lssl -lcrypto"

An improper ssl configuration may also create issues; see, e.g, brew info openssl for details on macOS.

Install from PyPI

pip install mysqlclient

NOTE: Wheels for Windows may be not released with source package. You should pin version in your requirements.txt to avoid trying to install newest source package.

Install from source

  1. Download source by git clone or zipfile.
  2. Customize site.cfg
  3. python setup.py install

Documentation

Documentation is hosted on Read The Docs

You can’t perform that action at this time.