Python 3 and mysql through SQLAlchemy

前端 未结 4 1790
北恋
北恋 2020-12-29 14:35

Currently:

  • SQLAlchemy installed and working (or at least import v0.8.0b2)
  • Mysql (v5.5.16)
  • Distribute (0.6.34)
  • Oracle mysql-python co
相关标签:
4条回答
  • 2020-12-29 15:10

    I was successful in getting Oracle's MySQL connector for python working with SQLAlchemy on Python 3.3. Your connection string needs to start with "mysql+mysqlconnector://...". After I changed my connection string everything (well, simple things) started working.

    The MySQL connector docs can be found here: https://dev.mysql.com/doc/connector-python/en/

    The package is up on PyPi: https://pypi.org/project/mysql-connector-python/

    Here are the SQLAlchemy docs about using the Python connector: http://docs.sqlalchemy.org/en/latest/dialects/mysql.html#module-sqlalchemy.dialects.mysql.mysqlconnector

    0 讨论(0)
  • 2020-12-29 15:10

    For others who arrive here, this should do it:

    • pip install mysql-connector==2.1.4 # version avoids Protobuf error
    • URI = 'mysql+mysqlconnector://$USER:$PASS@$HOST/$DB'
    0 讨论(0)
  • 2020-12-29 15:25

    I tried Oracle's connection, as suggested by @Brad Campbell, but unfortunately it was extremely slow, much slower than the "real" MySQL-Python connection I had been using with SQLAlchemy on Python 2.

    After checking SQLAlchemy themselves,

    http://docs.sqlalchemy.org/en/latest/dialects/mysql.html#module-sqlalchemy.dialects.mysql.mysqldb

    To use MySQL-Python on Python 3, they recommend a fork of it, mysqlclient,

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

    It is available via pip with pip install mysqlclient, but there are almost certainly other steps you'll need to do to set it up initially. After that though, I was seeing the performance go back to what I was used to, which was about 5x faster than with Oracle's connector.

    0 讨论(0)
  • 2020-12-29 15:32

    I've gotten oursql + SQLAlchemy 0.8.1 + Python 3.3 to work. Building off of LukeCarrier's port, I modified oursql.c to use the correct import levels, and it worked! Try this, and be sure to follow the readme:

    https://github.com/clintron/py3k-oursql

    You may also need to have the latest version of Cython.

    0 讨论(0)
提交回复
热议问题