Python 3和MySQL

我在Windows上使用ActiveState Python 3,想连接到我的MySQL数据库。 我听说mysqldb是使用的模块。 我找不到Python 3的mysqldb

有没有可用的存储库的二进制文件存在的mysqldb ? 我如何连接到Windows上的Python 3的MySQL?

目前有几种使用Python 3的选项:

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

  • 由Oracle正式支持
  • 纯python
  • 有点慢
  • 与MySQLdb不兼容

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

  • 纯python
  • 比mysql连接器更快
  • 几乎完全兼容MySQLdb ,调用pymysql.install_as_MySQLdb()

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

  • pymysql与可选的C加速叉

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

  • Django的推荐库。
  • 原来MySQLdb的友好分支,希望有朝一日能够合并回来
  • 最快的实现,因为它是基于C的。
  • 与MySQLdb最兼容,因为它是一个分支
  • Debian和Ubuntu使用它来提供python-mysqldbpython3-mysqldb软件包。

基准: https : //github.com/methane/mysql-driver-benchmarks

你应该使用pymysql – 纯Python Python客户端
它适用于Python 3.x,并没有任何依赖关系。

这个纯粹的Python MySQL客户端通过二进制客户端/服务器协议直接与服务器通信,为MySQL数据库提供了一个DB-API。

例:

 import pymysql conn = pymysql.connect(host='127.0.0.1', unix_socket='/tmp/mysql.sock', user='root', passwd=None, db='mysql') cur = conn.cursor() cur.execute("SELECT Host,User FROM user") for r in cur: print(r) cur.close() conn.close() 

我也试过使用pymysql(在我的Win7 x64机器上,Python 3.3),没有太多的运气。 我下载了.tar.gz,解压,运行“setup.py install”,一切都显得很好。 直到我试图连接到数据库,并得到“KeyError [56]”。 我无法在任何地方发现的错误。

所以我放弃了pymysql,并且决定使用Oracle MySQL连接器 。

它是作为一个安装包,并开箱即用。 它也似乎体面的文件。

未经testing,但有一些二进制文件可在:

非官方的Windows二进制文件

如果你想首先使用MySQLdb,你必须在你的电脑上inputcmd的windows来安装pymysql

  pip install pymysql 

然后在python shell中input

  import pymysql pymysql.install_as_MySQLdb() import MySQLdb db = MySQLdb.connect("localhost" , "root" , "password") 

这将build立连接。

PyMySQL也提供类似于MySQLDb的界面。 你可以尝试在你的初始化:

 import pymysql pymysql.install_as_MySQLdb() 

还有一个python3在github上的mysql-python的端口。

https://github.com/davispuh/MySQL-for-Python-3

Oracle / MySQL提供了一个官方的纯Python DBAPI驱动程序: http ://dev.mysql.com/downloads/connector/python/

我已经使用它与Python 3.3,发现它的工作很好。 也适用于SQLAlchemy。

另请参阅以下问题: 跳上Python 3列车还为时过早吗?

在我的Mac OS特立独行我试试这个:

  • terminaltypes:

    1) mkdir -p〜/ bin〜/ tmp〜/ lib / python3.3〜/ src 2) export TMPDIR =〜/ tmp
    3) wget -O〜/ bin / 2to3
    4) http://hg.python.org/cpython/raw-file/60c831305e73/Tools/scripts/2to3 5) chmod 700〜/ bin / 2to3 6) cd〜 / src 7) git clone https:// github。 com / petehunt / PyMySQL.git 8) cd PyMySQL /
    9) python3.3 setup.py install –install-lib = $ HOME / lib / python3.3 –install-scripts = $ HOME / bin

之后,inputpython3解释器并键入:

  1. 导入pymysql 。 如果没有错误,您的安装就可以了。 对于validation写一个脚本来连接到这个forms的MySQL:

  2. #一个用于MySQL连接导入的简单脚本pymysql db = pymysql.connect(host =“localhost”,user =“root”,passwd =“ *”,db =“biblioteca”)#Sure,这是my db的信息#close连接db.close()*

给它一个名字(例如“con.py”)并保存在桌面上。 在terminal中键入“cd desktop”,然后input$ python con.py如果没有错误,则连接到MySQL服务器。 祝你好运!

CyMySQL https://github.com/nakagami/CyMySQL

我已经安装了我的Windows 7上的点子,用Python 3.3只是pip安装cymysql

(你不需要cython)快速和无痛

这并不能完全回答我原来的问题,但我认为让每个人都知道我做了什么以及为什么是很重要的。

我select继续使用python 2.7而不是python 3,因为一般情况下,networking上普遍存在2.7个示例和模块。

我现在使用mysqldb和mysql.connector连接到Python 2.7中的MySQL。 两者都很好,工作得很好。 我认为mysql.connector最终是更好的长期然而。

我使用cymysql与python3在树莓派我只是简单地安装:sudo pip3安装cython sudo pip3安装cymysql其中cython是不必要的,但应该使cymysql更快

到目前为止,它像一个魅力和MySQLdb非常相似