Documentation Home
MySQL 连接器/ODBC 发行说明  / MySQL 连接器/ODBC 版本 8.0 中的更改  /  MySQL Connector/NET 8.0.11 的变化(2018-04-19,全面上市)

MySQL Connector/NET 8.0.11 的变化(2018-04-19,全面上市)

添加或更改的功能

  • 文档存储: Connector/NET 现在支持 MySQL 8.0 版本系列中引入 NOWAIT锁定选项(请参阅SELECT 语句)。对连接器/NET API 进行了以下更改: SKIP_LOCKED

    • 添加了LockContention枚举(具有值Default=0, NoWait=1SkipLocked=2)。Default枚举成员表示之前等待行锁释放的行为 。

    • 修改了现有的LockShared()LockExclusive()方法签名以包含新 LockContention参数。这两种方法都是 MySqlX.XDevAPI.CRUD.FindStatementMySqlX.XDevAPI.Relational.TableSelectStatement 类的成员。

    • 使用示例:

      // Default behavior – waits for the row locks to release
      LockShared()
      LockShared(LockContention.Default)
      
      LockExclusive()
      LockExclusive(LockContention.Default)
      
      // New – fails if the rows are locked
      LockShared(LockContention.NoWait)
      LockExclusive(LockContention.NoWait)
      
      // New – succeeds excluding the locked rows from the result
      LockShared(LockContention.SkipLocked)
      LockExclusive(LockContention.SkipLocked)
  • 文档存储:以前,当没有_id属性的文档被添加到集合中时,Connector/NET 会自动为它们生成 ID。现在服务器生成_id属性,除非文档已经包含一个。可以使用 Result.GeneratedIds返回列表的新属性获取由文档添加操作生成的 ID。

    此功能需要 MySQL 8.0 GA 服务器。如果服务器不支持文档 ID 生成,则文档添加操作会返回一个错误,指示缺少文档 ID。

    不兼容:该GeneratedIds属性替换了现在已删除 的DocumentId和 属性。DocumentIds

  • 文档存储:添加了对 SHA256_MEMORY 身份验证机制的支持,以便为具有 caching_sha2_password 的用户帐户启用非 PLAIN 不安全连接(无 SSL),这是 MySQL 8.0 版本系列中引入的默认身份验证插件。与此支持相关的更改包括:

    • auth连接字符串选项 的新同义词:authenticationauthentication mode(请参阅 仅适用于 X 协议的选项)。

    • MySqlAuthenticationMode一种新的枚举 认证模式 : SHA256_MEMORY. 此外,该 Default成员现在有一个新的同义词: Auto=0

    • 一个新类: MySql.Data.MySqlClient.Authentication.Sha256MemoryAuthenticationPlugin.

  • caching_sha2_password添加了对 MySQL 8.0 版本系列中引入 的新 填充机制的支持。当满足以下所有条件时,将启用新的填充机制:

    • 用户帐户是使用 caching_sha2_password身份验证插件设置的。

    • SSL 已明确禁用 ( SslMode=none)。

    • 连接选项已AllowPublicKeyRetrieval启用 ( AllowPublicKeyRetrieval=true)。

    启用后,新的填充机制用于在 RSA 密钥加密期间对密码进行编码,这会应用正确的填充以匹配服务器。

修正错误

  • 尝试打开 MySQL Web 配置工具,正确安装了 Connector/NET 和 MySQL for Visual Studio 先决条件,显示错误消息而不是打开该工具。(错误#27457398,错误#88544)

  • 无法使用 Microsoft Visual Studio 2015 中的 NuGet 包安装连接器/NET。(缺陷 #27251839,缺陷 #88838)

  • 当小数列定义为零小数位时,例如 ,该方法返回 DECIMAL(8, 0)的字段值会 减一。例如,它返回 7 而不是预期的 8。(漏洞 #26954812,漏洞 #88058)NumericPrecisionMySqlDataReader.GetSchemaTable

  • 该方法返回的数据表 为和数据类型的字段 MySqlDataReader.GetSchemaTable分配了一个不准确的零值 ,并且还指出该 字段值是应该返回的。(错误#26876592,错误#87876)ColumnSizeLONGTEXTLONGBLOBIsLongfalsetrue

  • 当与不同的字符集一起使用时,该MySqlDataReader.GetSchemaTable方法返回不同的列大小值。(错误#26876582,错误#87868)

  • 对与配置为使用 TLSv1.2 的服务器建立安全连接的支持受到外部因素的限制。(漏洞#25689154)

  • 包含 URI 类型字符串格式的 TLS/SSL 连接参数的连接字符串生成异常,而不是与 X 协议建立连接。(漏洞 #24510329)

  • 尝试使用 EF5 或 EF6 从 MySQL 5.7 数据库生成 Entity Framework 模型会产生一个异常,该异常会阻止操作生成预期的模型。(缺陷 #22173048,缺陷 #79163)