MySQL 8.4 Release Notes  /  Changes in MySQL 8.4.13 (2026-10-20)

Changes in MySQL 8.4.13 (2026-10-20)

Atomic DDL Notes

  • Applying mysqlbinlog output failed while executing CREATE TABLE ... START TRANSACTION which were immediately followed by comments, preceded by #. Errors were returned similar to the following:

    ERROR 3977 (HY000) at line 117: Only BINLOG INSERT, COMMIT and
    ROLLBACK statements are allowed after CREATE TABLE with START
    TRANSACTION statement.

    (Bug #36313112)

Audit Log Notes

  • Fixed an issue relating to Audit Log filter UDF error-message formatting. (Bug #39472337)

Compilation Notes

  • MySQL CMake configuration could fail with newer Cyrus SASL versions when plugins present in older library releases were unavailable. Plugin files are now copied on a best-effort basis, permitting builds with both older and newer plugin sets. (Bug #39964171)

Component Notes

  • Fixed an issue relating to concurrent operations during deinitialization of the connection_control component. (Bug #39564040)

InnoDB Notes

  • After an exported table was modified, its tablespace discarded, and an older exported image imported, point lookups could return rows or values from the discarded tablespace generation. Stale Adaptive Hash Index entries are now treated as misses so lookups fall back to normal B-tree traversal. (Bug #39661793)

  • After ALTER TABLE ... IMPORT TABLESPACE failed, stale pages from the discarded tablespace could later trigger an assertion during eviction. Failed-import cleanup now preserves the index space identifier required to remove stale Adaptive Hash Index entries. Errors were returned similar to the following:

    [ERROR] [MY-013183] [InnoDB] Assertion failure: btr0sea.cc:1082:block->page.id.space() == index->space

    (Bug #39661792)

  • Fixed an issue relating to null input supplied to the InnoDB redo-log consumer UDF. (Bug #39632565)

    References: See also: Bug #34085310, Bug #36004840.

  • Fixed an issue relating to validation of index pages during transportable tablespace import. (Bug #39295605)

  • Fixed an issue relating to parser nesting for InnoDB full-text Boolean Mode expressions. (Bug #39234789)

  • Fixed an issue relating to concurrent COPY ALTER operations.

    Our thanks to George Ma and the team at Alibaba for the contribution. (Bug #39134921)

  • Fixed an issue relating to renaming columns used by self-referencing InnoDB foreign keys. (Bug #39091341)

  • If InnoDB page reorganization produced a size mismatch, InnoDB could continue using the reorganized page without recording the corresponding redo. A later insert followed by a server crash could consequently cause recovery failure or page corruption. The mismatch is now treated as fatal rather than allowing inconsistent redo state to continue. (Bug #116574, Bug #37258813)

MySQL Programs Notes

  • Fixed an issue relating to mysqldump processing of server-provided table identifiers. (Bug #39905165)

  • Fixed an issue relating to mysqldump validation of server-provided result, identifier, database, and table metadata. (Bug #39832176, Bug #39832186, Bug #39832202)

Optimizer Notes

  • Microsoft Windows: Fixed an issue relating to formatting unusually long query identifiers. (Bug #39883066)

  • Fixed an issue relating to column-identifier validation for histogram operations. (Bug #39882926)

  • Fixed an issue relating to argument-length validation for windowed BIT_OR() and BIT_AND(). (Bug #39882731)

  • Fixed an issue relating to range handling during group index skip scans. (Bug #39867741)

  • Fixed an issue relating to repeated correlated outer-field references in nested queries. (Bug #39603658)

  • Fixed an issue relating to optimizer handling of IN predicates. (Bug #39603649)

  • Fixed an issue relating to optimization of nested subquery expressions used with IN or NOT IN. (Bug #39603575)

  • Fixed an issue relating to multi-join plans. (Bug #39197517)

  • With optimizer_switch set to index_merge_union=off, an index-merge plan for disjunctive conditions could omit a disjunct and return incomplete results. For example, a query expected to return four rows instead returned: Empty set (0.00 sec).

    Our thanks to Kun Qin for the contribution. (Bug #114885, Bug #36584358)

Packaging Notes

  • The bundled libevent library was upgraded from 2.1.11 to 2.1.13. (Bug #40007263)

  • Installing commercial MySQL packages on EL10 aarch64 could fail because client programs and manual pages conflicted with files supplied by mariadb11.8. Package metadata now declares additional obsoletes to resolve these conflicts. Errors were returned similar to the following:

    Error: Transaction test error:
      file /usr/bin/mysql conflicts between attempted installs of mariadb11.8 and 
      mysql-commercial-client

    (Bug #39758376)

  • The bundled TIRPC library was upgraded to version 1.3.7. (Bug #39703871)

  • The bundled OpenTelemetry dependencies were upgraded from opentelemetry-cpp 1.23.0 to 1.27.0 and from opentelemetry-proto 1.7.0 to 1.10.0. (Bug #39491307)

  • Rebuilding MySQL source RPMs on minimal EL8 or EL9 systems could fail because required dependencies were omitted from mysql.spec.in.

    Our thanks to Simon Mudd for the contribution. (Bug #120895, Bug #39894524)

Performance Schema Notes

  • After an asynchronous replica restarted, its I/O and SQL threads could appear in INFORMATION_SCHEMA.PROCESSLIST but remain absent from performance_schema.processlist until replication was stopped and restarted. Foreground system threads with process-list IDs are now retained, and an empty user name is represented as system user. (Bug #36042255, Bug #113202)

Replication Notes

  • Fixed an issue relating to Group Replication message-decoding limits. (Bug #39905199)

  • Fixed an issue relating to sender validation for Group Replication messages. (Bug #39851456)

  • Fixed an issue relating to Group Replication UDF lifecycle handling during plugin unloading. (Bug #39838541)

  • Fixed an issue relating to Group Replication recovery-state validation. (Bug #39832216)

  • Under certain circumstances, after recovery from a network partition, a group could lose quorum and remain in a reconnection loop that blocked writes after networking stabilized. Connection delegation now uses a single nonblocking publication attempt, allowing normal reconnection handling to retry. Errors were returned similar to the following:

    MY-013781: "Error sending connection delegation command"

    (Bug #39767762)

  • Fixed an issue relating to error handling while mysqlbinlog rewrites events. (Bug #39659682)

  • Fixed an issue relating to Group Replication peer-address handling. (Bug #39654054)

  • Fixed an issue relating to validation by asynchronous_connection_failover_add_managed(). (Bug #39603374)

  • The GTID for an XA COMMIT or XA ROLLBACK could become visible before XA RECOVER stopped listing the completed XID. XA RECOVER now hides the finalized transaction before the GTID is externalized. (Bug #36505659)

  • After XA PREPARE made its GTID visible in gtid_executed, XA RECOVER could still omit the prepared XID. The XID is now made visible before the GTID state is updated, so waiting for the GTID guarantees that another session can observe the prepared transaction. (Bug #35872823)

  • Replaying a CTAS binary log through mysqlbinlog into a server with binary logging disabled could fail instead of restoring the logged tables and rows because an additional transaction produced an invalid transaction boundary. Parser-started CTAS transactions are now suppressed for binlog-applier threads.

    Our thanks to Venkatesh Duggirala and the team at Google for the contribution. (Bug #120757, Bug #39743645)

  • On a binlogless replica using relay-log recovery, parallel replication, and commit-order preservation, replicated FLUSH PRIVILEGES statements could leave gaps in mysql.gtid_executed. After restart, the replica could request already-applied transactions, resulting in duplicate errors or failure when the source had purged the required binary logs. Errors were returned similar to the following:

    Cannot replicate because the source purged required binary logs. 
    Replicate the missing transactions from elsewhere, or provision a new replica from backup

    (Bug #115613, Bug #36849620)

  • After a replica worker applied a rewritten statement, SHOW PROCESSLIST and performance_schema.threads could continue displaying the completed statement while the worker was idle. Query-event cleanup now clears the displayed state.

    Our thanks to Marcelo Altmann for the contribution. (Bug #99200, Bug #31140932)

Security Notes

  • Fixed an issue relating to server-supplied RSA public-key handling during client-side SHA-2 authentication. (Bug #39883040)

  • Fixed an issue relating to client parsing of WebAuthn assertion challenge packets. (Bug #39740347)

  • Fixed an issue relating to nullable numeric arguments supplied to audit_api_message_emit_udf(). (Bug #39633136)

SQL Syntax Notes

  • ALTER TABLE ... EXCHANGE PARTITION could move rows that violated the destination table's CHECK constraints or exchange tables whose generated columns used different expressions. Rows are now checked in both directions, including when WITHOUT VALIDATION skips partition-bound checks, and mismatched generated-column definitions are rejected. Errors were returned similar to the following:

    ERROR 3819 (HY000): Check constraint 't_swap_chk_1' is violated.

    (Bug #120206, Bug #39634208)

X Plugin Notes

  • Fixed an issue relating to arguments supplied to MySQL X Plugin UDFs. (Bug #39839185)

Functionality Added or Changed

  • Important Change: MySQL Server now supports a four-part release identity in the form MAJOR.MINOR.PATCH.UPDATE, with an empty update component represented as zero. The complete version is available through VERSION_WITH_UPDATE(), the read-only global version_with_update variable, mysqld --version-with-update, and new client-library APIs:

            SELECT VERSION_WITH_UPDATE();
            SELECT @@version_with_update;
    mysqld --version-with-update

    Existing interfaces, including VERSION(), version, the classic handshake, numeric version IDs, and existing C APIs, retain three-part compatibility semantics. mysql_upgrade_history records exact update transitions without changing upgrade compatibility decisions.

    See mysql_upgrade_history File for more information. (Bug #40013285, WL #17318)

Bugs Fixed

  • Microsoft Windows: Fixed an issue relating to client console output handling. (Bug #39472263)

  • Fixed an issue relating to CDATA validation by LOAD XML. (Bug #39938954)

  • Fixed an issue relating to stack-depth handling for nested ROW expressions during statement preparation. (Bug #39925442)

  • Fixed an issue relating to account host matching. (Bug #39911722)

  • Fixed an issue relating to parser resource controls for complex statements containing common table expressions. (Bug #39905175)

  • Fixed an issue relating to mysqlbinlog handling of user-variable events. (Bug #39905157)

    References: See also: Bug #29028491.

  • Fixed an issue relating to path restrictions during component loading. (Bug #39905086)

  • Fixed an issue relating to XML value parsing. (Bug #39905057)

  • Fixed an issue relating to validation of binary JSON values. (Bug #39872033)

  • Fixed an issue relating to uninstalling component_telemetry. (Bug #39839041)

  • Fixed an issue relating to argument validation by mysql_query_attribute_string(). (Bug #39838999)

  • Fixed an issue relating to raw remote file handling by mysqlbinlog. (Bug #39832258)

    References: See also: Bug #39068649.

  • Fixed an issue relating to multifactor-authentication request handling in the client library. (Bug #39832236)

  • Fixed an issue relating to binary log row-event processing. (Bug #39784720)

  • Fixed an issue relating to client-library validation of temporal values in prepared-statement result rows. (Bug #39740351)

  • Fixed an issue relating to InnoDB full-text cache monitoring. (Bug #39729888)

  • Fixed an issue relating to WebAuthn client assertion generation. (Bug #39665344)

  • Fixed an issue relating to validation of clone storage locators. (Bug #39633821)

  • Fixed an issue relating to spatial data conversion. (Bug #39616304)

  • Fixed an issue relating to stack use during JSON path evaluation. (Bug #39616228)

    References: See also: Bug #23106330.

  • Fixed an issue relating to client authentication packet validation. (Bug #39603366)

  • Fixed an issue relating to replication protocol packet validation. (Bug #39603354)

  • Fixed an issue relating to Classic Protocol temporal-value validation. (Bug #39603337, Bug #39603346)

  • Fixed an issue relating to updates of InnoDB tables containing many indexed virtual columns. (Bug #39593341)

  • Fixed an issue relating to InnoDB online DDL conversion handling.

    Our thanks to George Ma and the team at Alibaba for the contribution. (Bug #39362553)

  • Fixed an issue relating to IndexMerge query processing. (Bug #39147848)

  • Fixed an issue relating to InnoDB foreign-key rollback handling. (Bug #39147834)

  • Fixed an issue relating to InnoDB memory allocation calculations.

    Our thanks to Hongyu Qiao and the team at Tencent for the contribution. (Bug #39123849)

  • Fixed an issue relating to memory use and cancellation handling for JSON_ARRAYAGG() workloads. (Bug #38973857)

  • After a global privilege was granted and partially revoked for a schema, a subsequent GRANT for the same account could fail with ERROR 3901. Errors were returned similar to the following:

    ERROR 3901 (HY000): 'GRANT' privilege for database 'sys' exists both 
            as partial revoke and mysql.db simultaneously. It could mean that the 
            'mysql' schema is corrupted.

    (Bug #38921524)

  • Fixed an issue relating to corruption handling by ibd2sdi. (Bug #38810796)

  • Fixed an issue relating to InnoDB rollback for full-text indexed tables. (Bug #38547442)

  • Fixed an issue relating to table-rebuild DDL processing. (Bug #38305379)

  • Large JSON_ARRAYAGG() window frames could become progressively slower and remain in the executing state after KILL QUERY. Materialization now avoids unnecessary JSON-value copying, and buffered processing responds promptly to cancellation. (Bug #37878680)

    References: See also: Bug #38973857.

  • Fixed an issue relating to InnoDB tablespace import after crash recovery.

    Our thanks to Chong Lee and the team at Alibaba for the contribution. (Bug #37380231)

  • Fixed an issue relating to InnoDB reads using older transaction views after tablespace import. (Bug #36999166)

  • Fixed an issue relating to ROLLUP query execution. (Bug #35763384)