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-mysqldb
和python3-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的端口。
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解释器并键入:
-
导入pymysql 。 如果没有错误,您的安装就可以了。 对于validation写一个脚本来连接到这个forms的MySQL:
-
#一个用于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非常相似