-
文档存储: Connector/NET 现在支持 MySQL 8.0 版本系列中引入
NOWAIT
和锁定选项(请参阅SELECT 语句)。对连接器/NET API 进行了以下更改:SKIP_LOCKED
添加了
LockContention
枚举(具有值Default=0
,NoWait=1
和SkipLocked=2
)。Default
枚举成员表示之前等待行锁释放的行为 。修改了现有的
LockShared()
和LockExclusive()
方法签名以包含新LockContention
参数。这两种方法都是MySqlX.XDevAPI.CRUD.FindStatement
和MySqlX.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
连接字符串选项 的新同义词:authentication
和authentication 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)NumericPrecision
MySqlDataReader.GetSchemaTable
该方法返回的数据表 为和数据类型的字段
MySqlDataReader.GetSchemaTable
分配了一个不准确的零值 ,并且还指出该 字段值是应该返回的。(错误#26876592,错误#87876)ColumnSize
LONGTEXT
LONGBLOB
IsLong
false
true
当与不同的字符集一起使用时,该
MySqlDataReader.GetSchemaTable
方法返回不同的列大小值。(错误#26876582,错误#87868)对与配置为使用 TLSv1.2 的服务器建立安全连接的支持受到外部因素的限制。(漏洞#25689154)
包含 URI 类型字符串格式的 TLS/SSL 连接参数的连接字符串生成异常,而不是与 X 协议建立连接。(漏洞 #24510329)
尝试使用 EF5 或 EF6 从 MySQL 5.7 数据库生成 Entity Framework 模型会产生一个异常,该异常会阻止操作生成预期的模型。(缺陷 #22173048,缺陷 #79163)