Documentation Home
MySQL 连接器/ODBC 发行说明  / MySQL 连接器/ODBC 版本 8.0 中的更改  /  MySQL Connector/Python 8.0.29 的变化(2022-04-26,全面上市)

MySQL Connector/Python 8.0.29 的变化(2022-04-26,全面上市)

添加或更改的功能

  • 当连接使用 ssl_disabled=True(或 X 协议连接使用 ssl-mode='DISABLED')禁用 SSL 模式时,指定其他 TLS/SSL 连接选项会导致连接器/Python 抛出错误。通过此更改,现在禁用 SSL 意味着忽略那些额外的 TLS/SSL 连接选项。例如,使用 ssl_disabled=True 定义 tls_version 会在以前版本的连接器/Python 中引发错误。

  • Connector/Python 的 c-extension 实现现在支持 FIDO Pluggable Authentication,并添加了一个新的 fido_callback连接选项。

  • c-extension 实现中使用的 Protobuf 已更新至版本 3.19.4。

  • 删除了 Python 3.6 支持。

    在 EL7、EL8 和 SUSE 上:python3-protobufRPM 包在这些平台上不适用于 Python 3.8,因此从 RPM 规范中删除了依赖项;相反,它必须与pip install protobuf.

  • 扩展了 Kerberos 身份验证协议支持,以包括使用纯 Python 连接器/Python 实现的 Windows 客户端。

  • Django 支持现在允许在 Django 后端使用自定义类进行数据类型转换,通常用于转换非默认数据类型。作为 mysql.connector.django.base.DjangoMySQLConverter 的子类实现。

修正错误

  • 连接到服务器后,Connector/Python 执行了一些 SHOW [SESSION] VARIABLES 语句来检索系统变量值。此类语句涉及锁定服务器,因此现在避免使用 SELECT @@var_name 语句。(缺陷号 33861549)

  • 对于 c-ext 实现,使用表达式作为不带别名的列会引发 UnicodeDecodeError 错误。(缺陷号 33747585)

  • 现在识别已弃用的 'utf8mb3' 字符集,因为从 MySQL 8.0.28 开始,'utf8' 别名在信息架构中显示 'utf8mb3' 并带有 SHOW 语句。有关其他信息,请参阅utf8 字符集(utf8mb3 的别名)。(缺陷号 33729842)

  • 使用consume_results=True时,如果有待获取的结果,C 扩展实现会使用一些方法(例如 cmd_refresh()、reset_session() 和 commit())抛出错误。现在,处理和使用未读结果。(漏洞 #21528553)

  • 当连接到 5.7.35 以下版本的 MySQL 服务器时,由于 Connector/Python 使用的默认排序规则,服务器无法执行 change_user 命令;通过在关闭池连接时引发异常来影响连接池功能的问题。现在连接器/Python 重新连接而不是发出异常。(错误#104569,错误#33203161)

  • 在 Windows 上,使用带有 prepared=True 的 C 扩展,BIGINT 数据被视为 MYSQL_TYPE_LONG 而不是 MYSQL_TYPE_LONGLONG;这引发了值超过 2147483647 的溢出错误。(Bug #96588,Bug #105254,Bug #30203754,Bug #33481203)

  • 如果解码字节数组失败,现在返回原始字节或字节数组,而不是引发 UnicodeDecodeError 错误。感谢 Meik Milevczik 提供补丁。(缺陷 #93065,缺陷 #28877987)

  • 添加了对十进制解析的支持。感谢 Luke Weber 提供的补丁。(缺陷 #81571,缺陷 #23338623)

  • 添加了上下文管理器以打开选项文件模块中的文件以正确关闭。感谢 Vilnis Termanis 提供补丁。(漏洞 #81519,漏洞 #23324748)

  • 使用连接器/Python 的 c 扩展实现时,尝试将 PythonByteArray数据插入二进制表列失败。(错误#77822,错误#21498719)

  • 添加了对 float 到 MySQL 转换中 NaN 的支持;它现在设置为None。(缺陷 #74934,缺陷 #20065830)