AdminAPI
status()now identifies internal replication accounts that use the deprecated or removedmysql_native_passwordplugin. For InnoDB Cluster, ClusterSet, ReplicaSet, and Read Replica topologies running MySQL 8.0.34 or later, use.reset_replication_accounts_password({"recreate": True})to recreate affected accounts withcaching_sha2_password. Stale accounts not associated with configured replication channels are ignored. (Bug #35806274)
-
Uploads to S3 buckets with an Object Lock retention period could fail because required checksum headers were not sent. MySQL Shell now sends
SHA256checksums for object and multipart uploads, preserves part checksums through listing, copying, and completion, and rejects part responses with missing or empty checksums.Our thanks to Kamil Holubicki for the contribution. (Bug #40028091, Bug #119568)
-
During an 8.4.9-to-8.4.11 upgrade check, valid
optimizer_switchsettings containinghypergraph_optimizer=off,hash_set_operations=oncould be rejected because incomplete metadata was used. The check now uses version-specific allowed values and validates the effective server setting correctly. Errors were returned similar to the following:Error: The following system variables that were detected as being used are using values that are invalid in the target version. - optimizer_switch: variable value includes 'hypergraph_optimizer=off,hash_set_operations=on'(Bug #39875290)
MySQL HeatWave compatibility checks could incorrectly report the permitted
EXPORT_QUERY_RESULTS,MANAGE_DATA_MASKING_POLICY, andVECTOR_STORE_LOAD_EXECprivileges as restricted. MySQL Shell dump compatibility checks now include all three privileges in the allowed list. (Bug #39790297)Interrupting a load could cause the monitoring thread to repeatedly attempt to cancel server connection IDs that had already been removed, producing excessive log messages until the worker exited. MySQL Shell now remembers terminal connection IDs and skips repeated cancellation attempts while resuming cancellation if a worker reconnects. (Bug #39783888)
-
Upgrading to MySQL 9.6 or later without first removing uses of
MD5(),SHA1(), orSHA()from functional indexes orCHECKconstraints could prevent server startup; generated-column uses could leave tables inaccessible. The newremovedLegacyHashingFunctionscheck reports errors for generated columns, functional indexes,CHECKconstraints, and default expressions. Affected schemas must be changed before upgrading. Uses in views, routines, triggers, and events are reported as warnings and can be repaired withcomponent_classic_hashing. Errors were returned similar to the following:[ERROR] [MY-010020] Data Dictionary initialization failed. [ERROR] [MY-010119] AbortingOur thanks to Akshat Nehra for the contribution. (Bug #39761531, Bug #120948)
The Upgrade Checker could omit a deprecation warning when
group_replication_communication_stackwas set toXCOMfor an upgrade to MySQL 26.7, in whichXCOMis deprecated andMYSQLbecomes the default. Lifecycle metadata across parallel release lines is now evaluated to select the applicable deprecation or removal marker. (Bug #39333793)-
The
reservedKeywordsupgrade check could omit keywords introduced after MySQL 8.0.31 or be skipped for newer source versions. It now checksQUALIFY,TABLESAMPLE,LIBRARY, andEXTERNAL, handles the version window in whichMANUALandPARALLELare reserved, and reports only words newly reserved on the target. Warnings are returned similar to the following:Warning: The following objects have names that conflict with new reserved keywords. Ensure queries sent by your applications use `quotes` when referring to them or they will result in errors.Our thanks to Yewon Kwak for the contribution. (Bug #121252, Bug #40008164)
-
Valid colon-delimited TLS and SSL cipher lists could be rejected by the Upgrade Checker because each list was treated as one token. Colon separation is now supported for
ssl_cipher,admin_ssl_cipher,tls_ciphersuites, andadmin_tls_ciphersuites. Errors were returned similar to the following:Error: The following system variables that were detected as being used are using values that are invalid in the target version. - ssl_cipher: variable value includes 'ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES128-GCM-SHA256'Our thanks to Tony Chen for the contribution. (Bug #120961, Bug #39760683)
-
Important Change: Classic and X Protocol connections can now configure post-quantum cryptography when the client libraries use OpenSSL 3.5 or later. The new
tls-kex,force-pqc, anduse-pqc-signoptions are available through the command line, connection URIs, and connection dictionaries; the Boolean options default tofalse. For example:mysqlsh --mysql --uri user@host:3306 --ssl-mode=REQUIRED --tls-version=TLSv1.3 --force-pqc --tls-kex=X25519MLKEM768The
\statuscommand andshell.status()display negotiated TLS key-exchange and signature algorithms when the server supplies them, while remaining compatible with older servers. (WL #17311)References: See also: Bug #39980717.
-
MySQL Shell can now be built on FreeBSD. The FreeBSD build path includes platform-specific executable-path and memory handling, system
libfido2support, adjusted Kerberos requirements, and a static Abseil fallback for Debug builds.Our thanks to Daniël van Eeden for the contribution. (Bug #39900396, Bug #119768)
-
Classic Protocol Session API connections made through URIs or connection dictionaries now accept the Boolean
can-handle-expired-passwordsandclient-interactiveoptions. The former enablesCLIENT_CAN_HANDLE_EXPIRED_PASSWORDS; the latter enables interactive-client behavior, including expired-password handling. The options are supported bymysql.getSession(),mysql.get_session(), andshell.open_session(). For example:mysql.get_session({"user":"user","host":"host","can-handle-expired-passwords":True})(Bug #39760752)
-
RPM installations could contain corrupted bundled
mysqlbinlogandmysql_config_editorexecutables because their RPATH values were unnecessarily rewritten. This could prevent binary log dump and load operations and login-path credential storage. RPATH processing now removes existing RPATH or RUNPATH values from bundled Linux libraries and writes a relative RPATH only when required. Errors were returned similar to the following:/usr/libexec/mysqlsh/mysqlbinlog: no version information available (required by /usr/libexec/mysqlsh/mysqlbinlog) Segmentation fault (core dumped)Our thanks to Evgeniy Patlan for the contribution. (Bug #40008224, Bug #121135)
-
Non-static RPM package builds could fail when the CMake command terminated before all options were supplied, causing the remaining options to be executed as a separate shell command. The command now passes all options to CMake.
Our thanks to Evgeniy Patlan for the contribution. (Bug #121138, Bug #40007307)
-
Building MySQL Shell against an older MySQL Server series could create duplicate parser targets or use client libraries lacking required features. Errors were returned similar to the following:
CMake Error at mysqlshdk/libs/yparser/mysql/CMakeLists.txt:123 (add_executable): add_executable cannot create target "gen_lex_hash_9.7" because another target with the same name already exists.MySQL Shell now rejects older server major and minor versions during initial configuration; source-package builds remain exempt.
Our thanks to Evgeniy Patlan for the contribution. (Bug #121137, Bug #40008178)
-
Parser plugins could fail to link in GCC link-time optimization builds that treated warnings as errors because generated parsers defined conflicting enum names and left semantic values uninitialized. Each parser now uses a distinct enum name and initializes its semantic value. Errors were returned similar to the following:
sql_yacc.cc:104:6: error: type 'yysymbol_kind_t' violates the C++ One Definition Rule [-Werror=odr] sql_hints.yy.cc:104:6: note: an enum with different value name is defined in another translation unit lto1: all warnings being treated as errorsOur thanks to Evgeniy Patlan for the contribution. (Bug #121136, Bug #40008265)
-
Clean Debian package builds could fail because Bison and Python 3, which are required by the SQL parser, were not declared as build dependencies. Debian packaging now declares
bisonandpython3, and equivalent RPM requirements are included even when Python is bundled.Our thanks to Evgeniy Patlan for the contribution. (Bug #121134, Bug #40008025)
-
Bundling a versioned library or multiple files with the same basename could create invalid or duplicate CMake targets and prevent MySQL Shell package configuration. Copy-target names are now sanitized and receive numeric suffixes when necessary, preserving a distinct dependency for each bundled file.
Our thanks to Evgeniy Patlan for the contribution. (Bug #121133, Bug #40008043)
-
Generated Debian package descriptions and changelog links could reference older MySQL Shell releases, and the declared
debhelperdependency was below the package compatibility level. These fields are now derived from the current version, and the package requiresdebhelper 11.Our thanks to Evgeniy Patlan for the contribution. (Bug #121132, Bug #40008092)
-
Debian and RPM package builds previously assumed that the MySQL build directory was the
bldsubdirectory of the server source tree, preventing use of server builds stored elsewhere. Packaging now honorsMYSQL_BUILD_DIRfor Debian andwith_mysql_buildfor RPM, retains the former location as the default, and supports paths containing spaces.Our thanks to Evgeniy Patlan for the contribution. (Bug #121131, Bug #40008103)
-
On s390x and other big-endian architectures, which are not officially supported, MySQL Shell source builds could fail because the binary log reader referenced an undeclared variable and left its buffer parameter unused. The reader now uses the buffer parameter when decoding four-byte integers. Errors were returned similar to the following:
mysqlshdk/libs/db/mysql/binary_log.cc: error: ‘A’ was not declared in this scope return static_cast<uint32_t>(A[0]) | (static_cast<uint32_t>(A[1]) << 8) mysqlshdk/libs/db/mysql/binary_log.cc: error: unused parameter ‘ptr’ [-Werror=unused-parameter]Our thanks to Lena Voytek for the contribution. (Bug #121119, Bug #40007246)