-
The TLSv1 and TLSv1.1 connection protocols are now deprecated, and support for them is subject to removal in a future MySQL Server version. (For background, refer to the IETF memo Deprecating TLSv1.0 and TLSv1.1.) It is recommended that connections be made using the more-secure TLSv1.2 and TLSv1.3 protocols. TLSv1.3 requires that both the MySQL server and the client application be compiled with OpenSSL 1.1.1 or higher.
MySQL Shell’s
--tls-version
command option, which is one of the options available to configure an encrypted connection at startup of MySQL Shell, now returns a deprecation warning if you specify TLSv1 or TLSv1.1 explicitly as part of the value for the option. (WL #14560)
The last instance that remains in
ONLINE
status in an InnoDB Cluster cannot be removed using the
operation. Previously, when this was attempted, the operation failed with an unrelated error, but it is now handled correctly. (Bug #32955287)cluster
.removeInstance()AdminAPI operations no longer change the Group Replication communication protocol version automatically in situations where it is possible to increase the version due to a change in group membership. The automated operations caused delays on changes to the cluster. Instead, where relevant, the operations return a message to inform the user that a version upgrade should be carried out. A new option
upgradeCommProtocol
has been added to therescan()
operation so that the administrator can upgrade the communication protocol version when they choose to do so. (Bug #32769580)
When loading a dump that was already in progress, MySQL Shell's dump loading utility
util.loadDump()
flagged a table as ready to process before the metadata was read, which could potentially result in an issue in the event that the metadata was not completely downloaded and parsed before processing began on the table. (Bug #32934878)When MySQL Shell's dump loading utility
util.loadDump()
was used to load a dump that contained a zero value in an AUTO_INCREMENT column, the utility did not set the NO_AUTO_VALUE_ON_ZERO SQL mode, meaning that the next sequence number was generated and used instead. The behavior has now been corrected. (Bug #32926856)MySQL Shell's instance dump utility
util.dumpInstance()
, schema dump utilityutil.dumpSchemas()
, and table dump utilityutil.dumpTables()
now report an error for a table that usesROW_FORMAT=FIXED
when theocimds
option is used, and remove that clause fromCREATE TABLE
statements when theforce_innodb
compatibility modification is specified. (Bug #32925914)MySQL Shell now bundles Python 3.9.5 for platforms where Python 3 is not included or is not at the minimum supported version. The previous bundled version was Python 3.7.7. (Bug #32924896)
From MySQL Shell 8.0.26, you can use MySQL Shell's instance dump utility
util.dumpInstance()
to dump user accounts from a MySQL 5.6 instance. The SUPER privilege is required when user accounts are included in the dump. (Bug #32883314)The error messages returned by MySQL Shell's instance dump utility
util.dumpInstance()
, schema dump utilityutil.dumpSchemas()
, and table dump utilityutil.dumpTables()
have been enhanced to provide more context for the error, such as the schema or table involved and the step that was being executed. The utilities also now cache frequently used values such as quoted table names. Other enhancements have been made to optimize the chunking procedure. (Bug #32850177)MySQL AdminAPI now uses the terms “source”, “replica”, and “mta” for target MySQL instances where these terms are used in system variables and other areas, and user messages have been updated to use the new terms. (Bug #32774826)
If the primary key of a table was a signed integer, an overflow in the data range during chunking by MySQL Shell's instance dump utility
util.dumpInstance()
, schema dump utilityutil.dumpSchemas()
, and table dump utilityutil.dumpTables()
could cause MySQL Shell to consume excessive memory and disk space. (Bug #32773468)Previously, when MySQL Shell's instance dump utility
util.dumpInstance()
, schema dump utilityutil.dumpSchemas()
, and table dump utilityutil.dumpTables()
were run with thedryRun
option set totrue
, so that the data was not actually dumped, the utilities attempted to acquire the needed table locks. To avoid impacting on the database, the utilities now only check whether the user ID has the appropriate privilege to acquire a lock, and behave according to the result. Any missing privileges are reported. The utilities’ method of fetching user privileges has also been refactored to use theSHOW GRANTS
statement, and to support partial revokes. (Bug #32695301)X DevAPI’s ClassicSession and Session objects have a new method
getSocketFd
to fetch the session’s socket descriptor. The Session object has new methodsenableNotices
andfetchNotice
to fetch asynchronous notifications published by X Protocol for Group Replication events such as view changes. (Bug #32665405)On UNIX systems, the list of plugins could not be retrieved from MySQL Shell’s plugins repository because the manifest path was specified in Windows format. The path has now been changed to POSIX mode. (Bug #32663889)
MySQL Shell’s command-line integration did not support deprecated options and treated them as invalid. (Bug #32651899)
MySQL Shell's instance dump utility
util.dumpInstance()
, schema dump utilityutil.dumpSchemas()
, and table dump utilityutil.dumpTables()
use an algorithm to divide table data into chunks. If the algorithm carried out chunking using an integer column, large gaps in the sequence of integers caused by deleted rows could result in the ranges and chunks becoming increasingly larger until the benefit of chunking was lost. The algorithm has now been improved to use an increased number of iterations and make additional checks if the results are not as expected. (Bug #32602325)-
MySQL Shell’s log now records more detailed information when there is an issue with an Oracle Cloud Infrastructure operation, including the target URL, the request and response headers, and the response data. If the target URL is a pre-authenticated request (PAR), the sensitive components are masked in the log file.
An issue with a change to the logging level of messages not activating message logging at the right level has also been fixed. (Bug #32593125)
MySQL Shell retrieved SQL identifiers that used quoting as a series of separate tokens. (Bug #32532347)
MySQL Shell's instance dump utility
util.dumpInstance()
, schema dump utilityutil.dumpSchemas()
, and table dump utilityutil.dumpTables()
use multiple threads to dump data from the MySQL instance, each using its own session. If one of these threads was slow to start and an exception was thrown in the main dumper thread in the meantime, a segmentation fault occurred when the thread tried to access the main dumper thread’s session. The utilities now keep the main dumper thread’s session available even after an exception is thrown, and only delete it when the utility ends. (Bug #32528110)In MySQL Shell’s JavaScript mode, if a variable was defined using the
let
keyword but was not properly initialized, it was left in a state where it could neither be accessed nor initialized. MySQL Shell now permits variables defined using thelet
keyword to be redefined with a different value, which can be used to correct the issue. Variables defined using theconst
keyword cannot be redefined in this way. (Bug #32470621)When an integer value received by MySQL Shell was converted for representation in JavaScript mode, rounding errors occurred for values greater than 2 ^ 31 – 1. The data type used for the conversion has been changed so that values up to the limit accepted by the JavaScript language can be converted correctly. (Bug #32423886)
MySQL Shell’s Python mode implements its own array wrapper for lists. Previously, the
isinstance
function did not identify these as thelist
object type. The implementation has been changed to inherit from Python’slist
so that theisinstance
function operates correctly. MySQL Shell stores data in the array wrapper rather than the base class. Due to this fact, and the fact that data is shared between MySQL Shell’s Python and JavaScript modes, it is only safe to use lists to store basic data types and MySQL Shell global objects. (Bug #32220514)MySQL Shell's Python mode now provides full support for programs that use multithreading. Using the new function
shell.createContext
, output, logging, and user input for a thread can be isolated, and a separate log file can be specified for each thread. (Bug #32101215)It was not possible to install MySQL Shell on Mac OS X because the packages were not signed. (Bug #103855, Bug #32943928)