MySQL Connector/NET Release Notes
The TLSv1 and TLSv1.1 connection protocols were previously deprecated in Connector/NET 8.0.26 and support for them is removed starting with this release. Connections can be made using the more-secure TLSv1.2 and TLSv1.3 protocols. (WL #14811)
Connector/NET now supports .NET 6 and continues to support a range of frameworks (see Connector/NET Versions). (WL #14734)
Connector/NET now fully supports EF Core 6.0 for applications that target .NET 6 exclusively. Applications that target .NET Framework (or any .NET Standard version) cannot use this feature. (WL #14735)
.NET applications now can establish connections using
multifactor authentication, such that up to three passwords can
be specified at connect time. The new
Password1
, Password2
, and
Password3
connection options are available
for specifying the first, second, and third multifactor
authentication passwords, respectively.
Password1
is a synonym for the existing
Password
option.
(WL #14653)
An insert query could emit a malformed communication packet error. To prevent the error, Connector/NET now omits unnecessary parameters when handling query attributes. (Bug #33380176)
A multihost connection attempt could fail with the first host, emit an error message, and then succeed with the next host. This fix omits the initial error message to streamline the connection behavior. (Bug #30581109)
Connector/NET did not support the utf8mb3
character
set, which could cause compatibility issues with other software
components.
(Bug #105516, Bug #33556024)
When reading zero time values from TIME NOT
NULL
columns, the data reader could return a
NULL
value instead of zero, causing
subsequent GetTimeSpan()
calls to fail. Now,
if Connector/NET encounters NULL
when reading the
column value, it resets the value to zero time
('00:00:00'
).
(Bug #105209, Bug #33470147)
Microseconds specified in a time-span value were calculated incorrectly for prepared statements. (Bug #103801, Bug #32933120)
Connector/NET now uses the C# language’s implicit conversion to an enumeration when it creates a parameter with a value equal to zero. (Bug #101253, Bug #32050204)
References: This issue is a regression of: Bug #25573071.
Attempts to execute the GetStream
method of
the MySqlDataReader
class returned only
exceptions. Now, the GetStream(int i)
method
implementation returns the expected result for
BINARY
and GUID
type
columns.
(Bug #93374, Bug #28980953)
The calculation used to determine the length of connection attribute values could produce the wrong format in MySQL login packets. (Bug #92789, Bug #28824591)
A complete IConvertible
implementation for
the MySqlDateTime
class was missing from the
.NET provider.
(Bug #82661, Bug #24495619)
Default values being used could cause type inconsistencies when
Connector/NET created a parameter. This fix modifies the
MySqlParameter
constructor to set
DbType
and MySqlDbType
as
strings.
(Bug #81586, Bug #23343947)
Batch inserts that exceeded the
max_allowed_packet
value were not processed
and skipping the insert attempt did not emit an error.
(Bug #80693, Bug #22913833)
A call to
MySqlConnection::GetSchema("IndexColumns")
unexpectedly retrieved a NULL
value and
emitted an error when the database included a full-text index.
(Bug #75301, Bug #20266825)
When Connector/NET cloned a parameter, the
SourceColumnNullMapping
property was copied
with the wrong value.
(Bug #74533, Bug #20056757)
When performing a batched insert using
MySqlDataAdapter
, the
MySqlCommand.GetCommandTextForBatching()
method queried @@sql_mode
for each insert.
This fix eliminates the redundant actions and modifies the
behavior to use the sql_mode
property, which
is obtained at the beginning of the connection.
(Bug #71626, Bug #20328929)