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.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.