MySQL Shell Release Notes  /  Changes in MySQL Shell 9.2.0 (2025-01-21, Innovation Release)

Changes in MySQL Shell 9.2.0 (2025-01-21, Innovation Release)

AdminAPI Added or Changed Functionality

  • This release introduces Routing Guidelines, a flexible and unified configuration interface enabling users to customize routing behavior. Routing Guidelines are defined as a JSON document, stored in the metadata schema.

    A Routing Guideline document classifies all destinations in the topology and enables you to define strict rules on what type of client session is connected to what member of the topology.

    A new class, RoutingGuideline is added to the AdminAPI. See the AdminAPI section of the MySQL Shell JavaScript API or the MySQL Shell Python API.

    The following methods were added to the Cluster, ClusterSet, and ReplicaSet classes:

    • create_routing_guideline(name[, json[, options]])

    • get_routing_guideline([name])

    • routing_guidelines()

    • remove_routing_guideline(name)

    • import_routing_guideline(file, [options])

    The following methods were updated:

    • set_routing_option()

    • routing_options()

    • router_options()

    • list_routers()

    See Routing Guidelines. (WL #14022, WL #14023)

AdminAPI Bugs Fixed

  • replicationLag of ReplicaSet.status() returned null if replication was idle.

    As of this release, the following changes were made:

    • replicationLag is set to null if the replication connection, or SQL thread, is not running.

    • replicationLag is set to applier_queue_applied when the last queued transaction matches the last applied transaction, or the applying transaction count is 0 (zero).

    (Bug #35914505)

  • It was not possible to remove a member from a ReplicaSet using ReplicaSet.removeInstance() with the force option enabled, if the member was in an ERROR state. (Bug #35282392)

  • The ReplicaSet metadata schema table, INSTANCES, was not populated properly when upgrading the metadata schema to version 2.2.0. As a result, MySQL Router did not recognize the topology and rejected connections to it. (Bug #116231, Bug #37101286)

Utilities Added or Changed Functionality

  • As of this release, MySQL Shell no longer supports Instance Metadata Service (IMDS) v1. (Bug #37380810)

  • The schema MYSQL_AUTOPILOT is excluded by dump and load operations with ocimds:true. (Bug #37278169)

  • As of this release, the upgrade checker utility writes all compatibility issues and fixes to the log file, instead of only writing to the console. (Bug #37154456)

  • The util.checkForServerUpgrade check, routineSyntax is renamed to syntax and now uses the SQL version of the target server for the syntax checks.

    See Utility Checks. (Bug #36589651, Bug #35640118, WL #16236)

  • It is now possible to dump and load binary logs using the following new utilities:

    • util.dumpBinlogs (outputUrl, {options}): Dumps binary logs generated since a specific point in time to the given local or remote directory.

    • util.loadBinlogs (outputUrl, {options}): Loads binary log dumps created by MySQL Shell from a local or remote directory.

    See MySQL Shell Utilities. (WL #15977)

Utilities Bugs Fixed

  • If convertBsonTypes was enabled, the JSON import utility failed when importing negative BSON values.

    An error similar to the following was returned:

            ValueError: Unexpected data, expected to find an integer string processing extended JSON for $numberInt at offset 25

    (Bug #37243264)

  • Amazon RDS made the following changes in 8.0.36:

    • It is no longer possible to grant BACKUP_ADMIN.

    • It is no longer possible to lock MySQL system tables.

    As a result, consistent dumps from Amazon RDS are not possible.

    As of this release, if locking the MySQL system tables fails with an Access Denied error, a warning is printed and the dump continues.

    Additionally, for non-Amazon RDS instances, if the user has the BACKUP_ADMIN privilege and LOCK INSTANCE FOR BACKUP succeeds, the MySQL system tables are not locked. (Bug #37226153)

  • Under certain circumstances, such as a large amount of data chunking, the maxRate dump option did not properly limit the throughput due to a gap between the start of the dump and the start of the data dump. As of this release, maxRate is used only when data is being dumped. (Bug #37216767)

  • MySQL Shell could hang when running a dump with consistent: true under an account which lacked privileges to execute FLUSH TABLES WITH READ LOCK.

    As of this release, query events are checked only if they contain data, and GRANT and REVOKE statements are flagged as unsafe. (Bug #37158908)

  • The upgrade checker utility returned a false positive for foreign keys defined on tables in the Cluster metadata schema. (Bug #36975599)

  • The importTable utility generated the following error if run over an X Protocol connection:

    Util.importTable: A classic protocol session is required to perform 
    this operation. (RuntimeError)

    As of this release, similarly to the other dump, export, load, and copy utilities, importTable creates a classic connection for the operation. (Bug #34582616)

Functionality Added or Changed

  • As of this release, the Google V8 JavaScript engine is replaced by Oracle GraalVM. (Bug #34370637)

  • As of this release, the default value of history.autoSave is changed to true, enabling the command history by default. (Bug #31746532)

Bugs Fixed

  • In MySQL Shell 8.0.40, RPM installation failed on Oracle Linux 8 due to a dependency on Python 3.9. As of this release, MySQL Shell bundles Python 3.13. (Bug #37479400)

  • If a Windows account name contained non-ASCII characters, MySQL Shell could not load Python plugins because the file path was not correctly encoded. "No such file or directory" error was returned. (Bug #37105233)

  • Under certain circumstances, a Ctrl+c key combination could lead to a deadlock. (Bug #35998250)


PREV   HOME   UP