如何在Windows上用Python 3连接MySQL?

162 投票
15 回答
272789 浏览
提问于 2025-04-16 11:35

我在Windows上使用ActiveState Python 3,想要连接到我的MySQL数据库。听说mysqldb是一个可以用的模块。不过,我找不到适用于Python 3的mysqldb

有没有可以找到mysqldb二进制文件的库?我该如何在Windows上用Python 3连接到MySQL呢?

15 个回答

11

如果你想使用 MySQLdb,首先需要在你的电脑上安装 pymysql。你可以在 Windows 的命令提示符(cmd)里输入以下内容:

pip install pymysql

然后在 Python 的命令行界面里输入:

import pymysql
pymysql.install_as_MySQLdb()
import MySQLdb
db = MySQLdb.connect("localhost" , "root" , "password")

这样就可以建立连接了。

73

你可能应该使用pymysql - 纯Python的MySQL客户端
它可以在Python 3.x上运行,而且没有任何额外的依赖。

这个纯Python的MySQL客户端通过直接与服务器进行二进制的客户端/服务器协议来提供一个数据库API,让你可以和MySQL数据库进行交互。

示例:

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()
296

现在有几种方法可以在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-mysqldbpython3-mysqldb这两个包。

基准测试在这里可以查看:https://github.com/methane/mysql-driver-benchmarks

撰写回答