[openstack-dev] [all] Replace mysql-python with mysqlclient

Mike Bayer mbayer at redhat.com
Fri May 8 19:56:03 UTC 2015



On 5/8/15 10:41 AM, Ronald Bradford wrote:
> I guess I may have spoken too soon. 
> https://wiki.openstack.org/wiki/PyMySQL_evaluation states  " Oracle 
> refuses to publish MySQL-connector-Python on Pypi, which is critical 
> to the Openstack infrastructure".
>
> I am unclear when this statement was made and who is involved in this 
> discussion.  As I have contacts in the MySQL engineering and Oracle 
> Corporation product development teams I will endeavor to seek a more 
> current and definitive response and statement.

I made that statement.   I and others have been in contact for many 
months with Andrew Rist as well as Geert Vanderkelen regarding this 
issue without any result.  We all preferred mysql-connector originally 
but as time has dragged on and I've sent a few messages to Andrew and 
others that Openstack is essentially going to give up on their driver to 
no result,  we've all gotten more involved with PyMySQL, it has come out 
as the better driver overall.    PyMySQL is written by the same author 
of the "mysqlclient" driver that it looks like we are all switching to 
regardless (Django has already recommended this to their userbase).

PyMySQL also has very straightforward source code, performs better in 
tests, and doesn't have weird decisions like deciding to make a huge 
backwards-incompatible change to return bytearrays and not bytes in Py3K 
raw mode 
(http://dev.mysql.com/doc/relnotes/connector-python/en/news-2-0-0.html).

PyMySQL also is easily accessible as a project with very fast support 
via Github; several of us have been able to improve PyMySQL via pull 
requests quickly and without issue, and the maintainer even made me a 
member of the project so I can even commit fixes directly if I 
wanted.    I don't know that Oracle's ownership of MySQL-connector would 
be comfortable with these things, and the only way to get support is 
through Oracle's large and cumbersome bug tracker.




>
> Regards
>
> Ronald
>
>
>
> On Fri, May 8, 2015 at 10:33 AM, Ronald Bradford 
> <me at ronaldbradford.com <mailto:me at ronaldbradford.com>> wrote:
>
>     Has anybody considered the native python connector for MySQL that
>     supports Python 3.
>
>     Here are the Ubuntu Packages.
>
>
>     $ apt-get show python-mysql.connector
>     E: Invalid operation show
>     rbradfor at rubble:~$ apt-cache show python-mysql.connector
>     Package: python-mysql.connector
>     Priority: optional
>     Section: universe/python
>     Installed-Size: 386
>     Maintainer: Ubuntu Developers
>     <ubuntu-devel-discuss at lists.ubuntu.com
>     <mailto:ubuntu-devel-discuss at lists.ubuntu.com>>
>     Original-Maintainer: Sandro Tosi <morph at debian.org
>     <mailto:morph at debian.org>>
>     Architecture: all
>     Source: mysql-connector-python
>     Version: 1.1.6-1
>     Replaces: mysql-utilities (<< 1.3.5-2)
>     Depends: python:any (>= 2.7.5-5~), python:any (<< 2.8)
>     Breaks: mysql-utilities (<< 1.3.5-2)
>     Filename:
>     pool/universe/m/mysql-connector-python/python-mysql.connector_1.1.6-1_all.deb
>     Size: 67196
>     MD5sum: 22b2cb35cf8b14ac0bf4493b0d676adb
>     SHA1: de626403e1b14f617e9acb0a6934f044fae061c7
>     SHA256:
>     99e34f67d085c28b49eb8145c281deaa6d2b2a48d741e6831e149510087aab94
>     Description-en: pure Python implementation of MySQL Client/Server
>     protocol
>      MySQL driver written in Python which does not depend on MySQL C
>     client
>      libraries and implements the DB API v2.0 specification (PEP-249).
>      .
>      MySQL Connector/Python is implementing the MySQL Client/Server
>     protocol
>      completely in Python. This means you don't have to compile
>     anything or MySQL
>      (client library) doesn't even have to be installed on the machine.
>     Description-md5: bb7e2eba7769d706d44e0ef91171b4ed
>     Homepage: http://dev.mysql.com/doc/connector-python/en/index.html
>     Bugs: https://bugs.launchpad.net/ubuntu/+filebug
>     Origin: Ubuntu
>
>     $ apt-cache show python3-mysql.connector
>     Package: python3-mysql.connector
>     Priority: optional
>     Section: universe/python
>     Installed-Size: 385
>     Maintainer: Ubuntu Developers
>     <ubuntu-devel-discuss at lists.ubuntu.com
>     <mailto:ubuntu-devel-discuss at lists.ubuntu.com>>
>     Original-Maintainer: Sandro Tosi <morph at debian.org
>     <mailto:morph at debian.org>>
>     Architecture: all
>     Source: mysql-connector-python
>     Version: 1.1.6-1
>     Depends: python3:any (>= 3.3.2-2~)
>     Filename:
>     pool/universe/m/mysql-connector-python/python3-mysql.connector_1.1.6-1_all.deb
>     Size: 64870
>     MD5sum: 461208ed1b89d516d6f6ce43c003a173
>     SHA1: bd439c4057824178490b402ad6c84067e1e2884e
>     SHA256:
>     487af52b98bc5f048faf4dc73420eff20b75a150e1f92c82de2ecdd4671659ae
>     Description-en: pure Python implementation of MySQL Client/Server
>     protocol (Python3)
>      MySQL driver written in Python which does not depend on MySQL C
>     client
>      libraries and implements the DB API v2.0 specification (PEP-249).
>      .
>      MySQL Connector/Python is implementing the MySQL Client/Server
>     protocol
>      completely in Python. This means you don't have to compile
>     anything or MySQL
>      (client library) doesn't even have to be installed on the machine.
>      .
>      This package contains the Python 3 version of mysql.connector.
>     Description-md5: 4bca3815f5856ddf4a629b418ec76c8f
>     Homepage: http://dev.mysql.com/doc/connector-python/en/index.html
>     Bugs: https://bugs.launchpad.net/ubuntu/+filebug
>     Origin: Ubuntu
>
>
>     Ronald Bradford
>
>     Web Site: http://ronaldbradford.com <http://ronaldbradford.com/>
>     LinkedIn: http://www.linkedin.com/in/ronaldbradford
>     Twitter: @RonaldBradford <http://twitter.com/ronaldbradford>
>     Skype: RonaldBradford
>     GTalk:      Ronald.Bradford
>
>
>
>     On Thu, May 7, 2015 at 9:39 PM, Mike Bayer <mbayer at redhat.com
>     <mailto:mbayer at redhat.com>> wrote:
>
>
>
>         On 5/7/15 5:32 PM, Thomas Goirand wrote:
>
>             If there are really fixes and features we
>
>                 need in Py2K then of course we have to either convince
>                 MySQLdb to merge
>                 them or switch to mysqlclient.
>
>
>             Given the "no reply in 6 months" I think that's enough to
>             say it: mysql-python is a dangerous package with a
>             non-responsive upstream. That's always bad, and IMO,
>             enough to try to get rid of it. If you think switching to
>             PyMYSQL is effortless, and the best way forward, then
>             let's do that ASAP!
>
>
>         haha - id rather have drop eventlet + mysqlclient :)
>
>         as far as this thread, where this has been heading is that
>         django has already been recommending mysqlclient and it's
>         become apparent just what a barrage of emails and messages
>         have been sent Andy Dustman's way, with no response.    I
>         agree this is troubling behavior, and I've alerted people at
>         RH internal that we need to start thinking about this package
>         switch.    My original issue was that for Fedora etc.,
>         changing it in this way is challenging, and from my
>         discussions with packaging people, this is actually correct -
>         this isn't an easy way to do it for them and there have been
>         many emails as a result.  My other issue is the SQLAlchemy
>         testing issue - I'd essentially have to just stop testing
>         mysql-python and switch to mysqlclient entirely, which means i
>         need to revise all my docs and get all my users to switch also
>         when the SQLAlchemy MySQLdb dialect eventually diverges from
>         mysql-python 1.2.5, hence the whole thing is in a
>         not-minor-enough way my problem as well.    A simple module
>         name change for mysqlclient, then there's no problem.   But
>         there you go - assuming continued crickets from AD, and seeing
>         that people continue find it important to appease projects
>         like Trac that IMO quite amateurishly hardcode "import
>         MySQLdb", I don't see much other option.
>
>
>         __________________________________________________________________________
>         OpenStack Development Mailing List (not for usage questions)
>         Unsubscribe:
>         OpenStack-dev-request at lists.openstack.org?subject:unsubscribe
>         <http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe>
>         http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>
>
>
>
>
> __________________________________________________________________________
> OpenStack Development Mailing List (not for usage questions)
> Unsubscribe: OpenStack-dev-request at lists.openstack.org?subject:unsubscribe
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20150508/67eecb7e/attachment-0001.html>


More information about the OpenStack-dev mailing list