36

So, looking for a mysql-db-lib that is compatible with py3k/py3.0/py3000, any ideas? Google turned up nothing.

1

9 Answers 9

34

It appears the MySQLdb is pretty much a dead project. However, PyMySQL is a dbapi compliant, pure-python implementation of a mysql client, and it has python 3 support.

EDIT: There's also MySQL Connector/Python. Same idea.

Sign up to request clarification or add additional context in comments.

2 Comments

Actually, we could not get MySQL Connector/Python to work with Python 3.3 and SQLAlchemy. PyMySQL seems to work great though.
pip install mysql-connector-python works with Python 2.7.11 and 3.5.1. Concerned about poor performance relative to MySQLdb.
7

I was looking for it too, but also found nothing, so I ported MySQL-python-1.2.3 to py3k you can read it here http://sourceforge.net/p/mysql-python/discussion/70460/thread/61e3a3c9/

1 Comment

by the way, it's been on GitHub for few years github.com/davispuh/MySQL-for-Python-3
4

There are currently a few options for using Python 3 with mysql:

https://pypi.python.org/pypi/mysql-connector-python

  • Officially supported by Oracle
  • Pure python
  • A little slow
  • Not compatible with MySQLdb

https://pypi.python.org/pypi/pymysql

  • Pure python
  • Faster than mysql-connector
  • Almost completely compatible with MySQLdb, after calling pymysql.install_as_MySQLdb()

https://pypi.python.org/pypi/cymysql

  • fork of pymysql with optional C speedups

https://pypi.python.org/pypi/mysqlclient

  • Django's recommended library.
  • Friendly fork of the original MySQLdb, hopes to merge back some day
  • The fastest implementation, as it is C based.
  • The most compatible with MySQLdb, as it is a fork
  • Debian and Ubuntu use it to provide both python-mysqldb andpython3-mysqldb packages.

benchmarks here: https://github.com/methane/mysql-driver-benchmarks

Comments

2

As for future plans of MySQLdb, you might want to ask the author (Andy Dustman).
His blog is here: http://mysql-python.blogspot.com/

4 Comments

For those finding this post 4.5 years later like me, according to your post, mysql-db support for Python 3 is coming soon, based on that blog. Woohoo.
And for those finding this post 5 years later like me, it looks like that blog hasn't been updated since the above comment, and that Python 3 support for MySQLdb is still non-existent. :(
And for those finding this post 7-8 years later like me, there is a official connector for mysql here : dev.mysql.com/downloads/connector/python ...history is growing up so slowly...
in 2019, this answer helped me with this: stackoverflow.com/a/25724855/4530648
2

Here is a working repository for Python 3: https://github.com/davispuh/MySQL-for-Python-3

Comments

1

not sure if you're still looking, but you could try this: http://sourceforge.net/projects/mypysql/

2 Comments

Interesting. Note that this is a really minimal lib, with very few features and no PEP 249 support.
Seems dead. Perhaps pining for the fjords, but not to show for it in that case.
1

You can download the mysql-connector-python module compatible with Python3:

http://rpm.pbone.net/index.php3/stat/4/idpl/15667200/dir/rawhide/com/mysql-connector-python3-0.3.2-2.fc16.noarch.rpm.html

Get the "source RPM", unzip it and use it (e.g. put it in your PYTHONPATH, and look at the examples).

Comments

0

You're probably better off using Python 2.x at the moment. It's going to be a while before all Python packages are ported to 3.x, and I expect writing a library or application with 3.x at the moment would be quite frustrating.

Comments

0

There is an official Python 2/3 library, downloadable from MySQL website. Oracle released version 1.0.7 to public on 29 September 2012.

It's pure Python and works with MySQL 4.1+

See more details here: http://dev.mysql.com/doc/connector-python/en/connector-python.html

I'm currently using it with MySQL 5.5 and Python 3.2 with no problems thus far :)

1 Comment

Anecdote: had trouble with Python 3.3 + SQLAlchemy + Python Connector.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.