Documentation Home
MySQL 连接器/ODBC 发行说明  / MySQL 连接器/ODBC 版本 8.0 中的更改  /  MySQL Connector/Python 8.0.12 的变化(2018-07-27,全面上市)

MySQL Connector/Python 8.0.12 的变化(2018-07-27,全面上市)

弃用和移除说明

  • 弃用了Row.get_string()支持__getitem__. (漏洞 #26834200,漏洞 #87777)

  • 为了提高对 X DevAPI 的遵从性,进行了以下连接器/Python 更改:

    • DatabaseObject:弃用: am_i_real()who_am_i()。补充: get_session()session财产。

    • Collection.modify(): 弃用: limit(x, y)的第二个参数 where(condition), 和 change(CollectionField, ExprOrLiteral). 更改:modify(condition)条件现在是强制性的。

    • Collection.find(): 弃用: limit(x, y)的第二个参数和 where(condition)。补充: limit(x).offset(y)

    • Collection.remove(): 弃用: limit(x, y)的第二个参数和 where(condition). 更改: modify(condition)条件现在是强制性的。

    • Table.select(): 弃用: limit(x, y)的第二个参数和 sort(). 补充: limit(x).offset(y)

    • Table.delete(): 弃用: limit(x, y)的第二个参数和 sort(). 删除: delete(x)的参数,转而使用 where()。补充: order_by()

    • Table.update(): 弃用: limit(x, y)的第二个参数和 sort()方法。补充: order_by()

    • Session:补充: get_schemas()

    • Result:弃用: get_document_id()get_generated_insert_id()。迁: get_affected_items_count()上课 BaseResult

    • RowResult:补充: get_columns()

    • SqlResult:补充: has_data()

    • Column: 重命名 ColumnMetaDataColumn. 添加的属性: schema_name, table_name, table_label, column_name, column_label, type, length, fractional_digits, collation_name, character_set_name

安装注意事项

  • 由于 Microsoft Visual C++ 2017 Redistributable 安装程序删除了标识其安装的 Microsoft Visual C++ 2015 Redistributable 注册表项,如果同时安装了 Microsoft Visual C++ 2015 Redistributable 和 Microsoft Visual C++ 2017 Redistributable,则独立的 MySQL MSI 可能无法检测到 Microsoft Visual C++ 2015 Redistributable。解决方案是通过 Windows 控制面板修复 Microsoft Visual C++ 2017 Redistributable,重新创建运行时检测所需的注册表项。与独立的 MSI 不同,适用于 Windows 的 MySQL 安装程序包含检测问题的解决方法。(缺陷 #28345281,缺陷 #91542)

添加或更改的功能

  • 删除了 MySQL 结构支持。

  • 用于在 Oracle Linux 7 上安装 ARM 64 位 (aarch64) 连接器/Python 二进制文件的 RPM 包现在可在 MySQL Yum 存储库中获得并可直接下载。

    此 ARM 版本的已知限制:您必须启用 Oracle Linux 7 软件集合存储库 (ol7_software_collections) 才能安装此程序包,并且还必须调整 libstdc++7 路径。有关更多详细信息,请参阅 Yum 的平台特定说明

修正错误

  • 默认字符集从“utf8”(已弃用的“utf8mb3”字符集的别名)更改为“utf8mb4”。(缺陷号 28188883)

  • 修复了 Django 2.0 和 MySQL 8.0 之间的日期时间转换兼容性。

    解决方法是通过在 Django 的数据库选项中设置“use_pure=True”来使用 Connector/Python 的纯 Python 实现而不是 C 扩展。(缺陷 #27962293,缺陷 #90541)

  • 使用连接器/Python 未知的排序规则进行连接会产生未知字符集错误。它现在可以正确引用未知排序规则。(漏洞#27277937)

  • get_row()和 行为与连接器 的get_rows()C(与 CMySQLConnection 的连接)和纯 Python(与 MySQLConnection 的连接)实现不同。已解决的差异是:

    • 使用纯 Python 实现,所有数据都以字节数组的形式返回;而 C 实现使用 CMySQLConnection (cext) 将所有数据作为 Python 类型返回。两者现在都返回 Python 类型。

    • 使用纯 Python 实现,他们返回一个带有 (row(s), eof) 的元组,但使用 C 扩展,他们只返回行。现在两个实现都返回元组形式;(行,eof)。

    • 对于返回结果的查询,对于纯 Python,警告计数是返回的 eof 的一部分。对于 C 扩展,警告计数只能使用连接对象的 warning_count 属性。相关的是,warning_count 属性在纯 Python 实现中不可用。现在,结果包括两种实现的警告计数。

    • 使用纯 Python 获取行会自动将 unread_rows 属性设置为 False。对于 C 扩展,需要显式调用连接对象的 free_result() 方法。相关的是,free_result() 仅适用于 C 扩展。现在,两种实现都将 unread_rows 设置为 False。

    (错误#22367904、错误#27411275、错误#27991948、错误#27802700、错误#28133321、错误#27650437、错误#79623、错误#89305、错误#90799、错误#90585、错误#90292、错误#91107)