如何在 Windows 上使用 Python 3 连接 MySQL?
- 2025-02-28 08:22:00
- admin 原创
- 73
问题描述:
我在 Windows 上使用 ActiveState Python 3,并想连接到我的 MySQL 数据库。我听说这mysqldb
是要使用的模块。我找不到mysqldb
Python 3。
是否有可用的存储库,其中包含二进制文件mysqldb
?如何在 Windows 上的 Python 3 中连接到 MySQL?
解决方案 1:
目前,使用 Python 3 和 mysql 有几个选项:
https://pypi.python.org/pypi/mysql-connector-python
获得 Oracle 官方支持
纯 Python
有点慢
与 MySQLdb 不兼容
https://pypi.python.org/pypi/pymysql
纯 Python
比 mysql-connector 更快
几乎完全兼容
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
解决方案 2:
您可能应该改用pymysql - 纯 Python MySQL 客户端。
它适用于 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()
解决方案 3:
如果你想先使用 MySQLdb,你必须在电脑上安装 pymysql,方法是在 Windows 的 cmd 中输入
pip install pymysql
然后在 python shell 中输入
import pymysql
pymysql.install_as_MySQLdb()
import MySQLdb
db = MySQLdb.connect("localhost" , "root" , "password")
这将建立连接。
解决方案 4:
我也尝试使用 pymysql(在我的 Win7 x64 机器上,Python 3.3),但运气不佳。我下载了 .tar.gz,解压,运行“setup.py install”,一切似乎都很好。直到我尝试连接到数据库,却得到了“KeyError [56]”。这个错误我在任何地方都找不到相关记录。
因此我放弃了 pymysql,而选择了Oracle MySQL 连接器。
它以安装包的形式提供,开箱即可使用。而且它似乎也有相当完善的文档。
解决方案 5:
概括
Mysqlclient是最好的替代方案(IMHO),因为它可以完美地与
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()
我找不到适用于 Python 3 的 mysqldb。
mysqldb 尚未移植
解决方案 6:
未经测试,但有一些二进制文件可用:
非官方 Windows 二进制文件
解决方案 7:
PyMySQL 也提供了类似 MySQLDb 的接口。你可以在初始化时尝试:
import pymysql
pymysql.install_as_MySQLdb()
另外,github 上还有针对 python3 的 mysql-python 端口。
https://github.com/davispuh/MySQL-for-Python-3
解决方案 8:
Oracle/MySQL 提供了官方的纯 Python DBAPI 驱动程序:http://dev.mysql.com/downloads/connector/python/
我已将其与 Python 3.3 一起使用,发现它效果很好。 也适用于 SQLAlchemy。
另请参阅此问题:搭乘 Python 3 列车还为时过早吗?
解决方案 9:
在我的 mac os maverick 上我尝试了这个:
在终端类型中:
1)mkdir -p ~/bin ~/tmp ~/lib/python3.3 ~/src 2)导出 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
之后进入python3解释器,输入:
导入 pymysql。如果没有错误,则表示安装成功。为了验证,请编写一个脚本来连接 mysql,格式如下:
# 一个简单的 MySQL 连接脚本 import pymysql db = pymysql.connect(host="localhost", user="root", passwd=" ", db="biblioteca") #当然,这是我的数据库的信息 #关闭连接 db.close()
给它命名(例如“con.py”)并将其保存在桌面上。在终端中输入“cd desk”,然后输入 $python con.py 如果没有错误,则表示您已连接到 MySQL 服务器。祝您好运!
解决方案 10:
CyMySQL
https://github.com/nakagami/CyMySQL
我已经在 Windows 7 上安装了 pip,使用 python 3.3 只需 pip install cymysql
(你不需要 cython)快速而轻松
解决方案 11:
这并不能完全回答我最初的问题,但我认为让大家知道我做了什么以及为什么做是很重要的。
我选择继续使用 Python 2.7 而不是 Python 3,因为 2.7 示例和模块在网络上很流行。
我现在使用 mysqldb 和 mysql.connector 来连接 Python 2.7 中的 MySQL。两者都很棒,运行良好。但我认为从长远来看 mysql.connector 最终会更好。
解决方案 12:
我在树莓派上使用带有 python3 的 cymysql,我只需通过以下方式安装: sudo pip3 install cython sudo pip3 install cymysql 其中 cython 不是必需的,但应该使 cymysql 更快
到目前为止,它运行良好,与 MySQLdb 非常相似
解决方案 13:
这是一个关于如何让 Python 3.7 与 Mysql 一起工作的快速教程,
感谢所有回答我问题的人
——希望这有一天能帮助到别人。----------------------------------------------------
我
的系统:
Windows 版本:Pro 64 位
要求..首先下载并安装这些...
1. 下载 Xampp..
https://www.apachefriends.org/download.html
2. 下载 Python
https://www.python.org/downloads/windows/
//方法
安装完成后先安装 xampp - 安装 Python 3.7。
安装完成后 - 重新启动 Windows 系统。
现在启动 xampp 并从控制面板启动 mysql 服务器。
打开 CMD 并在终端中输入以下内容来确认版本
c:>cd c:xamppmysqlin
c:xamppmysqlin>mysql -h localhost -v
Welcome to the MariaDB monitor. Commands end with ; or g.
Your MariaDB connection id is 2
Server version: 10.1.21-MariaDB mariadb.org binary distribution
Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.
这是检查 MYSQL 版本
c:xamppmysqlin>python
Python 3.7.0b3 (v3.7.0b3:4e7efa9c6f, Mar 29 2018, 18:42:04) [MSC v.1913 64 bit (AMD64)] on win32
这是检查 Python 版本
现在两者都已确认,在 CMD 中输入以下内容...
c:xamppmysqlin>pip install pymysql
pymysql 安装完成后,
在桌面或任何地方创建一个名为“testconn.py”的新文件,以便快速访问。
使用 sublime 或其他文本编辑器打开此文件并将其放入其中。
记得更改设置以反映您的数据库。
#!/usr/bin/python
import pymysql
pymysql.install_as_MySQLdb()
import MySQLdb
db = MySQLdb.connect(user="yourusernamehere",passwd="yourpasswordhere",host="yourhosthere",db="yourdatabasehere")
cursor = db.cursor()
cursor.execute("SELECT * from yourmysqltablehere")
data=cursor.fetchall()
for row in data :
print (row)
db.close()
现在在 CMD 中输入
c:Desktop>testconn.py
就是这样...您现在已经从 python 脚本完全连接到 mysql...
尽情享受吧...
解决方案 14:
请按照以下步骤操作:
导入 pymysql
安装
python -m pip 安装 PyMySQL
python -m pip 安装 PyMySQL[rsa]
python -m pip 安装 PyMySQL[ed25519]
最后再次尝试安装pip install mysql-connector。
这些步骤解决了我的错误
解决方案 15:
导入 pymysql
打开数据库连接
db = pymysql.connect(“localhost”,“root”,“”,“装饰”)
使用 cursor() 方法准备游标对象
光标 = db.cursor()
sql =“从项目中选择*”
游标.执行(sql)
获取列表列表中的所有行。
results = cursor.fetchall() for row in results: item_title = row[1] comment = row[2] print ("项目标题如下 = %s,评论如下 = %s" %
(item_title, comment))
扫码咨询,免费领取项目管理大礼包!