ipWhitelist, deprecated in MySQL Shell 8.0.22, is removed in this version. UseipAllowlistfor MySQL Server and MySQL Shell 8.3.0, or higher. (Bug #35845603)AdminAPI supports GTID tags for MySQL 8.3.0, or higher. To use GTID tags, all instances in a Cluster, ClusterSet, or ReplicaSet, must be version 8.3.0, or higher. For example, attempting to add an instance of version 8.3.0 or higher to a Cluster running lower versions will result in a
Malformed GTIDerror on the primary and the operation will fail. (Bug #35605595)-
The following commands were added to AdminAPI for ReplicaSets:
: dissolves the ReplicaSet.replicaSet.dissolve(): rescans the ReplicaSet.replicaSet.rescan(): returns a JSON object showing the topology of the ReplicaSet.replicaSet.describe()
See MySQL InnoDB ReplicaSet. (Bug #33199178, Bug #33516540, WL #14870)
-
failed to add unmanaged instances to the Cluster if the unmanaged instances used an unsupported recovery account format.Cluster.rescan()As of this release,
checks for such unsupported account formats, creates the required account, assigns it to the recovery channel, and informs the user of the actions taken.Cluster.rescan()Also, when using
to adopt an existing channel (replicaSet.createReplicaSet()adoptFromAR: 1), it now ensures the channel uses the correct account format, creating the account if necessary.performs the same check and also creates the account if necessary. (Bug #35997569, Bug #35992885)replicaSet.rescan() -
The server system variable
slave_parallel_workersandreplica_parallel_workersare removed in 8.3.0 and can not be set or read by MySQL Shell for MySQL Server 8.3.0 or higher.For earlier versions of MySQL Server, the behavior of MySQL Shell is unchanged and
applierWorkerThreadsis still available. (Bug #35918575) replica_parallel_typeis deprecated in MySQL Server 8.3.0. AdminAPI no longer uses that variable if the Server version is 8.3.0 or higher. (Bug #35918518)The variables
relay_log_info_repositoryandmaster_info_repositoryare removed in MySQL Server 8.3.0. AdminAPI no longer uses those variables if the target server is version 8.3.0, or higher. (Bug #35913892)AdminAPI no longer retrieves the primary member ID from the system variable
group_replication_primary_member, which was deprecated in MySQL Server 8.0.4 and removed in MySQL 8.3.0. As of this release, for all versions of MySQL Server 8.0.4 or higher, the ID is retrieved from theMEMBER_IDcolumn ofperformance_schema.replication_group_memberstable. (Bug #35913856)-
The system variable
transaction_write_set_extraction(deprecated in MySQL 8.0.26) is removed in MySQL 8.3.0. This variable was a requirement for InnoDB Cluster and was checked bydba.checkInstanceConfiguration()anddba.createCluster(), and was set bydba.configureInstance().As of MySQL Shell 8.3.0,
transaction_write_set_extractionis neither set nor checked by any AdminAPI command. (Bug #35845680) As of this release, AdminAPI no longer sets a value for
group_replication_view_change_uuidon Clusters running MySQL Server 8.3.0 or higher. (Bug #35836245)-
did not correctly handle missing recovery account users. If it encountered a user with an unexpected format, and the correct format was missing, it did not attempt to create the correct user.Cluster.rescan()Errors similar to the following were logged by the
command:Cluster.status()WARNING: Incorrect recovery account (mysql_innodb_cluster_3337079193) being used. Use Cluster.rescan() to repair.As of this release,
creates the missing user. (Bug #35828910)Cluster.rescan() -
AdminAPI persisted all variables related to Group Replication or InnoDB Cluster even if the required value was the default. As of this release, the variable is checked to ensure the default value matches the requirement and does not persist it if it does.
For MySQL 5.7 instances, this is done using
dba.configureLocalInstance(). For MySQL 8.0, or higher, this is done usingdba.createCluster(). (Bug #35806236) -
Sandbox deployment did not take symlinks into account when generating the start/stop scripts. As a result, for example, if the server was upgraded and the symlink changed, the scripts used the wrong path.
As of this release, the canonical path to the binaries is used, not symlinks. (Bug #35672985)
-
did not retrieve the admin account credentials from the current session, unlike all other AdminAPI commands, if they were not provided explicitly.Cluster.forceQuorumUsingPartitionOf()As of this release,
uses the user credentials of the current session, if not explicitly provided. (Bug #35370180)Cluster.forceQuorumUsingPartitionOf() ReplicaSets still used metadata locks, which were deprecated in MySQL Shell 8.0.33. As of this release, ReplicaSets no longer use metadata locks. (Bug #35015556)
If
dba.createCluster(),, orCluster.addInstance()failed, they did not change altered system variables back to their original values. (Bug #34969740)Cluster.rejoinInstance()did not cycle the automatically-generated passwords for Read Replica channels. (Bug #34858086)Cluster.resetRecoveryAccountsPassword()-
always returned an X protocol-related error for connection failures, even when the issue was not X Protocol-related or the X Protocol was not in use. (Bug #33865464)Cluster.rescan()References: See also: Bug #35410360.
-
It was possible to add an instance to a Cluster although the instance was already a member of the Cluster but was considered
MISSING. An error was returned stating that theserver_uuidis already in use by itself.As of this release,
checks if the instance is already part of the Cluster and recommends the use ofCluster.addInstanceinstead. (Bug #30896233)Cluster.rejoinInstance
As of this release,
util.loadDump()andutil.copyInstance()automatically exclude themysql_auditandmysql_firewallschemas if the target is a MySQL HeatWave Service DB System. (Bug #35830920)-
As of this release, all failed connections to AWS S3 are retried three times, with a 1 second delay between retries.
If a failure occurs 10 minutes after the connection was created, the delay is changed to an exponential back-off strategy:
First delay: 3-6 seconds
Second delay: 18-36 seconds
Third delay: 40-80 seconds
(Bug #35396788)
-
It is now possible to generate a checksum for a dump to enable you to validate your data on import. The option
checksum: [true | false]is added to the following utilities:util.dumpInstance(),util.dumpSchemas(), andutil.dumpTables(): a metadata file,@.checksums.jsonis generated containing the details of the dumped data and a checksum for each.util.loadDump(): validates the checksums after the data is loaded.util.copyInstance(),util.copySchemas(), andutil.copyTables(): generate the metadata file,@.checksums.json, and validate the data.
(WL #15947)
util.checkForServerUpgrade()now checks for deprecated authentication methods and displays advice. (WL #15973)
util.loadDump()ignored leading zeroes (0) in S3 bucket prefix names. (Bug #36041691)-
Interrupting (Ctrl+c) a single-file import by
util.importTable()did not always result in an interrupted exception. The exception was thrown only if the file was being read at the time the interruption occurred.As of this release, the exception is always thrown for an interruption. (Bug #35992658)
An incorrect import strategy, one-file-per-thread, was used if a single file was imported with the special characters * and ? escaped. (Bug #35895247)
-
The metadata displayed by enabling the
showMetadataoption ofutil.loadDump()was not saved to the log file. As of this release, the metadata is logged ifshowMetadatais enabled.The metadata generated by the
util.copyInstance()operation is also logged. (Bug #35883344) It was not possible to dump a table which consisted of a single generated column. (Bug #35860654)
-
MySQL Shell stopped responding when attempting to load an incomplete dump.
As of this release, MySQL Shell checks the dump to ensure the expected metadata and data files are present, and generate errors if any are missing. (Bug #35822020)
MySQL Shell was updated to support new MySQL language features, such as new keywords, and so on. (Bug #35894915)
-
MySQL Shell now supports dollar-quoted strings,
.$tag$....$tag$Identifiers which start with $ and contain another $ are no longer supported. Identifiers which start with $ are deprecated. (Bug #35876418)
-
As of this version, MySQL Shell supports client-side
webauthnauthentication.The following command line options are added:
See WebAuthn Pluggable Authentication. (WL #15916)