[英]How can I connect to MySQL in Python 3 on Windows?
我在 Windows 上使用 ActiveState Python 3 并想连接到我的 MySQL 数据库。 我听说mysqldb
是要使用的模块。 我找不到 Python 3 的mysqldb
。
mysqldb
的二进制文件是否有可用的存储库? 如何在 Windows 上的 Python 3 中连接到 MySQL?
目前有几个选项可以将 Python 3 与 mysql 一起使用:
https://pypi.python.org/pypi/mysql-connector-python
https://pypi.python.org/pypi/pymysql
pymysql.install_as_MySQLdb()
后,几乎完全兼容MySQLdb
https://pypi.python.org/pypi/cymysql
https://pypi.python.org/pypi/mysqlclient
python-mysqldb
和python3-mysqldb
包。您可能应该改用pymysql - Pure 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()
如果你想先使用 MySQLdb,你必须通过在 Windows 中输入 cmd 在你的电脑上安装 pymysql
pip install pymysql
然后在 python shell 中,键入
import pymysql
pymysql.install_as_MySQLdb()
import MySQLdb
db = MySQLdb.connect("localhost" , "root" , "password")
这将建立连接。
我还尝试使用 pymysql(在我的 Win7 x64 机器上,Python 3.3),但运气不佳。 我下载了 .tar.gz,解压,运行“setup.py install”,一切看起来都很好。 直到我尝试连接到数据库,并得到“KeyError [56]”。 我无法在任何地方找到记录的错误。
所以我放弃了 pymysql,我选择了Oracle MySQL 连接器。
它是一个安装包,开箱即用。 而且它似乎也有很好的记录。
总结
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()
我找不到 Python 3 的 mysqldb。
mysqldb 尚未移植
未经测试,但有一些二进制文件可用:
PyMySQL 也提供类似 MySQLDb 的接口。 您可以尝试初始化:
import pymysql
pymysql.install_as_MySQLdb()
在 github 上还有一个用于 python3 的 mysql-python 端口。
Oracle/MySQL 提供了官方的纯 Python DBAPI 驱动程序: http ://dev.mysql.com/downloads/connector/python/
我已经将它与 Python 3.3 一起使用,并发现它工作得很好。 也适用于 SQLAlchemy。
另见这个问题: 现在跳上 Python 3 火车还为时过早吗?
在我的 mac os 特立独行上,我试试这个:
在终端类型中:
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 desktop”,然后输入 $python con.py 如果没有错误,你就连接上了 MySQL 服务器。 祝你好运!
这并不能完全回答我最初的问题,但我认为让每个人都知道我做了什么以及为什么这样做很重要。
我选择继续使用 python 2.7 而不是 python 3,因为 2.7 示例和模块在网络上普遍存在。
我现在使用 mysqldb 和 mysql.connector 在 Python 2.7 中连接到 MySQL。 两者都很棒,而且效果很好。 然而,我认为 mysql.connector 从长远来看最终会更好。
CyMySQL https://github.com/nakagami/CyMySQL
我已经在 Windows 7 上安装了 pip,使用 python 3.3 只需 pip install cymysql
(你不需要cython)快速无痛
我在树莓派上使用带有 python3 的 cymysql 我只是通过以下方式安装: sudo pip3 install cython sudo pip3 install cymysql 其中 cython 不是必需的,但应该使 cymysql 更快
到目前为止,它就像一个魅力,与 MySQLdb 非常相似
这是一个关于如何让 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:\xampp\mysql\bin
c:\xampp\mysql\bin>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:\xampp\mysql\bin>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:\xampp\mysql\bin>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......
享受...
import pymysql
db = pymysql.connect("localhost","root","","ornament")
cursor = db.cursor()
sql = "SELECT * FROM item"
cursor.execute(sql)
results = cursor.fetchall()
for row in results:
item_title = row[1]
comment = row[2]
print ("Title of items are the following = %s,Comments are the following = %s" % \
(item_title, comment))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.