pan*_*ish 143 python mysql python-3.x
我在Windows上使用ActiveState Python 3并希望连接到我的MySQL数据库.我听说那mysqldb是使用的模块.我找不到mysqldbPython 3.
是否存在可用于存在二进制文件的存储库mysqldb?如何在Windows上的Python 3中连接到MySQL?
Col*_*son 259
目前有一些使用Python 3和mysql的选项:
https://pypi.python.org/pypi/mysql-connector-python
https://pypi.python.org/pypi/pymysql
MySQLdb通话后几乎完全兼容pymysql.install_as_MySQLdb()https://pypi.python.org/pypi/cymysql
https://pypi.python.org/pypi/mysqlclient
python-mysqldb和python3-mysqldb包.基准测试:https://github.com/methane/mysql-driver-benchmarks
Ole*_*pin 66
您应该使用pymysql - Pure Python MySQL客户端.
它适用于Python 3.x,并且没有任何依赖项.
这个纯Python MySQL客户端通过二进制客户端/服务器协议直接与服务器通信,为MySQL数据库提供了一个DB-API.
例:
Run Code Online (Sandbox Code Playgroud)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连接器.
它作为一个安装包,开箱即用.而且它似乎也得到了很好的记录.
小智 6
如果你想先使用MySQLdb,你必须在你的电脑上安装pymysql,输入cmd of windows
pip install pymysql
Run Code Online (Sandbox Code Playgroud)
然后在python shell中输入
import pymysql
pymysql.install_as_MySQLdb()
import MySQLdb
db = MySQLdb.connect("localhost" , "root" , "password")
Run Code Online (Sandbox Code Playgroud)
这将建立连接.
PyMySQL 也提供类似 MySQLDb 的接口。您可以在初始化中尝试:
import pymysql
pymysql.install_as_MySQLdb()
Run Code Online (Sandbox Code Playgroud)
github 上还有一个针对 python3 的 mysql-python 端口。
https://github.com/davispuh/MySQL-for-Python-3
概括
Mysqlclient是最好的选择(恕我直言),因为它与Python 3+完美配合 ,遵循预期的约定(与 mysql 连接器不同),使用对象名称mysqldb,它可以方便地移植现有软件,并且被Django用于 Python 3 构建
是否有可用的存储库,其中存在 mysqldb 的二进制文件?
是的。 mysqlclient 允许您使用 mysqldb 函数。不过,请记住这不是mysqldb的直接端口,而是 mysqlclient 的构建
如何在 Windows 上的 Python 3 中连接到 MySQL?
pip 安装 mysqlclient
例子
#!/Python36/python
#Please change above path to suit your platform. Am running it on Windows
import MySQLdb
db = MySQLdb.connect(user="my-username",passwd="my-password",host="localhost",db="my-databasename")
cursor = db.cursor()
cursor.execute("SELECT * from my-table-name")
data=cursor.fetchall()
for row in data :
print (row)
db.close()
Run Code Online (Sandbox Code Playgroud)
我找不到 Python 3 的 mysqldb。
mysqldb 尚未移植
| 归档时间: |
|
| 查看次数: |
223920 次 |
| 最近记录: |