MySQL Blog Archive
For the latest blogs go to
MySQL Connector/NET 8.0.22 has been released

Dear MySQL users,

MySQL Connector/NET 8.0.22 is the latest General Availability release of
the MySQL Connector/NET 8.0 series. This version supports .NET 5.0
and the X DevAPI, which enables application developers to write code
that combines the strengths of the relational and document models using
a modern, NoSQL-like syntax that does not assume previous experience
writing traditional SQL.

To learn more about how to write applications using the X DevAPI, see For more
information about how the X DevAPI is implemented in Connector/NET, see
NuGet packages provide functionality at a project level. To get the
full set of features available in Connector/NET such as availability
in the GAC, integration with Visual Studio’s Entity Framework Designer
and integration with MySQL for Visual Studio, installation through
the MySQL Installer or the stand-alone MSI is required.

Please note that the X DevAPI requires at least MySQL Server version
8.0 or higher with the X Plugin enabled. For general documentation
about how to get started using MySQL as a document store, see

To download MySQL Connector/NET 8.0.22, see

Installation instructions can be found at

Changes in MySQL Connector/NET 8.0.22 (2020-10-19, General Availability)

* Functionality Added or Changed

* Bugs Fixed

Functionality Added or Changed

* Revisions to the MySql.Data.EntityFrameworkCore namespace
reduced the number of public classes. (Bug #31353208)

* The following synonyms for the Server connection string
option are deprecated in this release: address, addr, and
network address. (Bug #31248601)

* Previously, the client-side mysql_clear_password
authentication plugin was not supported. Now, it is
permitted to send passwords without hashing or encryption
by using mysql_clear_password on the client side together
with any server-side plugin that needs a clear text
password, such as for LDAP pluggable authentication.
Connector/NET returns an error if the
mysql_clear_password plugin is requested, but the
connection is neither encrypted nor using Unix domain
sockets. For usage information, see Client-Side Cleartext
Pluggable Authentication
( (Bug #30340510)

* For enhanced security of the existing
AllowLoadLocalInfile connection string option, a single
folder that is safe to upload files from now can be
specified with the new AllowLoadLocalInfileInPath option
(see Options for Classic MySQL Protocol Only (

* Connector/NET now supports Entity Framework 6.4, which
extends the compatibility of the provider to include the
Linux and macOS platforms when used with the Universal
Windows Platform (UWP) .NET implementation (see Entity
Framework 6 Support (
Connector/NET continues to support the .NET Framework
implementation of Entity Framework.

* Connections made using the MySQL Enterprise Edition SASL
LDAP authentication plugin now are supported on Windows
and Linux, but not on macOS. Connector/NET implements the
SCRAM-SHA-1 authentication method of the SASL
authentication protocol.

* The new compression-algorithms connection option sets the
order by which supported algorithms are negotiated and
selected to send compressed data over X Protocol
connections (see Options for X Protocol Only (

* In addition to providing continued support for .NET Core
and .NET Framework, Connector/NET now includes support
for the new .NET 5.0 framework. Compatibility testing was
performed with the preview versions of .NET 5.0 and
Visual Studio to encourage the efforts of early adopters.
Among other capabilities, .NET 5.0 offers uniform runtime
behaviors and developer experiences by taking the best of
.NET Core, .NET Framework, Xamarin, and Mono.

Bugs Fixed

* Procedure names were malformed before being sent to the
server when the database name was not specified in the
connection string. (Bug #31669587, Bug #100306)

* Microseconds were deserialized incorrectly when
MySqlCommand.Prepare() was called for a statement that
selects a TIME(n) column, resulting in a loss of trailing
zeros in the returned result. Now, the MySqlTime class
calculates ticks, rather than converting the microseconds
to a string. (Bug #31623730, Bug #100218)

* MySqlConnection.GetSchema(“Procedures”) returned the
literal string System.Byte[] as the value of the
ROUTINE_DEFINITION column, rather than the actual routine
definition. (Bug #31622907, Bug #100208)

* Valid query parameters of type DateTime were
misinterpreted as a string values. (Bug #31598178, Bug

* A mismatch of data types between the parameter of a
stored procedure and the corresponding MySqlParameter
when the Prepare() method was called did not generate an
exception. (Bug #31458774, Bug #99793)

* An SQL syntax error was reported on valid code for
creating a dynamic dropdown list from data in an ASP.NET
Core application. (Bug #31337609, Bug #99523)

* Entity Framework code-first migration omitted the schema
attribute that was assigned to an entity, although the
automatic migration appeared to generate a table with the
proper schema value at first. Subsequent queries using
the schema name returned errors. (Bug # 31323788, Bug

* The mapping from the TINYINT and BIT data types to
BOOLEAN was not performed as expected when scaffolding
was used. (Bug #31304070, Bug #99419)

* The Entity Framework Core migration script replaced NULL
with NOT NULL on a column in the migrated table when the
MaxLength attribute of the property for it was changed in
the model. (Bug #31070175, Bug #96913)

* The Ubiety.Dns.Core.dll binary included with the
MySQL.Data NuGet package was built in debug mode, which
prevented the publishing of applications to Microsoft
Store. (Bug #31061034, Bug #98955)

* An application using Entity Framework code-first
migration without the default system decimal separator,
the period character (.), could not generate a new
database. Now, setting the system decimal separator to a
different character is permitted. (Bug #30965702, Bug

* Every column of type CHAR(36) was interpreted as a GUID,
which could cause the first query made by a restarted
application using the MySQL.Data package to return an
exception. This fix introduces a dedicated format
(8-4-4-4-12) to interpret the column type properly. (Bug
#29963760, Bug #93399)

* Connector/NET code did not read from the
MySql.Data.Properties.ReservedWords.txt assembly resource
consistently and could return an incomplete set of
reserved keywords. (Bug #27536342, Bug #89639)

* No error occurred when MySqlCommand.CommandTimeout was
set to a negative number, however, subsequently setting
it to a positive number returned an exception. (Bug
#26574860, Bug #87316)

* The TcpClient implementation limited some of the
connection options when an external wrapper from a
Windows Forms application made the connection. This fix
enables the related external destructor to be called
without returning an error. (Bug #26427802, Bug #82810)

* An exception was returned in debug mode after a command
was canceled within a connection that was not null when
CancelQuery was called. Thanks to Denis Yarkovoy for the
improved validation patch. (Bug #26362494, Bug #86836)

* The DbContext.Database.Migrate() method did not succeed
because the __efmigrationshistory table was not found.
This fix modifies the method that validates the existence
of the table. (Bug #25901276, Bug #85902)

* When a parameter value of zero was passed to the
MySqlParameter constructor, Connector/NET used the
MySqlDbType enumeration by default for type mapping and
changed the value to NULL. This fix maps the default type
to int32. (Bug #25573071, Bug #85027)

* Entity Framework code-first migration excluded the length
specifier in the resulting binary columns. (Bug
#23171349, Bug #81179)

* Create Table statements generated with Entity Framework
were missing some of the semicolons, which caused MySQL
Server to return errors. (Bug #22669961, Bug #80159)

On Behalf of MySQL Release Engineering Team,
Surabhi Bhat