MySQL Shell 8.4 Release Notes
Running a rescan()
operation on a Replica
Cluster, could result in a warning that
group_replication_view_change_uuid
is required, but not configured. This occurred in a mixed
version ClusterSet, where the primary Cluster is on version
8.3.0, or higher, and the replicas were on versions lower than
8.3.0. The check for
group_replication_view_change_uuid
was incorrectly performed on the primary Cluster instead of the
target Replica Cluster.
(Bug #36657936)
If clone-based recovery failed while adding an instance, the
instance and Cluster could be left in an inconsistent state,
returning multiple errors, and unrecoverable by
rescan()
. It was not possible to remove the
instance with remove_instance()
, either.
add_instance()
did not properly handle
clone-related errors and did not stop Group Replication if
errors were detected.
As of this release, add_instance()
handles
clone-related errors, reverts the state of the target instance
and stops Group Replication on that instance.
(Bug #36657628)
Running AdminAPI operations against MySQL 5.7 instances resulted in an error, due to an attempt to run a query on a non-existent Performance Schema table.
As of this release, error handling is included to account for such issues. (Bug #36652642)
It was possible to define duplicate instance definitions in the
replicationSources
list of the
operation. The operation failed with an error.
Cluster
.add_replica_instance()
As of this release, the replicationSources
list is validated for such duplicates in all operations which
use it. The operation fails with an informative error.
(Bug #36614218)
AdminAPI commands which add or rejoin instances to Clusters using Clone did not check the existing members for compatibility. If no compatible members were available, Group Replication fell back to incremental recovery which can fail if Clone was the only supported provisioning method. An unexpected and unhelpful error was returned.
As of this release, the following commands have been updated to check compatibility and provide appropriate feedback:
ReplicaSet
.add_instance()
ReplicaSet
.rejoin_instance()
Cluster
.add_replica_instance()
Cluster
.rejoin_instance()
ClusterSet
.create_replica_cluster()
For a donor to be considered compatible for a recipient:
They must be running on the same operating system.
They must be running on the same platform.
The versions must be compatible:
Both must be version 8.0.17, or higher.
If both are version 8.0.37, or higher, only their major and minor versions need match. For example, 8.4.0 and 8.4.3.
For versions 8.0.17, or higher, and lower than 8.0.37, the major, minor, and patch numbers must match.
(Bug #36054619, Bug #36682741)
As of this release, the MYSQL_OPTION
schema
is excluded by the dump utilities when ocimds:
true
and is automatically excluded when loading a dump
into a MySQL HeatWave DB System.
(Bug #37023079)
The compatibility option,
unescape_wildcard_grants
, is added in this
release. When enabled, this strips escape characters in grants
on schemas, replacing escaped \_
and
\%
wildcards in schema names with
_
and %
wildcard
characters. When the
partial_revokes
system variable
is enabled, the \
character is treated as a
literal, which could lead to unexpected results. It is strongly
recommended to check each such grant before enabling this
option.
(Bug #36524862)
The index creation step of a load operation now includes percentage completion information. (Bug #35495220)
The upgrade checker utility returned a false positive for foreign keys defined on tables in the Cluster metadata schema. (Bug #36975599)
Under certain circumstances, using zstd compression, the dump utilities could generate corrupted data files. (Bug #36836188)
Attempting to run the dump or copy utilities from MySQL Shell 8.0.x against a more recent version of the server, such as 8.4.0, could result in a syntax error.
Many breaking changes have been made to MySQL syntax and
configuration between 8.0.37 and 8.4.x, and higher, such as
replacing SHOW MASTER STATUS
with
SHOW BINARY LOG STATUS
, for example. There
were also many removals. See the release notes for those server
versions for more information.
As of this release, the dump and copy utilities raise an error when such incompatibilities are detected and recommend the appropriate MySQL Shell upgrade.
It is always recommended to use the latest version of MySQL Shell.
(Bug #36701854)
Running any of the diagnostics utilities against an instance with binary logging disabled, and using an X Protocol connection, resulted in an error.
As of this release, the diagnostics utilities use classic connections, only. If the user connects to an instance using X Protocol, and runs any of the diagnostics utilities, they automatically establish a classic connection to the instance. (Bug #36613129)
The upgrade checker utility returned an error claiming that it was not possible to upgrade from MySQL 8.0.x to MySQL 8.4.x. This upgrade path is possible.
See Upgrade Paths for information. (Bug #115798, Bug #36930714)
Running the diagnostic utility
util.debug.collectDiagnostics
with the
parameter schemaStats:true
returned MySQL
Error 1242 if a table had more than one column of type BLOB.
(Bug #115033, Bug #36658194)
The upgrade checker utility reported Zero Date errors for views
using the NOW()
and
SYSDATE()
functions.
As of this release, views are excluded from the Zero Date check. (Bug #114347, Bug #36403042)
MySQL Shell failed to start if installed by MSI on Microsoft Windows 11 with Visual Studio Redistributable version 14.3x or lower. On Windows platforms, MySQL Shell requires Visual Studio Redistributable version 14.4x or higher.
See Microsoft Visual C++ Redistributable latest supported downloads. (Bug #37049411)
The MySQL Shell MSI progress dialogs displayed numbered placeholders instead of the installation values. (Bug #37033676)
When running MySQL Shell over SSH, if a command was entered on the command line, but not executed, closing the SSH session could result in the command being executed without user input. (Bug #36861912)
MySQL Shell set the environment variable
PYTHONHOME
on all platforms even if Python
was not bundled. As of this release,
PYTHONHOME
is no longer set and the bundled
Python executable is moved to another directory on Windows
platforms, which corresponds to the structure used by a
standalone Python installation.
(Bug #36836320)
The Python library hashlib
could not be
imported on MacOS platforms.
(Bug #36803237)
It was not possible to start MySQL Shell on Oracle Linux 8
running on ARM platforms if PAGE_SIZE
was set
to 64K. An error similar to the following was displayed:
mysqlsh: error while loading shared libraries: libantlr4-runtime.so.4.10.1: ELF load command alignment not page-aligned
(Bug #36792750)
MySQL Shell did not register interactive connections as
interactive. As a result, the system variable
interactive_timeout
was not
honored.
As of this release, interactive connections are treated as such.
You can also define a connection as interactive with the new
MySQL Shell connection option,
client-interactive
.
(Bug #36339280)
The URI parser threw an exception if the URI contained an unescaped @ character. (Bug #36105235)