MySQL Shell 8.0.12 for MySQL Server 8.0 and 5.7 has been released

Dear MySQL users,

MySQL Shell 8.0.12 is a maintenance release of MySQL Shell 8.0 Series
(a component of the MySQL Server). The MySQL Shell is provided under
Oracle’s dual-license.

MySQL Shell 8.0 is highly recommended for use with MySQL Server 8.0 and 5.7.
Please upgrade to MySQL Shell 8.0.12.

MySQL Shell is an interactive JavaScript, Python and SQL console
interface, supporting development and administration for the MySQL
Server. It provides APIs implemented in JavaScript and Python that
enable you to work with MySQL InnoDB cluster and use MySQL as a document
store.

The AdminAPI enables you to work with MySQL InnoDB cluster, providing
an integrated solution for high availability and scalability using
InnoDB based MySQL databases, without requiring advanced MySQL
expertise. For more information about how to configure and work with
MySQL InnoDB cluster see
https://dev.mysql.com/doc/refman/en/mysql-innodb-cluster-userguide.html.

The X DevAPI enables you to create “schema-less” JSON document
collections and perform Create, Update, Read, Delete (CRUD) operations
on those collections from your favorite scripting language.
For more information about how to use MySQL Shell and the MySQL Document
Store support see https://dev.mysql.com/doc/refman/en/document-store.html.
For more information about the X DevAPI see
https://dev.mysql.com/doc/x-devapi-userguide/en/.

If you want to write applications that use the the CRUD based X DevAPI
you can also use the latest MySQL Connectors for your language of
choice. For more information about Connectors see
https://dev.mysql.com/doc/index-connectors.html.

For more information on the APIs provided with MySQL Shell
see https://dev.mysql.com/doc/dev/mysqlsh-api-javascript/8.0/
and https://dev.mysql.com/doc/dev/mysqlsh-api-python/8.0/.

Using MySQL Shell’s SQL mode you can communicate with servers using the
legacy MySQL protocol. Additionally, MySQL Shell provides partial
compatibility with the mysql client by supporting many of the same
command line options.

For full documentation on MySQL Server, MySQL Shell and related topics,
see https://dev.mysql.com/doc/mysql-shell/8.0/en/

For more information about how to download MySQL Shell 8.0.12, see
the “Generally Available (GA) Releases” tab at http://dev.mysql.com/downloads/shell/

We welcome and appreciate your feedback and bug reports, see
http://bugs.mysql.com/

Enjoy!

Changes in MySQL Shell 8.0.12 (2018-07-27, General Availability)

Functionality Added or Changed

* Important Change: An RPM package for installing ARM
64-bit (aarch64) binaries of MySQL Shell on Oracle Linux
7 is now available in the MySQL Yum Repository and for
direct download.
Known Limitation for this ARM release: You must enable
the Oracle Linux 7 Software Collections Repository
(ol7_software_collections) to install this package, and
must also adjust the libstdc++7 path. See Yum’s Platform
Specific Notes
(http://dev.mysql.com/doc/refman/8.0/en/linux-installatio
n-yum-repo.html#yum-install-platform-specifics) for
additional details.

* MySQL Shell now enables you to store user credentials in
an operating system specific secret store. You can then
enter a MySQL user’s password during connection and store
it for future connections. Currently the following secret
stores are supported:

+ MySQL login-path

+ MacOS keychain

+ Windows API
(Bug #23304789, Bug #81484)

* The way you access the online Shell help has been
standardized. Use the \help pattern command to search the
help. The scope of the command has been increased to
support retrieving help for the following categories:

+ Class and function help for the Admin API, X DevAPI
and Shell API. Previously, to retrieve help for API
objects, you had to create an instance of the object
and use the object.help() method.

+ SQL syntax help, provided that a global session
object exists.
Wildcards can now be used to search for help. A number of
additional bugs relating to incomplete help information
have also been fixed. (Bug #23255291, Bug #81277, Bug
#24963435, Bug #25732663, Bug #85481, Bug #25739522, Bug
#85511, Bug #25739664, Bug #85514, Bug #26393155, Bug
#86950, Bug #24943074, Bug #26429399, Bug #87037, Bug
#27870491, Bug #90455, Bug #27870503, Bug #90456, Bug
#27875150, Bug #90474, Bug #24948933, Bug #83527)

* The util.checkForServerUpgrade() operation has an
additional outputFormat parameter that you can specify
when running the utility. The utility can now generate
output in two formats:

+ TEXT format, which is the default. This option
provides output suitable for humans, as previously
returned by the utility.

+ JSON format. This option provides output suitable
for machines, which can be parsed and processed for
various further use cases.

* The cluster.removeInstance() command has been improved,
with the following changes:

+ A new interactive option has been added to enable or
disable interactive mode for the command. The output
displayed in interactive mode has been improved,
displaying more useful information.In interactive
mode, you are prompted to continue with the removal
of the instance (or not) in case it is not
reachable.

+ The operation now ensures that the instance is
removed from the metadata of all the cluster members
and itself. This only applies to ONLINE members.

+ A new global option dba.gtidWaitTimeout is available
to define the timeout to wait for transactions
(GTIDs) to be applied when required by AdminAPI
commands. If the timeout value defined by
dba.gtidWaitTimeout is reached when waiting for the
cluster transactions to be applied for
cluster.removeInstance() and force: false (or not
defined) then an error is issued and the operation
aborted. When force: true then the operation
continues and does not generate an error.
References: See also: Bug #27817894.

* When using the ipWhitelist to define which servers could
access the cluster, the internal user accounts were not
matching the whitelist. Now AdminAPI applies the same
filtering logic from ipWhitelist for the internal
administrative accounts.
References: See also: Bug #26140094, Bug #28165891.

* In order to be compliant with the X DevAPI specification,
the following changes have been made:

+ Collection.modify(condition).arrayDelete() and
Collection.modify(condition).merge() have been
deprecated.

+ Collection.find().limit(x).skip(y) has been renamed
to Collection.find().limit(x).offset(y).

+ Collection.find().limit(x).skip(y) has been
deprecated.

+ Collection.find().limit(x).offset(y) has been
implemented.

+ BaseResult.getAffectedItemsCount() has been
implemented.

+ BaseResult.getWarningCount() has been deprecated.

+ BaseResult.getWarningsCount() has been implemented.

+ Result.getAffectedItemCount() has been deprecated.

+ SqlResult.getAffectedRowCount() has been deprecated.

+ SqlResult.nextDataSet() has been renamed to
SqlResult.nextResult().

+ SqlResult.nextDataSet() has been deprecated.

+ SqlResult.nextResult() has been implemented.

Bugs Fixed

* The sample prompt theme files for MySQL Shell were
deployed to an incorrect location on the Windows
platform, in the root install folder. The files are now
correctly deployed in the \share\mysqlsh\prompt
sub-folder. (Bug #28188761)

* The cluster.forceQuorumUsingPartitionOf() operation sets
the group_replication_force_members variable on the
target instance to force a new group membership and
restore the quorum, but it did not reset the value of the
variable at the end of the process. Consequently, if
Group Replication later needed to be restarted on the
target instance it failed because the
group_replication_force_members variable was still set.
Now, the group_replication_force_members variable is
reset to an empty string at the end of the
cluster.forceQuorumUsingPartitionOf() operation. (Bug
#28064621)

* When upgrading from version 1.0.11 to version 8.0.11 of
MySQL Shell on Linux, the upgrade failed if the original
package was the community edition and the new package was
the commercial edition, or vice versa. Upgrading from one
edition to the other edition is now enabled. (Bug
#28037407)

* The util.checkForServerUpgrade() operation can now use
either an X Protocol connection or a classic MySQL
protocol connection. (Bug #28027707)

* The checkForServerUpgrade() operation to verify upgrade
prerequisites included an unnecessary check relating to
ZEROFILL and display length attributes in columns. The
check has now been removed. (Bug #27927641, Bug #90634)

* Some messages displayed by MySQL Shell were showing a
MySQL server version that does not exist. (Bug #27924694)

* For sessions using the classic MySQL protocol, if the
session_track_gtids system variable is set on the server
to capture and return GTIDs to the client, MySQL Shell
now displays the GTIDs for successfully committed
transactions. The returned GTID values are also now
recorded in tracing information. (Bug #27871148)

* When the defaultMode MySQL Shell configuration option had
been set with the –persist option, batch code execution
from a file was always attempted using the specified
default language, even if the file extension indicated a
different supported language. Now when a file is loaded
for batch processing using the –file or -f option, files
with the extensions .js, .py, and .sql are processed in
the appropriate language mode, regardless of the set
default language. (Bug #27861407)

* The methods provided in the shell.options configuration
interface to set and save persistent option values used
underscores in JavaScript as well as in Python mode. The
methods have now been changed to
shell.options.setPersist() and
shell.options.unsetPersist() in JavaScript to follow the
appropriate naming convention. (Bug #27861141)

* When executing a SQL script using MySQL Shell, delimiters
( such as the default semi-colon character) present in
multi-line comments caused execution to fail. Delimiters
are now ignored inside multi-line comments. (Bug
#27841719)

* MySQL Shell returned an error when querying timestamp
values that were zero, because a zero value for the month
or day in a date was not accepted. Zero timestamp values
can now be used without producing an error. (Bug
#27833822, Bug #90355)

* The shell.getSession() function returns a reference to
the session global object representing the already
established connection between MySQL Shell and a MySQL
server, known as a global session. MySQL Shell now
gracefully handles the situation where the function is
called when no global session has yet been established.
(Bug #27809310)

* It was possible to use AdminAPI operations on server
instances running an incompatible version of MySQL. (Bug
#27765769)

* The setting of the bind_address variable is no longer a
requirement. (Bug #27765484)

* When creating a cluster or adding an instance, if the
localAddress option is not specified, the port used for
group_replication_local_address is automatically assigned
with the value: port * 10 + 1. However, if the resulting
port determined by the previous rule was already in use
then a random port was generated and used. Now MySQL
Shell checks that the group_replication_local_address
port is available, and fails if it is not. (Bug
#27758041)

* The MySQL Shell application icon on Microsoft Windows was
not being displayed for the MySQL Shell 8.0 GA release,
due to an incorrect association introduced for the icon
during code refactoring. The icon is now displayed
correctly. (Bug #27746532)

* The dbPassword option is no longer valid in the options
dictionary of all AdminAPI commands. (Bug #27745106)

* The \status (\s) command in MySQL Shell now displays full
information about the version and build of the connected
MySQL server. (Bug #27740420)

* The check for reserved keywords carried out by the
util.checkForServerUpgrade() operation was updated to
match the list of reserved keywords for the MySQL 8.0 GA
release. (Bug #27724201)

* When handling escape sequences, MySQL Shell now
identifies and skips over SQL comments and string
literals within quotation marks. (Bug #27665229)

* Python’s mapping type has been added to MySQL Shell, so
that dictionary syntax can be used to interact with data
in Python mode. (Bug #27614110)

* When a file was redirected to standard input for
execution in MySQL Shell, on Unix, the first part of the
file was taken as being the password. The password prompt
now looks for user input first before resorting to
standard input. (Bug #27572380)

* It was possible to use the
dba.forceQuorumUsingPartition() operation on a cluster
which had not lost quorum. (Bug #27508698)

* The help message for
dba.rebootClusterFromCompleteOutage() operation was
incorrectly suggesting to use
dba.forceQuorumUsingPartition(). (Bug #27508627)

* If Ctrl + C was entered or an unexpected error occurred
at a password prompt in MySQL Shell, the terminal state
was not restored correctly afterwards. (Bug #27379834)

* The dba.rebootClusterFromCompleteOutage() operation was
creating a new user on the target instances, which could
lead to the existence of an increasing number of users.
The fix ensures that these users are not created by the
dba.rebootClusterFromCompleteOutage() operation. (Bug
#27344040)

* Now when you issue dba.getCluster() and retrieve a
cluster without quorum a warning is issued in addition to
the log message. (Bug #27148943)

* The memberSslMode option could be used with
cluster.addInstance() and cluster.rejoinInstance()
operations but if you specified a different value than
the one used at cluster creation an error was thrown. Now
set the SSL mode at the cluster level only, in other
words when issuing dba.createCluster(). The memberSslMode
option has been removed from cluster.addInstance() and
cluster.rejoinInstance(). (Bug #27062122)

* When you issued dba.configureLocalInsance() on an
instance, it configured the disabled_storage_engines
variable with the MyISAM, BLACKHOLE, FEDERATED, CSV, and
ARCHIVE storage engines to ensure that the storage engine
was set to InnoDB, as required by Group Replication. The
change to this option was not being reported correctly by
AdminAPI, and hence the required restart after changing
the disabled_storage_engines variable was not clear. This
change was deemed a recommendation, rather than a
requirement, hence dba.configureLocalInsance() no longer
configures disabled_storage_engines. (Bug #26754410)

* Creating a cluster using an account which was missing the
global grant option failed with an ambiguous error
message, even though dba.checkInstanceConfiguration() did
not return any errors. Now when you create a cluster, the
account being used to administer the cluster is checked
to ensure that it has the global grant option. (Bug
#25966235)

* MySQL Shell is able to automatically reconnect global
session when running in the interactive mode, but
AdminAPI methods lacked this feature. This resulted in
you having to reconnect manually. Now, the AdminAPI
methods which utilize the global session object have been
improved in order to detect an interrupted session and
trigger the reconnection mechanism. The Cluster object
uses its own internal session instance, which does not
support automatic reconnection. If connection to the
cluster is lost, you need to manually recreate the
Cluster object. (Bug #24702489)

* In the event of a whole cluster stopping unexpectedly,
upon reboot the memberSslMode was not preserved. In a
cluster where SSL had been disabled, upon issuing
dba.rebootClusterFromCompleteOutage() this could prevent
instances from rejoining the cluster. (Bug #90793, Bug
#27986413)

On Behalf of the MySQL/Oracle Release Engineering Team,
Hery Ramilison

MySQL Connector/Node.js 8.0.12 has been released

Dear MySQL users,

MySQL Connector/Node.js is a new Node.js driver for use with the X
DevAPI. This release, v8.0.12, is a maintenance release of the
MySQL Connector/Node.js 8.0 series.

The X DevAPI 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.

MySQL Connector/Node.js can be downloaded through npm (see
https://www.npmjs.com/package/@mysql/xdevapi for details) or from
https://dev.mysql.com/downloads/connector/nodejs/.

To learn more about how to write applications using the X DevAPI, see
http://dev.mysql.com/doc/x-devapi-userguide/en/. For more information
about how the X DevAPI is implemented in MySQL Connector/Node.js, and
its usage, see http://dev.mysql.com/doc/dev/connector-nodejs/.

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 http://dev.mysql.com/doc/refman/8.0/en/document-store.html.

Changes in MySQL Connector/Node.js 8.0.12 (2018-07-27, General availability)

X DevAPI Notes

* For compliance with the Core DevAPI, these
Connector/Node.js changes were made:

+ Collection: Deprecated: count(). Changed:
getSchema() now returns a Schema instance instead of
the schema name.

+ CollectionModify: Deprecated: limit(x, y)’s second
parameter, and arrayDelete().

+ CollectionFind: Deprecated: limit(x, y)’s second
parameter. Added: limit(x).offset(y).

+ CollectionRemove: Deprecated: limit(x, y)’s second
parameter.

+ Table: Deprecated: count() and insert(Document) API.
Updated: getSchema() now returns a Schema instance
instead of the Schema name. Removed: as().

+ TableSelect: Deprecated: limit(x, y)’s second
parameter. Added: limit(x).offset(y).

+ TableDelete: Deprecated: limit(x, y)’s second
parameter, and delete(x)’s parameter in favor of
using where(x) instead.

+ TableUpdate: Deprecated: limit(x, y)’s second
parameter, and update(x)’s parameter in favor of
using where(x) instead.

+ SqlExecute: Deprecated: sqlExecute() in favor of
sql(). Added: bind().

+ Column: Added isNumberSigned(), getCollationName(),
getCharacterSetName(), and isPadded()

Bugs Fixed

* The Promise returned by the session.sql().execute()
method resolved to a plain JavaScript object rather than
a proper Result instance. This meant it lacked access to
the API with methods such as getAffectedItemsCount() and
getWarnings(). (Bug #28146988)

* Retrieving rows with NULL fields would emit an unexpected
AssertionError. (Bug #27978594)

* The session.close() method is now asynchronous by
returning a JavaScript Promise, when before it returned
immediately. (Bug #27893001)

* The right-padding mechanism was improved. (Bug #27839295)

* While calling getSession() without arguments yields an
“Invalid parameter.” error, passing in ‘{}’ yielded a
“Cannot read property ‘length’ of undefined.” error. Now
‘{}’ is allowed, and getSession() defaults to using ” as
the user name. (Bug #27730748)

* Improved performance for expression parsing and protocol
message encoding.

On Behalf of the MySQL/Oracle Release Engineering Team,
Hery Ramilison

MySQL Connector/NET 8.0.12 has been released

Dear MySQL users,

MySQL Connector/NET 8.0.12 is the second general availability release of
MySQL Connector/NET to add support for the new X DevAPI. The X DevAPI
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
http://dev.mysql.com/doc/x-devapi-userguide/en/index.html. For more information about how the X DevAPI is implemented in Connector/NET, see
http://dev.mysql.com/doc/dev/connector-net.

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
5.7.12 or higher with the X Plugin enabled. For general documentation
about how to get started using MySQL as a document store, see
http://dev.mysql.com/doc/refman/5.7/en/document-store.html.

To download MySQL Connector/NET 8.0.12, see
http://dev.mysql.com/downloads/connector/net/

Installation instructions can be found at
https://dev.mysql.com/doc/connector-net/en/connector-net-installation.html

Changes in MySQL Connector/NET 8.0.12 (2018-07-27, General Availability)
 
   Known Limitation of This Release
 
   To create a model in Entity Framework (EF) Core v2.0 with
   scaffolding in this release, use the following alternative
   procedure:
 
    1. Downgrade to EF Core 1.0 or 1.1 in your project, install
       the MySql.Data.EntityFrameworkCore.Design NuGet package,
       and then create your model using the scaffolding or
       migration command.
 
    2. With the model created, revert back to EF Core 2.0 in
       your project, update the MySql.Data.EntityFrameworkCore
       NuGet package, and then remove the package
       MySql.Data.EntityFrameworkCore.Design from your project.
 
   We are sorry for this temporary inconvenience.

 
     * Functionality Added or Changed
 
     * Bugs Fixed
 
Functionality Added or Changed
 
 
     * Optimistic locking using a database-generated field was
       improved with the inclusion of the [ConcurrencyCheck,
       DatabaseGenerated(DatabaseGeneratedOption.Computed)]
       attribute. Thanks to Tony Ohagan for the patch. (Bug
       #28095165, Bug #91064)
 
     * Members of several classes in the X DevAPI were added,
       modified, or removed.
       MySqlX.XDevAPI.Collection and
       MySqlX.XDevAPI.Collection classes:
 
          + Remove(Object) method was marked Obsolete.
 
          + Remove(DbDoc) method was marked Obsolete.
 
          + CreateIndex() method was modified to be a
            direct-execute method (no longer requires .Execute()
            to execute).
       MySqlX.XDevAPI.Common.Result class:
 
          + RecordsAffected property (now obsolete) was replaced
            with AffectedItemsCount.
 
          + WarningCount property (now obsolete) was replaced
            with WarningsCount.
       MySqlX.XDevAPI.CRUD.FindStatement class:
 
          + GroupBy() method was added.
 
          + Having() method was added.
 
          + Limit(Int64, Int64) method was marked Obsolete.
 
          + Offset() method was added.
 
          + Sort() method was added.
 
          + OrderBy() method was removed.
       MySqlX.XDevAPI.CRUD.ModifyStatement class:
 
          + ArrayInsert method was added.
 
          + ArrayAppend method was added.
 
          + Unset() method was modified to accept an array of
            document paths.
       MySqlX.XDevAPI.CRUD.RemoveStatement class:
 
          + Sort() method was added.
 
          + OrderBy() method was removed.
       MySqlX.XDevAPI.Relational.RowResult class:
 
          + ColumnCount property was added.
 
          + ColumnNames property was added.
       MySqlX.XDevAPI.Relational.SqlResult class:
 
          + AutoIncrementValue property was marked Obsolete.
       MySqlX.XDevAPI.Relational.TableSelectStatement class:
 
          + Limit(Int64, Int64) method was marked Obsolete.
 
          + Offset() method was added.
       MySqlX.XDevAPI.Session class:
 
          + Commit() method was changed to be a direct-execute
            method and now it returns void.
 
          + Rollback() method was changed to be a direct-execute
            method and now it returns void.
 
          + Uri property was added.
 
          + DefaultSchema property was added.
       (Bug #27732098, Bug #27732175, Bug #27732235)
 
     * The MySqlX.XDevAPI.MySqlXConnectionStringBuilder class
       was added to provide connection-string options that apply
       exclusively to X Protocol connections. In addition, the
       Auth, SslCa, and SslCrl properties in the
       MySql.Data.MySqlClient.MySqlConnectionStringBuilder class
       were marked Obsolete.
 
Bugs Fixed
 
 
     * X DevAPI: Decimal numbers passed to the DbDoc class were
       not parsed properly when the values included a decimal
       separator other than a period (.) character. (Bug
       #28112229)
 
     * X DevAPI: The list of members shown with IntelliSense did
       not match the members provided in the reference
       documentation. (Bug #27918879, Bug #90615)
 
     * The Entity Framework Core implementation did not render
       accented characters correctly on bases with different
       UTF-8 encoding. Thanks to Kleber kleberksms for the
       patch. (Bug #27818822, Bug #90316)
 
     * The TreatTinyAsBoolean connection option was ignored when
       the MySqlCommand.Prepare() method was called. (Bug
       #27113566, Bug #88472)
 
     * All columns of type TINYINT(1) stopped returning the
       expected Boolean value after the connector encountered a
       NULL value in any column of this type. Thanks to David
       Warner for the patch. (Bug #22101727, Bug #78917)


On Behalf of MySQL Release Engineering team,
Surabhi Bhat

MySQL Connector/J 8.0.12 has been released

Dear MySQL users,

MySQL Connector/J Version 8.0.12 is the second GA release of the 8.0 branch of MySQL Connector/J. It is suitable for use with MySQL Server versions 5.5, 5.6, 5.7, and 8.0. It supports the Java Database Connectivity
(JDBC) 4.2 API, and implements the X DevAPI.

This release includes the following new features and changes, also described in more detail on https://dev.mysql.com/doc/relnotes/connector-j/8.0/en/news-8-0-12.html As always, we recommend that you check the “CHANGES” file in the download archive to be aware of changes in behavior that might affect your application.

To download MySQL Connector/J 8.0.12 GA, see the “Generally Available (GA)
Releases” tab at http://dev.mysql.com/downloads/connector/j/

Enjoy!


Changes in MySQL Connector/J 8.0.12 (2018-07-27, General Availability)

   Version 8.0.12 is the latest General Availability release of the 8.0 series of MySQL
   Connector/J. It is suitable for use with MySQL Server versions 8.0, 5.7, 5.6, and 5.5.

     * Functionality Added or Changed

     * Bugs Fixed 

Functionality Added or Changed
     
     * X DevAPI: The following changes have been made to the API:
          + Removed ModifyStatement.arrayDelete() and ModifyStatement.merge().
          + Renamed Colletion.find().limit().skip() to Colletion.find().limit().offset().
          + To simplify the class hierarchy and to have the class names reflect better
            the classes' functions, the following changes have been made:
               o The FindParams class has been renamed to FilterParams 
               o The AbstractFindParams class has been renamed to AbstractFilterParams 
               o The DocFindParams class has been renamed to DocFilterParams 
               o The TableFindParams class has been renamed to TableFilterParams
            Notice that the methods in the original FilterParams class have been moved under
            the new AbstractFilterParams class.
       (Bug #28027459)

     * X DevAPI: Connector/J now uses synchronous client sockets (java.net.Socket) by 
       default to communicate with MySQL servers for X Protocol connections. While
       asynchronous sockets can still be used by setting the connection property
       xdevapi.useAsyncProtocol=true, this is not recommended, as it might result in
       performance degradation for Connector/J. (Bug #27522054)

     * X DevAPI: Connector/J now gives provision for the use of a custom socket
       factory for  X Protocol connections to MySQL Servers using Unix domain sockets. 
       See Section 6.8, "Connecting Using Unix Domain Sockets" for details.

     * Connector/J now retrieves the MySQL keyword list from the INFORMATION_SCHEMA.KEYWORDS
       (http://dev.mysql.com/doc/refman/8.0/en/keywords-table.html)  table on the MySQL
       server when a connection session is established. The list can then be accessed by
       calling DatabaseMetaData.getSQLKeywords().

     * To simplify the code, the ReadableProperty and ModifiableProperty classes have
       been consolidated into the RuntimeProperty class.

Bugs Fixed

     * X DevAPI: When creating an X DevAPI session using a Properties map instead of a
       connection string, referring to property keys like host, port, and protocol in
       lowercase caused a NullPointerException. With the fix, both upper and lower
       cases can now be used. (Bug#27652379)

     * X DevAPI: When using the getConnection() method with the mysqlx: scheme in the
       connection URL, Connector/J returned an ordinary JDBC connection instead of an
       X-Protocol connection. (Bug #26089880)

     * If wait_timeout was set on the server and the Connector/J had the connection
       property interactiveClient=false, or if interactive_timeout was set on the
       server and Connector/J had the connection property interactiveClient=true, a
       connection is invalidated when it has idled for a longer time than the set timeout.
       When such a timeout occurred, Connector/J threw a CJCommunicationsException,
       without indicating it was a timeout. With this fix, the error message returned
       explains the issue and suggests how to avoid it. (Bug#27977617, Bug #90753)

     * When an application tried to connect to a non-MySQL database through some
      JDBC driver and Connector/J happened to be on the class path also, Connector/J
      threw a SQLNonTransientConnectionException, which prevented the application from
      connecting to its database. With this fix, Connector/J returns null whenever a
      connection string does not start with jdbc:mysql: or mysqlx:, so connections to
      non-MySQL databases are not blocked. (Bug#26724154, Bug #87600)

     * A wasNull() call on a ResultSet did not return the proper value unless
       AbstractResultsetRow.getNull() or AbstractResultsetRow.getValueFromByte() was
       called before. This caused data loss when Connector/J was used with frameworks like
       Hibernate, which rely on wasNull() calls to properly retrieve data. With this fix,
       wasNull() returns a correct value as long as some getter method has been called
       before on the ResultSet. (Bug #25924324, Bug#85941)


On Behalf of Oracle/MySQL Release Engineering Team
Prashant Tekriwal

MySQL Connector/Python 8.0.12 has been released

Dear MySQL users,

MySQL Connector/Python 8.0.12 is the second GA release version of the
MySQL Connector Python 8.0 series. This series adds support for the new
X DevAPI. The X DevAPI 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
http://dev.mysql.com/doc/x-devapi-userguide/en/. For more information
about how the X DevAPI is implemented in MySQL Connector/Python, and its
usage, see http://dev.mysql.com/doc/dev/connector-python.

Please note that the X DevAPI requires MySQL Server version 5.7.12 or
higher with the X Plugin enabled. For general documentation about how to
get started using MySQL as a document store, see
http://dev.mysql.com/doc/refman/5.7/en/document-store.html.

To download MySQL Connector/Python 8.0.12, see the “General Available
(GA) releases”
tab at http://dev.mysql.com/downloads/connector/python/

Enjoy!

Changes in MySQL Connector/Python 8.0.12 (2018-07-27, General Availability)


     * Installation Notes

     * X DevAPI Notes

     * Functionality Added or Changed

     * Bugs Fixed

Installation Notes


     * Because the Microsoft Visual C++ 2017 Redistributable
       installer deletes the Microsoft Visual C++ 2015 Redistributable
       registry keys that identify its installation, standalone MySQL
       MSIs may fail to detect the Microsoft Visual C++ 2015
       Redistributable if both it and the Microsoft Visual C++ 2017
       Redistributable are installed. The solution is to repair the
       Microsoft Visual C++ 2017 Redistributable via the Windows Control
       Panel to recreate the registry keys needed for the runtime
       detection. Unlike the standalone MSIs, MySQL Installer for
       Windows contains a workaround for the detection problem.
       (Bug #28345281, Bug #91542)

X DevAPI Notes


     * For compliance with the Core DevAPI, these
       Connector/Python changes were made:

          + DatabaseObject: Deprecated: am_i_real() and who_am_i().
          Added: get_session() and the session property.

          + Collection.modify(): Deprecated: limit(x, y)'s second
          parameter, where(condition), and change(CollectionField,
          ExprOrLiteral). Changed: the modify(condition) condition is
          now mandatory.

          + Collection.find(): Deprecated: limit(x, y)'s second
          parameter. Added: limit(x).offset(y).

          + Collection.remove(): Deprecated: limit(x, y)'s second
          parameter and where(condition). Changed: the modify(condition)
          condition is now mandatory.

          + Table.select(): Deprecated: limit(x, y)'s second parameter
          and sort(). Added: limit(x).offset(y).

          + Table.delete(): Deprecated: limit(x, y)'s second parameter
          and sort(). Removed: delete(x)'s parameter in favor of using
          where() instead. Added: order_by().

          + Table.update(): Deprecated: limit(x, y)'s second parameter,
          and the sort() method. Added: order_by().

          + Session: Added: get_schemas().

          + Result: Deprecated: get_document_id() and
          get_generated_insert_id(). Moved: get_affected_items_count()
          to the BaseResult class.

          + RowResult: Added: get_columns().

          + SqlResult: Added: has_data().

          + Column: Renamed: ColumnMetaData to Column. Added properties:
          schema_name, table_name, table_label, column_name,
          column_label, type, length, fractional_digits, collation_name,
          character_set_name.

Functionality Added or Changed


     * Removed MySQL Fabric support.

     * An RPM package for installing ARM 64-bit (aarch64)
       binaries of Connector/Python on Oracle Linux 7 is now available
       in the MySQL Yum Repository and for direct download.  Known
       Limitation for this ARM release: You must enable the Oracle Linux
       7 Software Collections Repository (ol7_software_collections) to
       install this package, and must also adjust the libstdc++7 path.
       See Yum's Platform Specific Notes
 (http://dev.mysql.com/doc/refman/8.0/en/linux-installation-yum-repo.html#yum-install-platform-specifics)
       for additional details.


Bugs Fixed


     * The default character set changed from 'utf8' (an alias
       to the deprecated 'utf8mb3' character set) to 'utf8mb4'.  (Bug
       #28188883)

     * Fixed datetime conversion compatibility between Django
       2.0 and MySQL 8.0.  A workaround was to use Connector/Python's
       pure Python implementation instead the C extension by setting
       "use_pure=True" in Django's database options. (Bug #27962293, Bug
       #90541)

     * The get_row() and get_rows() behavior differed with the C
       (connections with CMySQLConnection) and pure Python (connections
       with MySQLConnection) implementations of the connector. The
       resolved differences are:

          + With the pure Python implementation, all data was returned
          as bytearrays; while the C implementation returned all data as
          Python types with CMySQLConnection (cext). Both now return
          Python types.

          + With the pure Python implementation, they returned a tuple
          with (row(s), eof), but with the C Extension they only
          returned the row(s). Now both implementations return the tuple
          form; (row(s), eof).

          + For queries returning a result, with pure Python the warning
          count was part of the returned eof. With the C extension,
          warning count was only available using the warning_count
          property of the connection object.  Related, the warning_count
          property was not available in the pure Python implementation.
          Now, result includes the warning count for both
          implementations.

          + Fetching rows using pure Python would automatically set the
          unread_rows property to False. With the C extension,
          explicitly calling the free_result() method of the connection
          object was required.  Related, free_result() was only
          available with the C extension. Now, both implementations set
          unread_rows to False.  (Bug #27411275, Bug #27991948, Bug
          #27802700, Bug #28133321, Bug #27650437, Bug #89305, Bug
          #90799, Bug #90292, Bug #91107)

     * Connecting with a collation unknown to Connector/Python
       would yield an unknown character set error. It now properly
       references the unknown collation. (Bug #27277937)

     * Deprecated the Row.get_string() method in favor of
       __getitem__. (Bug #26834200, Bug #87777)

Enjoy and thanks for the support!

On behalf of the MySQL Release Team,
Nawaz Nazeer Ahamed

MySQL Connector/C++ 8.0.12 has been released

Dear MySQL users,

MySQL Connector/C++ 8.0.12 is the second GA release version of the MySQL Connector/C++ 8.0 series.

Connector/C++ 8.0 can be used to access MySQL implementing Document Store or in a traditional way, using SQL queries. It allows writing both C++ and plain C applications using X DevAPI and X DevAPI for C. It also supports the legacy API of Connector/C++ 1.1 based on JDBC4.

To learn more about how to write applications using X DevAPI, see “X DevAPI User Guide”

https://dev.mysql.com/doc/x-devapi-userguide/en/

See also “X DevAPI Reference” at

https://dev.mysql.com/doc/dev/connector-cpp/devapi_ref.html

and “X DevAPI for C Reference” at

https://dev.mysql.com/doc/dev/connector-cpp/xapi_ref.html.

For generic information on using Connector/C++ 8.0, see
https://dev.mysql.com/doc/dev/connector-cpp/

Note: For X DevAPI applications, Connector/C++ 8.0 requires MySQL Server 5.7.12 or higher with X Plugin enabled. For applications that use the legacy JDBC API, Connector/C++ 8.0 can use MySQL Server 5.5 or higher, and X Plugin is not required.

https://dev.mysql.com/doc/refman/5.7/en/document-store.html

To download MySQL Connector/C++ 8.0.12, see the “Generally Available (GA)
Releases” tab at
https://dev.mysql.com/downloads/connector/cpp/



Changes in MySQL Connector/C++ 8.0.12 (2018-07-27, General Availability)
  • Installation Notes
  • Packaging Notes
  • Security Notes
  • X DevAPI Notes
  • Bugs Fixed
Installation Notes * Because the Microsoft Visual C++ 2017 Redistributable installer deletes the Microsoft Visual C++ 2015 Redistributable registry keys that identify its installation, standalone MySQL MSIs may fail to detect the Microsoft Visual C++ 2015 Redistributable if both it and the Microsoft Visual C++ 2017 Redistributable are installed. The solution is to repair the Microsoft Visual C++ 2017 Redistributable via the Windows Control Panel to recreate the registry keys needed for the runtime detection. Unlike the standalone MSIs, MySQL Installer for Windows contains a workaround for the detection problem. Packaging Notes * An RPM package for installing ARM 64-bit (aarch64) binaries of Connector/C++ on Oracle Linux 7 is now available in the MySQL Yum Repository and for direct download. Known Limitation for this ARM release: You must enable the Oracle Linux 7 Software Collections Repository (ol7_software_collections) to install this package, and must also adjust the libstdc++7 path. See Yum's Platform Specific Notes (http://dev.mysql.com/doc/refman/8.0/en/linux- installation-yum-repo.html#yum-install-platform-specifics) for additional details. * Installers for Connector/C++ are now available in these formats: MSI packages (Windows); RPM packages (Linux); DMG packages (macOS). Security Notes * yaSSL is no longer included in Connector/C++ source distributions. wolfSSL may be used as a functionally equivalent alternative that has a GPLv2-compatible license. In addition, wolfSSL (like OpenSSL) supports the TLSv1.2 protocol, which yaSSL does not. To build Connector/C++ using wolfSSL, use the -DWITH_SSL=path_name CMake option, where path_name indicates the location of the wolfSSL sources. For more information, see Source Installation System Prerequisites (http://dev.mysql.com/doc/connector-cpp/8.0/en/connector -cpp-installation-source-prerequisites.html), and Connector/C++ Source-Configuration Options (http://dev.mysql.com/doc/connector-cpp/8.0/en/connector-cpp -source-configuration-options.html). X DevAPI Notes * Connector/C++ now supports NOWAIT and SKIP LOCKED lock contention modes to be used with lockExclusive() and lockShared() clauses of CRUD find/select operations (see Locking Read Concurrency with NOWAIT and SKIP LOCKED (http://dev.mysql.com/doc/refman/8.0/en/innodb -locking-reads.html#innodb-locking-reads-nowait-skip-locked), and a default lock contention mode. The following list names the permitted constants. For each item, the first and second constants apply to X DevAPI and X DevAPI for C, respectively. + LockContention::DEFAULT, LOCK_CONTENTION_DEFAULT: Block the query until existing row locks are released. + LockContention::NOWAIT, LOCK_CONTENTION_NOWAIT: Return an error if the lock cannot be obtained immediately. + LockContention::SKIP_LOCKED, LOCK_CONTENTION_SKIP_LOCKED: Execute the query immediately, excluding from the query items that are locked. For X DevAPI and X DevAPI for C applications, lock mode methods accept these lock contention constants as a parameter. For X DevAPI applications, lock mode methods can be called without this parameter, as before; this is equivalent to passing a lock mode of DEFAULT. * Connector/C++ now supports the SHA256_MEMORY authentication mechanism for connections using the X Protocol. For X DevAPI applications, SessionOption::AUTH supports the new value AuthMethod::SHA256_MEMORY. For X DevAPI for C applications, the session option MYSQLX_OPT_AUTH supports the new value MYSQLX_AUTH_SHA256_MEMORY. These new values request using the sha256_memory authentication mechanism when creating a session. * For compliance with the Core DevAPI, these Connector/C++ changes were made: + getAffectedItemsCount() was moved from Result to Result_common. + Collection.modify(condition).arrayDelete() was removed. + getAffectedRowsCount() was removed. Use getAffectedItemsCount() instead. + getWarningCount() was renamed to getWarningsCount(). Bugs Fixed * utf8mb4 character data was handled incorrectly. (Bug#28240202) * Session creation had a memory leak. (Bug #27917942) * When configuring to build Connector/C++ with the legacy connector, CMake did not account for the MYSQL_CONFIG_EXECUTABLE option. (Bug #27874173, Bug#90389) * Improper error handling for unknown hosts when creating a session could result in unexpected application exit. (Bug#27868302) * The mysqlx_row_fetch_one() X DevAPI for C function could fail to return for large result set exceeding the maximum packet size. Now such result sets produce an error. (Bug#27732224)

Enjoy and thanks for the support!

On Behalf of Oracle/MySQL Release Engineering Team,
Balasubramanian Kandasamy

MySQL Connector/ODBC 8.0.12 has been released

Dear MySQL users,

MySQL Connector/ODBC 8.0.12 is the second version of the MySQL Connector/ODBC 8.0 series, the ODBC driver for the MySQL Server.

The available downloads include both a Unicode driver and an ANSI driver based on the same modern codebase. Please select the driver type you need based on the type of your application – Unicode or ANSI. Server-side prepared statements are enabled by default. It is suitable for use with any MySQL server version from 5.5.

This release of the MySQL ODBC driver is conforming to the ODBC 3.8 specification. It contains implementations of key 3.8 features, including self-identification as a ODBC 3.8 driver, streaming of output parameters (supported for binary types only), and support of the SQL_ATTR_RESET_CONNECTION connection attribute (for the Unicode driver only).

The release is now available in source and binary form for a number of platforms from our download pages at

https://dev.mysql.com/downloads/connector/odbc/

For information on installing, please see the documentation at

https://dev.mysql.com/doc/connector-odbc/en/connector-odbc-installation.html

Functionality Added or Changed

  • Several code issues identified by Fortify were corrected.
  • Refactored codebase to remove legacy code and implement general performance improvements. For example, unused ANSI data conversion code and legacy functions were removed. Example improvements affect bookmark handling for bulk operations, handling of memory buffers for prepared statements, and handling of session variables.
  • On Windows, 32-bit support was added and 32-bit binaries are now available.
  • An RPM package for installing ARM 64-bit (aarch64) binaries of Connector/ODBC on Oracle Linux 7 is now available in the MySQL Yum Repository and for direct download. Known Limitation for this ARM release: You must enable the Oracle Linux 7 Software Collections Repository (ol7_software_collections) to install this package, and must also adjust the libstdc++7 path. See Yum’s Platform Specific Notes (http://dev.mysql.com/doc/refman/8.0/en/linux-installation-yum-repo.html#yum-install-platform-specifics) for additional details.

Bugs Fixed

  • Added checks for unsupported functionality that return SQL_ERROR instead of SQL_SUCCESS, where the error message refers to the unsupported functionality. (Bug #28217387)
  • The data source dependent type’s name was not always returned. For example, the ODBC driver reported TEXT as the database type for TINYTEXT, MEDIUMTEXT, and LONGTEXT, and reported BLOB for TINYBLOB, MEDIUMBLOB, and LONGBLOB. (Bug #11761407, Bug #53900)

On Behalf of Oracle/MySQL Release Engineering Team,
Piotr Obrzut

MySQL Connector/NET 8.0.11 is available as official MySQL NuGet packages

Dear MySQL Connector/NET users,

We are proud to announce that the open source version of Connector/NET 8.0.11 is also available as official MySQL NuGet packages. Connector/NET 8.0.11 is a GA release that can be used in production environments. Additionally, users with an older version can safely upgrade if preferred.

 

What this means for Connector/NET users?

Installing and upgrading packages couldn’t be easier, plus you need only to install the packages that fit your needs. Also, it’s even easier and more straight forward to develop for MySQL from Visual Studio.

NuGet is the package manager for the Microsoft development platform including .NET. The NuGet client tools provide the ability to produce and consume packages. The NuGet Gallery is the central software package repository populated by various package authors and tied directly to developers for ease of installation and development. For more information on NuGet see: https://github.com/nuget/home

Connector/NET NuGet Packages

Currently there are 5 Connector/NET NuGet packages:

  • MySQL Connector/NET Data
    • Provides the core functionality of Connector/NET including using MySQL as a Document Store through the X DevAPI. It implements the required ADO.NET interfaces and integrates into ADO.NET-aware tools. Provides access to multiple versions of MySQL Server and encapsulates database-specific protocols.
    • Supports .NET Framework 4.5.2, .NET Standard 1.6 & 2.0.
    • Refer to the official documentation for additional details.
    • Refer to the X DevAPI User Guide for details on using MySQL as a Document Store with Connector/NET.
  • MySQL Connector/NET Web providers
    • Includes support for the ASP.NET 2.0 provider model. This model enables application developers to focus on the business logic of their application instead of having to recreate boilerplate items such as membership and roles support.
    • Supported providers:
      • Membership
      • Role
      • Profile
      • Session State
    • Supports .NET Framework 4.5.2.
    • Refer to the ASP.NET Provider Model section of the official documentation for additional details.
  • MySQL Connector/NET for Entity Framework 6
    • Provides ORM capabilities enabling developers to work with MySQL databases using domain-specific objects, thus eliminating the need for most of the data access code.
    • Supports .NET Framework 4.5.2.
    • Refer to the Entity Framework 6 Support section of the official documentation for additional details.
  • MySQL Connector/NET for Entity Framework Core
    • Provides multi-platform support for Entity Framework tasks.
    • Supports .NET Framework 4.5.2, .NET Standard 1.6 & 2.0.
    • Refer to the Entity Framework Core Support section of the official documentation for additional details.
  • MySQL Connector/NET for Entity Framework Core Design
    • Provides shared design-time components for Entity Framework Core tools allowing the scaffolding and migration of databases.
    • Supports .NET Framework 4.5.2, .NET Standard 1.6.
    • Refer to the Entity Framework Core Support section of the official documentation for additional details.

In order to install the NuGet Package you can use the Package Manager Console as follows:

PM> Install-Package MySql.Data.EntityFrameworkCore

PM> Install-Package MySql.Data.Web

Or via Visual Studio’s NuGet Package Manager UI: http://docs.nuget.org/docs/start-here/Managing-NuGet-Packages-Using-The-Dialog

Note that packages for Web Providers and Entity Framework have a dependency with the core package MySql.Data, meaning their installation will also result in the installation of the MySql.Data package. Installation through the standalone MSI is recommended whenever you want to make use of all the functionality provided by Connector/NET E.g. availability in the GAC.

For more information or to go directly to our NuGet Packages review the following links:

For those of you interested in how to use Connector/NET with .NET Core you can refer to the MySQL Connector/NET for .NET Core 1.0 blog post.

If you happen to have any questions about this or any other Connector/NET related topic, you can always post them in the product’s main forum. Additionally, bugs can be reported in MySQL Bugs.

Connector/NET Team

MySQL Connector/NET 6.9.12 GA has been released

Dear MySQL users,

MySQL Connector/Net 6.9.12 is a maintenance release for the 6.9.x series
of the .NET driver for MySQL. It can be used for production
environments.

It is appropriate for use with MySQL server versions 5.5-5.7.

It is now available in source and binary form from
http://dev.mysql.com/downloads/connector/net/#downloadsandmirrorsites
(note that not all mirror sites may be up to date at this point-if you
can’t find this version on some mirror, please try again later or choose
another download site.)

Note: C/NET 6.9 will not be supported any more. If users are looking to get latest
updates on C/NET, they should upgrade to using C/NET 6.10 and 8.0 series instead.

Changes in MySQL Connector/Net 6.9.12 (2018-05-04, General
Availability)

Functionality Added or Changed

* Connections made to MySQL 8.0 (up to and including
version 8.0.3) and compatibility with the new data
dictionary are now supported. For information about the
data dictionary, see MySQL Data Dictionary
(http://dev.mysql.com/doc/refman/8.0/en/data-dictionary.h
tml).

* Support for the caching_sha2_password authentication
plugin through the classic MySQL protocol was added. In
addition, the sha256_password plugin was extended to
support authentication when RSA keys are available
through non-secure connections. Caching SHA-2 pluggable
authentication offers faster authentication than basic
SHA-256 authentication.

* Support was added for the new caching_sha2_password
padding mechanism introduced in the MySQL 8.0 release
series. The new padding mechanism is enabled when all of
the following conditions apply:

+ The user account is set with the
caching_sha2_password authentication plugin.

+ SSL is disabled explicitly (SslMode=none).

+ The AllowPublicKeyRetrieval connection option is
enabled (AllowPublicKeyRetrieval=true).
When enabled, the new padding mechanism is used to encode
the password during RSA key encryption, which applies the
correct padding to match the server.

Bugs Fixed

* The MySqlConnection.GetSchema(“PROCEDURES”, restrictions)
method call generated an error message, instead of
returning stored procedures, when the server connection
was to the MySQL 8.0 release series. (Bug #25961782)

* Attempting to generate an Entity Framework model from a
MySQL 5.7 database using either EF5 or EF6 produced an
exception that prevented the operation from generating
the expected model. (Bug #22173048, Bug #79163)

The documentation is available at:
http://dev.mysql.com/doc/connector-net/en/

Nuget packages are available at:
https://www.nuget.org/packages/MySql.Data/6.9.12
https://www.nuget.org/packages/MySql.Data.Entity/6.9.12
https://www.nuget.org/packages/MySql.Fabric/6.9.12
https://www.nuget.org/packages/MySql.Web/6.9.12

Enjoy and thanks for the support!

On behalf of the MySQL Release Team,
Sreedhar S

MySQL Connector/NET 6.10.7 GA has been released

Dear MySQL users,

MySQL Connector/NET 6.10.7 is the fourth GA release with .NET Core
now supporting various connection-string options and MySQL 8.0 server
features.

To download MySQL Connector/NET 6.10.7 GA, see the “Generally Available
(GA) Releases” tab at http://dev.mysql.com/downloads/connector/net/

Changes in MySQL Connector/NET 6.10.7 (2018-04-30, General Availability)

Functionality Added or Changed

* Connections made to MySQL 8.0 (up to and including
version 8.0.3) and compatibility with the new data dictionary are
now supported. For information about the data dictionary, see
MySQL Data Dictionary
(http://dev.mysql.com/doc/refman/8.0/en/data-dictionary.html).

* Support for the caching_sha2_password authentication
plugin through the classic MySQL protocol was added. In addition,
the sha256_password plugin was extended to support authentication
when RSA keys are available through non-secure connections.
Caching SHA-2 pluggable authentication offers faster
authentication than basic SHA-256 authentication.

* Support was added for the new caching_sha2_password
padding mechanism introduced in the MySQL 8.0 release series. The
new padding mechanism is enabled when all of the following
conditions apply:

+ The user account is set with the
caching_sha2_password authentication plugin.

+ SSL is disabled explicitly (SslMode=none).

+ The AllowPublicKeyRetrieval connection option is enabled
(AllowPublicKeyRetrieval=true).  When enabled, the new padding
mechanism is used to encode the password during RSA key
encryption, which applies the correct padding to match the
server.

Bugs Fixed

* Attempting to open the MySQL Web Configuration Tool, with
Connector/NET and MySQL for Visual Studio prerequisites installed
properly, displayed an error message instead of opening the tool.
(Bug #27457398, Bug #88544)

* The ADO.NET Entity Data Model wizard within Visual Studio
closed unexpectedly without producing the data model.  Thanks to
Laurents Meyer for the patch. (Bug #27420311, Bug #89338)

* An exception prevented MySQL.Data.Entity for Entity
Framework 6 from operating as expected. Thanks to Cédric Luthi
for the patch. (Bug #27360520, Bug #89134)

* MySQL Installer could not be installed with NuGet
packages from Microsoft Visual Studio 2015. (Bug #27251839,
Bug #88838)

* With valid references to the DLLs provided, using
DbConfiguration.SetConfiguration(new
MySql.Data.Entity.MySqlEFConfiguration()) to set up the DbContext
threw an exception. (Bug #25185319)

* Attempting to generate an Entity Framework model from a
MySQL 5.7 database using either EF5 or EF6 produced an exception
that prevented the operation from generating the expected model.
(Bug #22173048, Bug #79163)

Nuget packages are available at:

https://www.nuget.org/packages/MySql.Data/6.10.7
https://www.nuget.org/packages/MySql.Web/6.10.7
https://www.nuget.org/packages/MySql.Data.Entity/6.10.7
https://www.nuget.org/packages/MySql.Data.EntityFrameworkCore/6.10.7
https://www.nuget.org/packages/MySql.Data.EntityFrameworkCore.Design/6.10.7

Enjoy and thanks for the support!

On behalf of the MySQL Release Team,
Nawaz Nazeer Ahamed