These release notes were created with the assistance of MySQL HeatWave GenAI.
-
The following, deprecated in previous releases, were removed in this release:
-mc
-ma
-mx
--dba=enableXProtocol
--dba-log-sql
shell.options.outputFormat
.routingOptions()
addInstances
andremoveInstances
were removed fromCluster
.rescan()
(WL #16922)
dba.deploy_sandbox_instance()
is extended with the optionmysqldPath
. This option enables you to specify the path to themysqld
binary, or MySQL installation root, to use as the seed instance for your sandbox deployment. (Bug #25423030)
-
It was not possible to import a Routing Guideline with
import_routing_guideline()
if the guideline's name was already used by an existing guideline on the target topology. Using theforce
option overwrote the existing guideline with the imported guideline.As of this release, the
rename
option is added toimport_routing_guideline()
, enabling you to define an alternate name for the imported guideline, which is used in the event of a naming clash. (Bug #37750932)
failed if the guideline was defined on a ClusterSet. (Bug #37739359)RoutingGuideline
.show({"router":routerId
})
-
Partitioned tables without a primary key are now reported as errors when running a dump with the
create_invisible_pks
compatibility option set, as all columns used in the partitioning expression must be part of every unique key. Errors are returned similar to the following:ERROR: Table `s`.`t` does not have a Primary Key, this cannot be fixed automatically because the table is partitioned (this issue needs to be fixed manually)
(Bug #37892879)
The Dump and Load utilities'
ociAuth
option now supportsinstance_obo_user
. (Bug #37781203)-
It is now possible to disable collection of host-specific diagnostics information, with the
collectDiagnostics
utility'shostInfo
option.hostInfo
option defaults totrue
. To disable, set tofalse
. (Bug #36391259)
-
util.dumpInstance returned the following error when run against MySQL HeatWave DB Systems:
ERROR: User 'admin'@'%' is granted restricted privilege: OPTION_TRACKER_OBSERVER (fix this with 'strip_restricted_grants' compatibility option)
The list of privileges has been updated to include
OPTION_TRACKER_OBSERVER
. (Bug #37958876) -
It was not possible to dump data from a MySQL HeatWave DB System running MySQL 8.4, if the Hypergraph Optimizer was enabled. Errors were returned similar to the following:
MySQL Error 3999 (42000): The hypergraph optimizer does not yet support 'EXPLAIN with TRADITIONAL format'
As of this release, queries which chunk or fetch data from MySQL HeatWave-enabled tables now use an optimizer hint which disables offloading to MySQL HeatWave. This also improves dump performance. (Bug #37904121)
-
The load dump utility failed if the target MySQL instance did not have Performance Schema enabled. An error similar to the following was returned:
ERROR: [Worker006]: Error opening connection to MySQL: MySQL Error 1683 (HY000): 'ps_current_thread_id': The Performance Schema is not enabled.
As of this release, if the call to
ps_current_thread_id()
fails for any reason, it is logged, but does not cause the load to stop. (Bug #37867455)References: See also: Bug #36197620.
-
A fix introduced in 9.1.0 enabled the dump utilities to compare the server version to the MySQL Shell version and return an error if the server's minor version was greater than MySQL Shell's.
As of this release, an error is returned only if the server has a higher major version. If the minor version is greater, a warning is logged. (Bug #37866205)
References: See also: Bug #36701854.
-
MySQL Shell logging has been improved for
LOAD DATA
warnings generated by util.importTable and util.loadDump. Previously,LOAD DATA
warnings were printed to the terminal and were difficult to locate in the log. For example:Warning: schema@table@123.tsv.zst error 1062: Duplicate entry '1234567' for key 'table.PRIMARY'
These messages have been improved, making them easier to find in the log. For example:
Warning: An error has been reported while loading data into `schema`.`table` from 'schema@table@123.tsv.zst' file, error 1062: Duplicate entry '1234567' for key 'table.PRIMARY'
(Bug #37800574)
The MySQL REST Service-specific account,
ocirest
, is automatically excluded when dumping withocmids:true
, or loading into MySQL HeatWave DB Systems. (Bug #37792183)-
If util.copyInstance or util.loadDump connected using an account without the
ALLOW_NONEXISTENT_DEFINER
privilege, and tried to copy a non-view DDL object with a DEFINER clause set to an account included in the dump, an error was returned similar to the following:Error processing schema `<schema>`: Access denied; you need (at least one of) the SUPER or ALLOW_NONEXISTENT_DEFINER privilege(s) for this operation
As of this release, the accounts are created before any other DDL objects and grants are applied before view placeholders are replaced with views. (Bug #37669785)
The Upgrade Checker utility returned a false positive for partial keys in schemas referencing full keys in other schemas. (Bug #37651453)
-
util.copySchemas()
could hang if a dump was loaded or copied using an account which lacked theSELECT
privilege on the Performance Schema. The operation hung when indexes were rebuilt. Errors were returned similar to the following:MySQL Error 1142 (42000): SELECT command denied to user for table 'events_stages_current'
As of this release, error handling is added for this issue. (Bug #37593239)
-
MySQL Shell session objects now support storing client data, providing an alternative to using global dictionaries tied to session IDs, and improving management of session-specific data for plugins written in Python or JS. Several other improvements were made to session objects as part of this enhancement.
The following changes were made:
setClientData()
andgetClientData()
methods added to the classic and X session objects.Added a
trackSystemVariable()
method to theClassicSession
object to allow trackingSQL_MODE
.Added a
sqlMode
property to theClassicSession
object.
(Bug #37710803)
-
Shell now supports the storage of generic secrets. You can use the following new functions to manage your secrets:
shell.storeSecret(key, value)
: Stores a secret with the given key.shell.readSecret(key)
: Reads a secret with the given key.shell.deleteSecret(key)
: Deletes a secret with the given key.shell.deleteAllSecrets()
: Deletes all secretsshell.listSecrets()
: Lists keys of all secrets
NoteSecrets stored with this API are not accessible to the credential methods listed here: Working with Credentials, nor can this API cannot access credentials managed by that API.
See Generic Secret Storage for more information. (WL #16958)
-
Custom SQL Handlers did not correctly handle statements preceded by a full line comment. A syntax error was returned, similar to the following:
mysqlsh.DBError: MySQL Error (1064): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'yourStatement' at line 2
(Bug #37979837)
-
MySQL Shell now supports the
--local-infile
command-line parameter, similarly to themysql
client.See mysqlsh — The MySQL Shell for more information. (Bug #37960814)
Kerberos authentication is now supported on macOS. The
authentication_kerberos_client
plugin is now bundled on macOS installations of MySQL Shell. (Bug #37777584)-
MySQL Shell could crash when dumping a table with a functional, or virtual, index.
The following error was returned:
Segmentation fault (core dumped)
(Bug #37770454)
Using placeholders in SQL queries, such as
CREATE REST ... OPTIONS { "cache_ttl": ? }
with parameters, could return a parse error. (Bug #37196079)-
MySQL Shell read all profiles in an AWS config file, including those which were not properly prefixed with
profile
. Error messages were returned similar to the following:Could not obtain credentials to assume role using profile 'default';: Partial AWS credentials found in config file (/path/.aws/config, profile: nameOfProfile), missing the value of 'aws_secret_access_key' (RuntimeError);.
As of this release, MySQL Shell correctly handles AWS configuration profiles by requiring the
profile
prefix, ensuring that only valid profiles are read. (Bug #36916939) -
The
runSql()
method in the X session did not support!
placeholders. Errors were returned similar to the following:MySQL Error (5015): Session.run_sql: Too many arguments
(Bug #34715428)
Connections to invalid SSH URIs were not properly closed, resulting in multiple defunct sshd processes. As of this release, tunnel handling is improved and unused tunnels are closed automatically. (Bug #33564687)
-
It was not possible to start MySQL Shell on ARM platforms if
PAGE_SIZE
was set to 64K. An error similar to the following was displayed:mysqlsh: error while loading shared libraries: libssh.so.4 ELF load command aligment not page-aligned
(Bug #118021, Bug #37854467)