Documentation Home
MySQL 连接器/ODBC 发行说明  / MySQL 连接器/ODBC 版本 8.0 中的更改  /  MySQL Connector/C++ 8.0.12 的变化(2018-07-27,正式发布)

MySQL Connector/C++ 8.0.12 的变化(2018-07-27,正式发布)

安装注意事项

  • 由于 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)

包装说明

  • 用于在 Oracle Linux 7 上安装 ARM 64 位 (aarch64) Connector/C++ 二进制文件的 RPM 包现已在 MySQL Yum 存储库中提供并可直接下载。

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

  • Connector/C++ 的安装程序现在以这些格式提供:MSI 包 (Windows);RPM 包 (Linux);DMG 包 (macOS)。请参阅从二进制分发安装连接器/C++

安全说明

  • yaSSL 不再包含在连接器/C++ 源代码分发中。wolfSSL 可用作具有 GPLv2 兼容许可证的功能等效替代方案。另外,wolfSSL(和OpenSSL一样)支持TLSv1.2协议,而yaSSL不支持。

    要使用 wolfSSL 构建连接器/C++,请使用 CMake选项,其中 指示 wolfSSL 源的位置。有关详细信息,请参阅 源安装系统先决条件连接器/C++ 源配置选项-DWITH_SSL=path_name path_name

X DevAPI 注释

  • 连接器/C++ 现在支持NOWAITSKIP LOCKED锁定争用模式,用于 CRUD 查找/选择操作lockExclusive()lockShared()子句(请 参阅使用 NOWAIT 和 SKIP LOCKED 锁定读取并发),以及默认的锁定争用模式。下面的列表列出了允许的常量。对于每一项,第一个和第二个常量分别适用于 X DevAPI 和 X DevAPI for C。

    • LockContention::DEFAULT, LOCK_CONTENTION_DEFAULT: 阻塞查询,直到现有的行锁被释放。

    • LockContention::NOWAIT, LOCK_CONTENTION_NOWAIT: 如果不能立即获得锁,则返回错误。

    • LockContention::SKIP_LOCKED, LOCK_CONTENTION_SKIP_LOCKED: 立即执行查询,从查询中排除被锁定的项。

    对于 X DevAPI 和 X DevAPI for C 应用程序,锁定模式方法接受这些锁定争用常量作为参数。对于 X DevAPI 应用程序,可以像以前一样在没有此参数的情况下调用锁定模式方法;这相当于传递了一个锁模式DEFAULT

    有关详细信息,请参阅 使用锁定

  • Connector/C++ 现在支持SHA256_MEMORY 使用 X 协议的连接身份验证机制。对于 X DevAPI 应用程序, SessionOption::AUTH支持新值 AuthMethod::SHA256_MEMORY。对于 C 应用程序的 X DevAPI,会话选项 MYSQLX_OPT_AUTH支持新值 MYSQLX_AUTH_SHA256_MEMORY。这些新值请求sha256_memory 在创建会话时使用身份验证机制。

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

    • getAffectedItemsCount()已从 Result移至 Result_common

    • Collection.modify(condition).arrayDelete() 去掉了。

    • getAffectedRowsCount()去掉了。改用 getAffectedItemsCount()

    • getWarningCount()更名为 getWarningsCount().

修正错误

  • utf8mb4字符数据处理不正确。(错误号 28240202)

  • Session创建有内存泄漏。(漏洞#27917942)

  • 当配置为使用旧版连接器构建连接器/C++ 时, CMake没有考虑该 MYSQL_CONFIG_EXECUTABLE选项。(缺陷 #27874173,缺陷 #90389)

  • 创建会话时对未知主机的错误处理不当可能会导致应用程序意外退出。(漏洞#27868302)

  • 对于mysqlx_row_fetch_one()超过最大数据包大小的大型结果集,X DevAPI for C 函数可能无法返回。现在这样的结果集会产生错误。(漏洞#27732224)