MySQL Blog Archive
For the latest blogs go to
MySQL Shell 8.0.25 for MySQL Server 8.0 and 5.7 has been released

Dear MySQL users,

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

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

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 and InnoDB
ReplicaSet, providing integrated solutions 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 and MySQL InnoDB ReplicaSet see

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

For more information about the X DevAPI see

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

For more information on the APIs provided with MySQL Shell see


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

For more information about how to download MySQL Shell 8.0.25,
see the “General Availability (GA) Releases” tab at

We welcome and appreciate your feedback and bug reports, see


Changes in MySQL Shell 8.0.25 (2021-05-11, General Availability)

Bugs Fixed

     * When the consistent option is set to true for MySQL
       Shell’s instance dump utility util.dumpInstance(), schema
       dump utility util.dumpSchemas(), and table dump utility
       util.dumpTables(), the utility locks the tables for
       backup during the dump. If the user ID used to run the
       utility has the RELOAD privilege, the utility uses a
       FLUSH TABLES WITH READ LOCK statement to set a global
       read lock. If the user ID does not have that privilege
       but does have the LOCK TABLES privilege, the utility
       issues a series of LOCK TABLES statements. Previously,
       the utility would issue these statements in the same
       session, causing previously locked tables to be unlocked.
       The utility now locks the system tables in the main
       thread’s session, and creates additional sessions to lock
       the other tables that are being dumped. (Bug #32788788)

     * MySQL Database Service validates that all user accounts
       have passwords, but MySQL Shell’s instance dump utility
       util.dumpInstance did not previously check this when the
       ocimds option was specified, resulting in errors when
       loading the dump files. The utility now includes this in
       the compatibility checks and returns an error if a user
       account does not have a password set, except where the
       user account is identified as a role. The
       skip_invalid_accounts modification, which can be applied
       using the compatibility option, now also removes user
       accounts that do not have passwords set. In the case of a
       user account that is identified as a role, the utility
       dumps the account using the CREATE ROLE statement. (Bug

     * In some situations, MySQL Shell’s dump loading utility
       util.loadDump() did not delete the progress state file
       when the resetProgress option was specified. (Bug

     * When MySQL Shell’s dump loading utility util.loadDump()
       was used to apply a dump that was still in the process of
       being created (with the waitDumpTimeout option), and
       pre-authenticated requests were used for the dump, an
       authorization error could be returned when fetching the
       .idx file for a table. The utility’s behavior when
       handling the manifest has now been refactored to create
       the correct handle to the .idx files and use the correct
       pre-authenticated request URL. (Bug #32734817)

Enjoy and thanks for the support!

On Behalf of the MySQL Engineering Team,
Balasubramanian Kandasamy