Documentation Home
MySQL Shell Release Notes
Download these Release Notes
PDF (US Ltr) - 0.8Mb
PDF (A4) - 0.8Mb


MySQL Shell Release Notes  /  Changes in MySQL Shell 26  /  Changes in MySQL Shell 26.7.0 (2026-07-28)

Changes in MySQL Shell 26.7.0 (2026-07-28)

Note

These release notes were created with the assistance of MySQL HeatWave GenAI.

AdminAPI Added or Changed Functionality

  • AdminAPI's Clone compatibility checks have been updated to allow for updated LTS and calendar-based versioning. (Bug #39027193)

  • The diagnostic logs are improved by adding a "AdminAPI connectivity-check" log context, logging temporary channel setup and result details, and clarifying that connectivity is tested in both directions. Host-connectivity errors now explain which configured report_host/localAddress endpoint must be valid and reachable from the checked server. (Bug #39020731)

AdminAPI Bugs Fixed

  • Child Shell processes, spawned as part of an AdminAPI sandbox deployment, were started without the parent's configured start-up options, such as such as --disable-plugins or --disable-builtin-plugins. (Bug #39325975)

  • Under certain circumstances, if reboot_cluster_from_complete_outage() was used to switch a Cluster's communication stack from XCOM to MYSQL, rejoined members could retain the XCOM local address in their metadata. As a result, add_instance() or rejoin_instance() operations could generate stale group seeds and fail to join the group.

    As of this release, instance metadata is refreshed after a successful rejoin in which the communication stack was changed and rescan() can detect reachable members whose metadata differs from the group_replication_local_address. (Bug #39190669)

  • ClusterSet.set_routing_option() did not include unreachable_quorum_allowed_traffic in the list of supported Router options. As a result, Routers bootstrapped against a ClusterSet could not be configured with this option.

    Also, Cluster.set_routing_option() incorrectly allowed this option to be set for Clusters that belong to a ClusterSet, resulting in the error: "Router is not part of this topology". (Bug #120762, Bug #39618389)

Utilities Bugs Fixed

  • When dumping a MySQL 5.7 instance with targetVersion set to 8.4, the upgrade checker ran and erroneously displayed a warning relating to the upgrade path. (Bug #39441374)

  • util.debug.collect_diagnostics() collection on a ReplicaSet did not correctly retrieve the ReplicaSet status. (Bug #39114819)

  • The dump utility required SELECT on mysql.default_roles or mysql.role_edges tables when it read roles for the account running the dump. Errors were returned similar to the following:

    Failed to read user roles: MySQL Error 1142 (42000): SELECT command denied to user 
    'user'@'localhost' for table 'default_roles'
    ERROR: Unable to check privileges for user 'user'@'localhost'. User requires 
    SELECT privilege on mysql.* to obtain information about all roles.

    As of this release, INFORMATION_SCHEMA.APPLICABLE_ROLES is used for that information instead, unless users are also being dumped. If users are being dumped, SELECT privilege is required on the mysql schema. (Bug #36247713)

  • util.dumpInstance() chunking of tables with composite primary keys resulted in unbalanced chunks and poor performance of dumping and loading.

    Our thanks to Kamil Holubicki and the team at Percona for the contribution. (Bug #120616, Bug #119222, Bug #38575174, Bug #39508884)

  • The foreignKeyReferences upgrade check matched referenced key metadata using the owning constraint schema. As a result, foreign keys that referenced tables in another schemas could be missed. When schema filters were used, referenced index metadata could also be hidden resulting in incorrect partial-key results. (Bug #120043, Bug #39132467)

Functionality Added or Changed

  • The bundled pyOpenSSL has been updated to 26.2.0. (Bug #39518803)

  • require() now returns the search path used. (Bug #25026728)

Bugs Fixed

  • In previous releases, activate_mandatory_roles system variable was not checked during privilege checks. As of this release, activate_mandatory_roles is checked. (Bug #39439374)

  • Fixed an issue relating to unsanitized output. (Bug #39250568)

  • Fixed an issue relating to file management. (Bug #39250548)

  • It was not possible to access properties of Python objects in JS mode. (Bug #39179022)

  • Under certain circumstances, quoted literals were not properly handled when ANSI_QUOTES was disabled. (Bug #37018247)

  • It was possible to define a defaultMode of None. (Bug #36648483)

  • It was possible to use --passwords-from-stdin and --nw together. (Bug #36514956)

  • The postrm script did not check for the existence of /usr/lib/mysqlsh before attempting to delete it.

    Our thanks to Evgeniy Patlan for the contribution. (Bug #118802, Bug #38297776)