mysql-connector-python支持什么版本
mysql-connector-python 支持的版本要同时看 MySQL Server 版本和 Python 版本:截至 2026 年 5 月,最新 GA 下载版本为 9.7.0,官方推荐用于 MySQL Server 8.0 及更高版本;如果你的数据库还是 MySQL 5.7,应优先考虑 Connector/Python 8.1.0 到 8.3.0;如果是 MySQL 5.6 或 5.5,只能使用 8.0 系列或更老版本,并且不建议用于新项目。判断是否兼容的最直接标准是:先查数据库版本,再查 Python 版本,最后选择两者同时覆盖的 mysql-connector-python 版本。
版本兼容速查
选择 mysql-connector-python 版本时,不要只看 pip 能不能安装成功。安装成功只说明包和当前 Python 解释器匹配,不代表它适合你的 MySQL Server。可执行的判断步骤是:在数据库执行 SELECT VERSION();,在应用服务器执行 python --version,然后按下表匹配。

| mysql-connector-python 版本 | 支持的 MySQL Server | 支持的 Python 版本 | 适用场景 |
|---|---|---|---|
| 9.5.0 及更高版本,包括 9.7.0 | MySQL 8.0 及更高版本 | Python 3.10、3.11、3.12、3.13、3.14 | 新项目、MySQL 8.0/8.4/9.x、需要长期维护的生产环境 |
| 9.1.0 至 9.4.0 | MySQL 8.0 及更高版本 | Python 3.9、3.10、3.11、3.12、3.13 | 仍在 Python 3.9 的项目,但数据库已是 MySQL 8.0+ |
| 8.4.0 和 9.0.0 | MySQL 8.0 及更高版本 | Python 3.8、3.9、3.10、3.11、3.12 | 从 8.0 系列迁移到新版连接器的过渡期 |
| 8.1.0 至 8.3.0 | MySQL 5.7 及更高版本 | Python 3.8、3.9、3.10、3.11;8.2.0+ 支持 Python 3.12 | 数据库还停留在 MySQL 5.7,但应用已使用 Python 3.x |
| 8.0 系列 | MySQL 5.5、5.6、5.7、8.0 | 主要覆盖 Python 3.7 至 3.11;部分早期小版本覆盖更老 Python | 老系统维护、MySQL 5.5/5.6 遗留项目 |
注意事项是:MySQL 5.7 已经属于遗留环境,MySQL 5.5 和 5.6 更不适合新开发。如果你现在问“mysql-connector-python支持什么版本”,默认答案应优先按 MySQL 8.0+ 和 Connector/Python 9.x 来规划;只有在数据库无法升级时,才反向选择 8.3 或 8.0 系列。
新项目怎么选版本
新项目的可执行选择标准很简单:MySQL Server 是 8.0 或更高版本,并且 Python 是 3.10 到 3.14,就直接安装最新版 mysql-connector-python。命令如下:
python -m pip install -U mysql-connector-python
如果你的生产环境要求可重复构建,不要让依赖无限漂移,可以在依赖文件中固定一个主版本范围,例如:
mysql-connector-python>=9.5,<10
场景差异主要在 Python 版本:Python 3.9 项目不能直接按 9.5+ 的矩阵选择,应使用 9.1.0 到 9.4.0,或者升级 Python 到 3.10 以上。Python 3.13 及更高版本还要注意 SSL 证书校验更严格,连接远程数据库时如果证书链不符合规范,可能出现本地能连、升级 Python 后不能连的情况。
MySQL 5.7 还在用怎么办
如果数据库版本是 MySQL 5.7,优先选择 mysql-connector-python 8.1.0 到 8.3.0。可执行安装方式是先固定版本,再跑连接测试:
python -m pip install "mysql-connector-python==8.3.0"
判断标准是:应用 Python 版本最好在 3.8 到 3.12 之间,数据库执行 SELECT VERSION(); 返回 5.7.x,连接测试、查询、事务提交和字符集读写都正常。不要只测试能否建立连接,还应至少测试一次参数化查询、一次中文写入、一次事务回滚。
注意事项是:如果你的应用已经升级到 Python 3.13 或 3.14,而数据库仍是 MySQL 5.7,版本组合会变得尴尬。此时更稳的路线是升级 MySQL 到 8.0+,再使用 Connector/Python 9.5+;如果暂时不能升级数据库,就把运行时 Python 保持在 3.12 或更低,并明确把连接器锁定在 8.3.0。
MySQL 5.6 和 5.5 的兼容判断
MySQL 5.6 或 5.5 项目应视为遗留系统。可执行做法是使用 8.0 系列连接器,例如:
python -m pip install "mysql-connector-python==8.0.33"
判断标准不是“能不能 pip install”,而是业务 SQL 是否仍然兼容旧 MySQL 的认证方式、字符集、SQL mode 和时间类型处理。Connector/Python 明确不支持 MySQL 4.1 之前的旧认证方式,因此更老的数据库即使端口开放,也不应期望正常工作。
场景差异在于维护目标:如果只是短期修复报表脚本,可以固定 8.0.x 并减少改动;如果是持续运行的 Web 服务,应把数据库升级排进计划。注意不要在这种老数据库上盲目升级到 mysql-connector-python 9.x,因为 9.x 的官方兼容目标已经转向 MySQL 8.0 及更高版本。
MariaDB 能不能用
很多人把 mysql-connector-python 和 MariaDB 一起问,但这里要分清“协议上可能可用”和“官方兼容矩阵列明支持”。Oracle 的 MySQL Connector/Python 官方版本表按 MySQL Server 列出,并不把 MariaDB 作为同等支持目标列在表中。可执行判断是:如果你连接的是 MariaDB,先在测试环境跑完整回归,包括认证插件、SSL、事务、分页查询、时间类型、JSON 字段和批量写入。
如果只是普通 SQL、账号密码认证和基础 CRUD,MariaDB 10.x/11.x 在很多场景下可能可以通过 MySQL 协议连接;但如果使用 MariaDB 特有语法、特有数据类型、Galera 集群行为或差异化认证方式,建议优先评估 MariaDB 官方的 mariadb Python 包。注意事项是:不要把“能连上”写成“官方支持”,生产环境依赖矩阵应明确标注数据库发行版。
安装后如何验证
安装完成后,先检查连接器版本:
python -c "import mysql.connector; print(mysql.connector.__version__)"
再用最小连接脚本验证数据库版本、查询和关闭连接:
import mysql.connector
connection = mysql.connector.connect(
host="localhost",
user="root",
password="password",
database="mydb"
)
cursor = connection.cursor()
cursor.execute("SELECT VERSION()")
print(cursor.fetchone())
cursor.close()
connection.close()
判断标准是脚本能输出数据库版本,并且没有认证、SSL、字符集或超时错误。连接远程数据库时,把 host 改成域名或 IP;如果使用 SSL,不要为了省事直接关闭 SSL。只有在本地开发、受控内网或临时排障时,才考虑 ssl_disabled=True,生产环境应优先配置合规证书。
常见问题
mysql-connector-python 最新版支持 MySQL 5.7 吗?
不建议这样搭配。当前 9.5.0 及更高版本的官方目标是 MySQL 8.0 及更高版本。MySQL 5.7 项目应优先使用 8.1.0 到 8.3.0,并把版本写进依赖文件,避免部署时自动升级到 9.x。
Python 3.12 应该装哪个 mysql-connector-python?
如果数据库是 MySQL 8.0+,可以用 9.5+ 或当前最新版;如果数据库是 MySQL 5.7,可以用 8.2.0 或 8.3.0。判断标准是数据库版本和 Python 版本同时满足,而不是只看 Python 3.12。
怎么查看我项目里装的 mysql-connector-python 版本?
执行 python -c "import mysql.connector; print(mysql.connector.__version__)"。如果项目使用虚拟环境,必须先进入对应虚拟环境再执行,否则看到的可能是系统 Python 里的版本。
mysql-connector-python 和 PyMySQL 选哪个?
如果你希望使用 Oracle 官方 MySQL 连接器,并且项目目标是 MySQL Server,优先选择 mysql-connector-python。PyMySQL 是纯 Python 第三方驱动,部署简单但不是 Oracle 官方连接器。判断标准是团队是否要求官方支持、是否依赖特定 MySQL 新特性、以及现有项目已经使用哪套驱动。
升级连接器前最容易漏测什么?
最容易漏测 SSL、认证插件、中文字符集、时区、批量插入和异常处理。升级前应在测试环境执行真实业务 SQL,而不只是跑一条 SELECT 1。如果 Python 同时从 3.12 升到 3.13,还要额外检查证书是否符合更严格的 SSL 校验要求。
参考文献
原创文章,作者:王利头,如若转载,请注明出处:https://www.wanglitou.cn/article_14564.html
微信扫一扫