繁体   English   中英

如何在 Windows 上的 Python 3 中连接到 MySQL?

[英]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

  • Oracle 官方支持
  • 纯蟒蛇
  • 有点慢
  • 与 MySQLdb 不兼容

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

  • 纯蟒蛇
  • 比 mysql-connector 快
  • 调用pymysql.install_as_MySQLdb()后,几乎完全兼容MySQLdb

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

  • pymysql 的分支,带有可选的 C 加速

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

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

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

您可能应该改用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 尚未移植

未经测试,但有一些二进制文件可用:

非官方 Windows 二进制文件

PyMySQL 也提供类似 MySQLDb 的接口。 您可以尝试初始化:

import pymysql
pymysql.install_as_MySQLdb()

在 github 上还有一个用于 python3 的 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 特立独行上,我试试这个:

之后,输入python3解释器并输入:

  1. 导入 pymysql 如果没有错误,您的安装就可以了。 为了验证,编写一个脚本以使用以下形式连接到 mysql:

  2. # 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() 方法准备一个游标对象

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM