MySQL Connector/ODBC 5.3.14 has been released

Dear MySQL users,

MySQL Connector/ODBC 5.3.14, a new version of the ODBC driver for the
MySQL database management system, has been released.

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 version from 5.6.

This is the sixth release of the MySQL ODBC driver 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

http://dev.mysql.com/downloads/connector/odbc/5.3.html

For information on installing, please see the documentation at

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

Changes in MySQL Connector/ODBC 5.3.14 (2019-10-30, General Availability)

Bugs Fixed

* On EL7, and only when using the generic Linux packages, SQLSetPos usage caused an unexpected shutdown. (Bug #29630465)

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

MySQL Connector/C++ 1.1.13 has been released

Featured

Dear MySQL Users,

MySQL Connector/C++ 1.1.13 is a new release version of the MySQL
Connector/C++ 1.1 series.

Connector/C++ 1.1 can be used to access MySQL using an API
based on JDBC4.

For information on using Connector/C++ 1.1, see

https://dev.mysql.com/doc/connector-cpp/1.1/en/

To download MySQL Connector/C++ 1.1.13, see the “General
Availability (GA) Releases” tab at

http://dev.mysql.com/downloads/connector/cpp/1.1.html

MySQL Connector C++ (Commercial) will be available for download on the
My Oracle Support (MOS) website. This release will be available on
eDelivery (OSDC) in next month’s upload cycle.

Connector/C++ 1.1 offers an easy to use API derived from JDBC 4.0.

Enjoy!

Changes in MySQL Connector/C++ 1.1.13 (2019-10-25, General
Availability)

Character Set Support

     * Connector/C++ now supports the utf8mb4_0900_bin collation
       added for the utf8mb4 Unicode character set in MySQL
       8.0.17. For more information about this collation, see
       Unicode Character Sets
(https://dev.mysql.com/doc/refman/8.0/en/charset-unicode-sets.html).

Bugs Fixed

     * Connector/C++ set the transaction isolation level to
       REPEATABLE READ at connect time, regardless of the
       current server setting. (Bug #22038313, Bug #78852, Bug
       #30294415)

On Behalf of MySQL/ORACLE RE Team
Gipson Pulla

MySQL for Visual Studio 1.2.9 has been released

Dear MySQL users,

The MySQL Windows Experience Team is proud to announce the release
of MySQL for Visual Studio 1.2.9.

This is a maintenance release for 1.2.x. It can be used for
production environments.

MySQL for Visual Studio is a product that includes all of the
Visual Studio integration functionality to create and manage
MySQL databases when developing .NET applications.

MySQL for Visual Studio is installed using the MySQL Installer
for Windows which comes in 2 versions:
   * Full (415.1 MB) which includes a complete set of MySQL products
     with their binaries included in the downloaded bundle.
   * Web (18.6 MB – a network install) which will just pull MySQL
     for Visual Studio over the web and install it when run.

You can download MySQL Installer from our official Downloads page at
http://dev.mysql.com/downloads/installer/.

MySQL for Visual Studio can also be downloaded by using the product
standalone installer found at
http://dev.mysql.com/downloads/windows/visualstudio/.

Changes in MySQL for Visual Studio 1.2.9 (2019-10-21, General
Availability)

     * Functionality Added or Changed
     * Bugs Fixed

Functionality Added or Changed

     * MySQL for Visual Studio now prompts for action when it
       detects any conflicts in its configuration files that
       were introduced after MySQL for Visual Studio was
       installed. Errors associated with this type of
       configuration conflict prevent the creation of data
       sources and table adapters.
       A new Configuration Update Tool can resolve the conflicts
       between Connector/NET and MySQL for Visual Studio
       libraries as they are detected (see MySQL for Visual
       Studio Configuration Update Tool
(https://dev.mysql.com/doc/visual-studio/en/visual-studio-install.html#visual-studio-install-update-tool)).
       To complete the action, it is necessary to restart
       affected versions of Visual Studio manually after
       the tool finishes updating the files.
       (Bug #29884031, Bug #82617)

     * MySQL for Visual Studio now supports all editions of
       Microsoft Visual Studio 2019. In addition, this release
       removes support for Visual Studio versions 2012 and 2013.
       (Bug #29616463, Bug #94937)

     * The MySQL Website Configuration tool was renamed and
       extended to also automate entry updates to the app.config
       file (in addition to the web.config file). The newly
       renamed MySQL Application Configuration tool preserves
       the functionality used to simplify website development
       and now extends the configuration capabilities of the
       tool to manage dependencies required when running the
       Entity Data Model Wizard. (Bug #29490017)

     * Connections to MySQL using SSL PEM encryption or standard
       TCP/IP over SSH now are supported by MySQL for Visual
       Studio (see Making a Connection
(https://dev.mysql.com/doc/visual-studio/en/visual-studio-making-a-connection.html)).

Bugs Fixed

     * Several installation errors caused the wrong version or
       edition of Visual Studio to be identified, which then
       resulted in the deployment of MySQL for Visual Studio
       files to the wrong folder or to a file structure that
       represented multiple versions Visual Studio that were
       neither selected nor installed on the host computer.
       (Bug #30225436, Bug #96576)

     * A secondary window opened unexpectedly when a user with
       insufficient database privileges (GRANT SELECT and GRAN
       SHOW VIEW) attempted to alter the definition of an
       existing view. This fix introduces an error message to
       explain the condition in detail. (Bug #30001906)

     * From code, it was possible to create an instance of
       SqlDataSource, make a connection to a MySQL server, and
       then populate an ASP.NET control. However, attempting the
       same sequence using the Visual Studio Configure Data
       Source designer produced a object-reference error when
       the data source was being configured in the designer (and
       MySQL Connector/NET 6.10.8 was installed) and also at
       runtime of the web application.
       As part of a related fix, the data source now populates
       ASP.NET controls from custom queries as expected at
       runtime. Likewise, the designer now permits configuration
       when the 6.10.8 version of MySQL Connector/NET is
       installed with one caution. When using the Specify
       columns from a table or view option, the Configure Data
       Source designer generates the query using bracket
       characters ( [] ) as delimiters for identifiers, which
       produces an invalid MySQL statement. The brackets can be
       removed manually after the data source is created.
       Alternatively, the second option in the designer
       associated with generating queries from the data source,
       Specify a custom SQL statement or stored procedure, is
       the preferred option to use. (Bug #28148998, Bug #91136)

     * The TableAdapter Configuration Wizard in Visual Studio
       configured with a valid MySQL connection produced an
       error, instead of generating the expected TableAdapter.
       Now, the error condition is resolved when MySQL
       Connector/NET 6.10.8 (or higher) or MySQL Connector/NET
       8.0.14 (or higher) are available for use by MySQL for
       Visual Studio. (Bug #27857627, Bug #90390)

On Behalf of MySQL Release Engineering Team,
Sreedhar S

MySQL Connector/NET 8.0.18 has been released

Dear MySQL users,

MySQL Connector/NET 8.0.18 is the first version to support
.Net Core 3.0 and the sixth general availability release
of MySQL Connector/NET to add support for 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
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
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.

To download MySQL Connector/NET 8.0.18, 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.18 (2019-10-14, General Availability)

Functionality Added or Changed

     * Connector/NET now supports IPV6 connections made using
       the classic MySQL protocol when the operating system on
       the server host also supports IPV6. (Bug #29682333)

     * Support for .NET Core 3.0 was added.

     * In tandem with Microsoft, Connector/NET ends support for
       .NET Core 1.0 and 1.1 (and also for Entity Framework Core
       1.1, which depends on .NET Core 1.1).

     * Previously, if the server restricted a classic
       Connector/NET session to sandbox mode and the password on
       the account expired, the session continued to permit the
       use of SET statements. Now, SET statements in sandbox
       mode with an expired password are prohibited and will
       return an error message if used. The one exception is SET
       PASSWORD, which is still permitted (see Server Handling
       of Expired Passwords
(https://dev.mysql.com/doc/refman/8.0/en/expired-password-handling.html)).

Bugs Fixed

     * The Renci.SshNet.dll deployment was problematic for
       Connector/NET 8.0.17 MSI installations. Some
       applications, such as Microsoft Excel, were unable to
       read MySQL data as a result. This fix removes unnecessary
       dependencies on the DLL and also ensures that the MSI
       installation deploys the correct Renci.SshNet.dll to the
       GAC. (Bug #30215984, Bug #96614)

     * Connector/NET returned an inaccurate value for the YEAR
       type when a prepared command was used. (Bug #28383721,
       Bug #91751)

     * Entity Framework Core: A syntax error was generated
       during an operation attempting to rename a table that was
       previously migrated from code. Now, the primary key
       constraint for an existing table can be dropped without
       errors when the follow-on migration operation is
       performed. (Bug #28107555, Bug #90958)

On Behalf of Oracle/MySQL Engineering Team
Sreedhar S

MySQL Connector/C++ 8.0.18 has been released

Dear MySQL users,

MySQL Connector/C++ 8.0.18 is a new 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” at

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/

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

To download MySQL Connector/C++ 8.0.18, see the “General Availability (GA)
Releases” tab at

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


Changes in MySQL Connector/C++ 8.0.18 (2019-10-14, General Availability)

Compilation Notes

     * It is now possible to compile Connector/C++ using OpenSSL
       1.1.

     * Connector/C++ no longer supports using wolfSSL as an
       alternative to OpenSSL. All Connector/C++ builds now use
       OpenSSL.

On Behalf of MySQL Release Engineering Team,
Surabhi Bhat

MySQL Connector/Node.js 8.0.18 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.18, 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.18 (2019-10-14, General
Availability)

Functionality Added or Changed

  • Implemented the X DevAPI cursor model, which includes
    adding methods such as fetchOne(), fetchAll(),
    getColumns(), hasData(), and nextResult(). For additional
    details, see the X DevAPI documentation about Working
    with Result Sets

(https://dev.mysql.com/doc/x-devapi-userguide/en/working-with-result-sets.html).
Previously, handling result set data or metadata required
specific callback functions when calling execute(). With
this new interface, the connector automatically switches
to this new pull-based cursor model if these callback
functions are not provided.

  • Improved Collection.getOne() performance by making the
    underlying lookup expression to only parse once, and
    having subsequent Collection.getOne() calls utilize
    server-side prepared statements.
  • Added support to generate test coverage reports by
    running the likes of npm run coverage; see the bundled
    CONTRIBUTING.md for details and requirements. This was
    added to help users contribute patches.
  • Added linter check support to help enforce coding style
    and convention rules for new contributions by running the
    likes of npm run linter; see the bundled CONTRIBUTING.md
    for details.

Bugs Fixed

  • Added support for assigning Node.js Buffer values to
    expression or SQL query placeholders. (Bug #30163003, Bug 96480)
  • MySQL column binary values (such as BLOB, BINARY, and
    VARBINARY) can now convert to proper Node.js Buffer
    instances. (Bug #30162858, Bug #96478)
  • Inserting a raw Node.js Buffer value into MySQL BLOB
    field resulted in an error as the content_type was
    improperly set; it’s now handled as a raw byte string by
    the X Plugin. (Bug #30158425)
  • The padding characters used for fixed-lengthed columns
    now map to the collation code provided by the column
    metadata; previously it was based on the JavaScript
    native type of the values. (Bug #30030159)

On Behalf of MySQL/ORACLE RE Team
Gipson Pulla

MySQL Connector/J 8.0.18 has been released

Dear MySQL users,

MySQL Connector/J 8.0.18 is the latest General Availability release of
the MySQL Connector/J 8.0 series.  It is suitable for use with MySQL
Server versions 8.0, 5.7, and 5.6.  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.18.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.18 GA, see the “General Availability
(GA) Releases” tab at http://dev.mysql.com/downloads/connector/j/

Enjoy!

Changes in MySQL Connector/J 8.0.18 (2019-10-14, General
Availability)

Bugs Fixed


     * A minor code improvement has been put into
       DatabaseMetaDataUsingInfoSchema.getColumns(). (Bug #29898567,
       Bug #95741)

     * For a replication setup, when the connection property
       loadBalanceAutoCommitStatementThreshold was set to any values
       other than 0, load-balancing server switching failed. It was
       because in this case, LoadBalancedAutoCommitInterceptor did not
       have the required access to the parent connection proxy that
       had established the connection, and this fix enables such access.
       (Bug #25223123, Bug #84098)

     * An attempt to retrieve multiple result sets returned by
       asynchronous executions of stored procedures resulted in an
       ExecutionException. With this fix, Connector/J now works properly
       when asynchronous executions return multiple result sets.
       (Bug #23721537)

Enjoy and thanks for the support!

On behalf of the MySQL Release Team,
Nawaz Nazeer Ahamed

MySQL Connector/ODBC 8.0.18 has been released

Dear MySQL users,

MySQL Connector/ODBC 8.0.18 is a new version in 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 the latest MySQL server version 8.0.

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 out 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

Enjoy and thanks for the support!

==================================================

Changes in MySQL Connector/ODBC 8.0.18 (2019-10-14,
General Availability)

Bugs Fixed

     * On Linux, memory was leaked on each server connection
       attempt due to how mysql_server_end was implemented and
       executed. (Bug #26194929)

     * On Windows, fixed direct setlocale() usage for
       multi-threaded applications.
       The workaround was to add ;NO_LOCALE=1 to the connection
       string.
       Thanks to Jacques Germishuys for the patch.
      (Bug#24814467, Bug #83297)

On Behalf of Oracle/MySQL Release Engineering Team
Prashant Tekriwal

MySQL Connector/Python 8.0.18 has been released

Dear MySQL users,

MySQL Connector/Python 8.0.18 is the latest GA release version of the
MySQL Connector Python 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.

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 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

To download MySQL Connector/Python 8.0.18, see the “General Availability
(GA) Releases” tab at

http://dev.mysql.com/downloads/connector/python/

Enjoy!


Changes in MySQL Connector/Python 8.0.18 (2019-10-14, General Availability)

Functionality Added or Changed


     * Added Python 3.8 support.

     * Connector/Python connections now set
       CAN_HANDLE_EXPIRED_PASSWORDS to indicate it can handle
       sandbox mode for expired passwords. This indicates that
       Connector/Python does not execute SET commands by a
       connection with an expired password, an operation that’s
       disallowed by MySQL Server 8.0.18 and higher.

     * On Windows, added platform dependent MSI installers that
       install and update Connector/Python for all supported
       Python versions on the system. Downloading and installing
       separate packages for each version is no longer required.

Bugs Fixed


     * The /usr/lib/mysqlx folder was not created after
       executing setup.py from commercial packages. (Bug
       #29959309)

     * A table scan for a float using the C Extension caused a
       memory leak. (Bug #29909157)

     * Added read_default_file as an alias for option_files to
       increase MySQLdb compatibility. (Bug #25349794, Bug
       #84389)

     * Connector/Python 8.0.17 does not properly negotiate the
       highest TLS protocol version supported by both the client
       and server. As such, because MySQL 5.6/5.7 platform
       packages (DEB and RPM) include YaSSL prior to
       5.6.45/5.7.27, and YaSSL only supports up to TLS 1.1,
       systems setting a minimum TLS protocol version above 1.1
       (such as Debian 10 that sets MinProtocol=TLSv1.2) do not
       function with Connector/Python 8.0.17.
       As a workaround, the wheel (pip) packages function
       properly as they are built using glibc and bundle OpenSSL
       instead of YaSSL.
       Connector/Python 8.0.18 adds a tls-versions option to
       define the TLS version to use.

Enjoy and thanks for the support!

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

Dear MySQL users,

MySQL Shell 8.0.18 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.18.

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.18, see the
“General Availability (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 and thanks for the support!


Changes in MySQL Shell 8.0.18 (2019-10-14, General Availability)

     * InnoDB Cluster Added or Changed Functionality

     * InnoDB Cluster Bugs Fixed

     * Functionality Added or Changed

     * Bugs Fixed

InnoDB Cluster Added or Changed Functionality


     * MySQL Shell can now optionally log SQL statements that
       are executed by AdminAPI operations, and output them to
       the console if the –verbose option is set. The
       dba.logSql MySQL Shell configuration option or
       –dba-log-sql command line option activates logging for
       these statements. Statements executed by sandbox
       operations are excluded. Viewing the statements lets you
       observe the progress of the AdminAPI operations in terms
       of SQL execution, which can help with problem diagnosis
       for any errors.

     * AdminAPI now supports IPv6 addresses if the target MySQL
       Server version is higher than 8.0.13. When using MySQL
       Shell 8.0.18 or higher, if all cluster instances are
       running 8.0.14 or higher then you can use an IPv6 or
       hostname that resolves to an IPv6 address for instance
       connection strings and with options such as localAddress,
       groupSeeds and ipWhitelist. For more information on using
       IPv6 see Support For IPv6 And For Mixed IPv6 And IPv4
       Groups
(https://dev.mysql.com/doc/refman/8.0/en/group-replication-ipv6.html).
       References: See also: Bug #29557250, Bug #30111022, Bug
       #28982989.

     * You can now reset the passwords for the internal recovery
       accounts created by InnoDB cluster, for example to follow
       a custom password lifetime policy. Use the
       Cluster.resetRecoveryAccountsPassword() operation to
       reset the passwords for all internal recovery accounts
       used by the cluster. The operation sets a new random
       password for the internal recovery account on each
       instance which is ONLINE. If an instance cannot be
       reached, the operation fails. You can use the force
       option to ignore such instances, but this is not
       recommended, and it is safer to bring the instance back
       online before using this operation. This operation only
       applies to the passwords created by InnoDB cluster and
       cannot be used to update manually created passwords.
       Note
       The user which executes this operation must have all the
       required clusterAdmin privileges, in particular CREATE
       USER, in order to ensure that the password of recovery
       accounts can be changed regardless of the password
       verification-required policy. In other words, independent
       of whether the password_require_current system variable
       is enabled or not.

     * MySQL Shell now supports specifying TLS version 1.3 and
       TLS cipher suites for classic MySQL protocol connections.
       You can use:

          + the –tls-version command option to specify TLS
            version 1.3.

          + the –tls-ciphersuites command option to specify
            cipher suites.

          + the tls-versions and tls-ciphersuites connection
            parameters as part of a URI-type connection string.
       Note
       tls-versions (plural) does not have a key-value
       equivalent, it is only supported in URI-type connection
       strings. Use tls-version to specify TLSv1.3 in a
       key-value connection string.
       To use TLS version 1.3, both MySQL Shell and MySQL server
       must have been compiled with OpenSSL 1.1.1 or higher. For
       more information see Using Encrypted Connections
(https://dev.mysql.com/doc/refman/8.0/en/encrypted-connections.html).


InnoDB Cluster Bugs Fixed


     * The Cluster.rejoinInstance() operation was not setting
       the auto increment values defined for InnoDB cluster,
       leading to the use of the default Group Replication
       behavior if the instance configuration was not properly
       persisted, for example on 5.7 servers. The fix ensures
       that the Cluster.rejoinInstance() operation updates the
       auto increment settings of the target instance. (Bug
       #30174191)

     * The output of Cluster.status() now includes the
       replicationLag field. The value is displayed in HH:MM:SS
       format and shows the time difference between the last
       transaction commit timestamp and the last transaction
       applied timestamp. This enables you to monitor the amount
       of time between the most recent transaction being
       committed and being applied on an instance. (Bug
       #30003034)

     * Cluster.addInstance() did not ensure that the MySQL Clone
       plugin was installed or loaded on all cluster instances,
       when available and not disabled. This meant that whenever
       a cluster was created using an older MySQL Shell version,
       on a target MySQL instance supporting clone, the instance
       would not have the clone plugin installed. The result was
       that any Cluster.addInstance() call that used clone would
       fail. The same issue happened if an instance was added to
       a cluster consisting of one instance using the
       incremental recovery type and afterwards the seed
       instance was removed. This resulted in all cluster
       instances not having the clone plugin installed and
       therefore any instance added using the clone recovery
       method would fail. The fix ensures that the clone plugin
       is installed on all cluster members (if available and not
       disabled) at cluster creation time and also whenever an
       instance is added to a cluster. (Bug #29954085)

     * The Cluster.rejoinInstance() operation was not checking
       the GTID consistency of an instance being rejoined to a
       cluster, which could result in data diverging. Now, the
       GTID consistency checks conducted as part of the
       Cluster.rejoinInstance() operation have been improved to
       check for irrecoverable or diverged data-sets and also
       for empty GTID sets. If an instance is found to not be
       consistent with the cluster, it is not rejoined and the
       operation fails with a descriptive error. You are also
       shown the list of errant transactions, possible outcomes
       and solutions. (Bug #29953812)

     * Cluster.describe() was retrieving information about the
       cluster’s topology and the MySQL version installed on
       instances directly from the current session. Now, the
       information is retrieved from the Metadata schema, and
       the MySQL version is not included in the information
       output by Cluster.describe(). (Bug #29648806)

     * Using a password containing the ‘ character caused
       dba.deploySandbox() to fail. Now, all sensitive data is
       correctly wrapped to avoid such issues. (Bug #29637581)

     * The Cluster.addInstance() operation creates internal
       recovery users which are required by the Group
       Replication recovery process. If the
       Cluster.addInstance() operation failed, for example
       because Group Replication could not start, the created
       recovery users were not removed. Now, in the event of a
       failure any internal users are removed. (Bug #25503159)

     * When a cluster had lost quorum and the majority of the
       cluster instances were offline except the primary, after
       reestablishing quorum and adding a new instance to the
       cluster, it was not possible to remove and add the
       previous primary instance to the cluster. This was
       because the operation failed when trying to contact
       offline instances, which was because the feature to
       verify if a Group Replication protocol upgrade is
       required was not considering the possibility of some
       cluster instances being offline (not reachable). The fix
       improves the Group Replication protocol upgrade handling
       for the Cluster.removeInstance() operation, which now
       attempts to connect to other cluster instances and use
       the first reachable instance for this purpose. (Bug
       #25267603)

     * The dba.configureInstance() operation was not setting the
       binlog_checksum option with the required value (NONE) in
       the option file for instances that did not support SET
       PERSIST (for example instances running MySQL 5.7), when
       the option file path was not provided as an input
       parameter but instead specified though the operation
       wizard in interactive mode. (Bug #96489, Bug #30171090)

Functionality Added or Changed


     * MySQL Shell’s upgrade checker utility (the
       util.checkForServerUpgrade() operation) includes the
       following new and extended checks:

          + The utility now checks for tablespace names
            containing the string “FTS”, which can be
            incorrectly identified as tablespaces of full-text
            index tables, preventing upgrade. The issue has been
            fixed in MySQL 8.0.18, but affects upgrades to
            earlier MySQL 8.0 releases.

          + The check for database objects with names that
            conflict with reserved keywords now covers the
            additional keywords ARRAY, MEMBER, and LATERAL.

          + – The checks for obsolete sql_mode flags now check
            the global sql_mode setting.
       Running the upgrade checker utility no longer alters the
       gtid_executed value, meaning that the utility can be used
       on Group Replication group members without affecting
       their synchronization with the group. The upgrade checker
       also now works correctly with the ANSI_QUOTES SQL mode.
       (Bug #30002732, Bug #30103683, Bug #96351)
       References: See also: Bug #29992589.

     * MySQL Shell has two new built-in reports, which provide
       information drawn from various sources including MySQL’s
       Performance Schema:

          + threads lists the current threads in the connected
            MySQL server which belong to the user account that
            is used to run the report. Using the report-specific
            options, you can choose to show foreground threads,
            background threads, or all threads. You can report a
            default set of information for each thread, or
            select specific information to include in the report
            from a larger number of available choices. You can
            filter, sort, and limit the output.

          + thread provides detailed information about a
            specific thread in the connected MySQL server. By
            default, the report shows information on the thread
            used by the current connection, or you can identify
            a thread by its ID or by the connection ID. You can
            select one or more categories of information, or
            view all of the available information about the
            thread.
       You can run the new reports using MySQL Shell’s \show and
       \watch commands. The reports work with servers running
       all supported MySQL 5.7 and MySQL 8.0 versions. If any
       item of information is not available in the MySQL Server
       version of the target server, the reports leave it out.

     * MySQL Shell has two new control commands:

          + The \edit (\e) command opens a command in the
            default system editor for editing. If you specify an
            argument to the command, this text is placed in the
            editor, and if you do not, the last command in the
            MySQL Shell history is placed in the editor. When
            you have finished editing, MySQL Shell presents your
            edited text ready for you to execute or cancel. The
            command can also be invoked using the short form \e
            or the key combination Ctrl-X Ctrl-E.

          + The \system (\!) command runs the operating system
            command that you specify as an argument to the
            command, then displays the output from the command
            in MySQL Shell. MySQL Shell returns an error if it
            was unable to execute the command.

     * MySQL Shell now uses Python 3. For platforms that include
       a system supported installation of Python 3, MySQL Shell
       uses the most recent version available, with a minimum
       supported version of Python 3.4.3. For platforms where
       Python 3 is not included, MySQL Shell bundles Python
       3.7.4. MySQL Shell maintains code compatibility with
       Python 2.6 and Python 2.7, so if you require one of these
       older versions, you can build MySQL Shell from source
       using the appropriate Python version.

Bugs Fixed


     * In debug mode, MySQL Shell raised an assertion when
       handling a character contained in SQL strings. (Bug
       #30286680)

     * If a Python lambda was added as a member of a MySQL Shell
       extension object, the Python object was not released
       correctly when MySQL Shell shut down, causing a
       segmentation fault. (Bug #30156304)

     * A memory leak could occur when Python code was executed
       in interactive mode. (Bug #30138755)

     * Help information for a MySQL Shell report could not be
       displayed unless there was an active session. MySQL Shell
       now checks for an open session only before actually
       running the report. (Bug #30083371)

     * If a default schema was set for the MySQL Shell
       connection, and a different default schema was set after
       the connection was made, MySQL Shell’s \reconnect command
       attempted to use the default schema from the original
       connection. The user’s current default schema is now used
       for the reconnection attempt. (Bug #30059354)

     * Due to a bug introduced by a change in MySQL Shell
       8.0.16, the MSI file that is used by Windows Installer to
       install MySQL Shell overwrote the Windows PATH
       environment variable with the path to the application
       binary (mysqlsh), removing any other paths present. The
       issue has now been fixed. (Bug #29972020, Bug #95432)

     * When the \reconnect command is used to attempt
       reconnection to a server, if the last active schema set
       by the user appears to be no longer available, MySQL
       Shell now attempts to connect with no schema set. (Bug
       #29954572)

     * In interactive mode, MySQL Shell now handles multiline
       comments beginning with a slash and asterisk (/*) and
       ending with an asterisk and slash (*/). (Bug #29938424)

     * The MySQL Shell \source command was not handled correctly
       when used in combination with SQL statements. (Bug
       #29889926)

     * With MySQL Shell in SQL mode, if multiple SQL statements
       including a USE statement were issued on a single line
       with delimiters, the USE statement was not handled
       correctly. (Bug #29881615)

     * If MySQL Shell’s JSON import utility was used to send a
       large number of JSON documents to a server with
       insufficient processing capacity, the utility could fill
       up the write queue with batches of prepared documents,
       causing the connection to time out and the import to
       fail. The utility now waits to read the response from the
       server before sending the next batch of prepared
       documents to the server. (Bug #29878964)

     * When MySQL Shell was built from source with a bundled
       OpenSSL package, the required linker flags were not set.
       The issue has now been fixed. (Bug #29862189)

     * If a new query was executed in MySQL Shell while a result
       was still active, resulting in rows being cached, not all
       rows were returned by the old query. (Bug #29818714)


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