ipWhitelist
, deprecated in MySQL Shell 8.0.22, is removed in this version. UseipAllowlist
for 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 GTID
error 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_workers
andreplica_parallel_workers
are 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
applierWorkerThreads
is still available. (Bug #35918575) replica_parallel_type
is 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_repository
andmaster_info_repository
are 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_ID
column ofperformance_schema.replication_group_members
table. (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_extraction
is 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_uuid
on 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()Press CTRL+C to copyWARNING: 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_uuid
is already in use by itself.As of this release,
checks if the instance is already part of the Cluster and recommends the use ofCluster
.addInstance
instead. (Bug #30896233)Cluster
.rejoinInstance
As of this release,
util.loadDump()
andutil.copyInstance()
automatically exclude themysql_audit
andmysql_firewall
schemas 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.json
is 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
showMetadata
option ofutil.loadDump()
was not saved to the log file. As of this release, the metadata is logged ifshowMetadata
is 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
webauthn
authentication.The following command line options are added:
See WebAuthn Pluggable Authentication. (WL #15916)