Skip to content
Rate this page
Thanks for your feedback
Thank you! The feedback has been submitted.

For help, click the link below to get free database assistance or contact our experts for personalized support.

Percona Server for MySQL 8.4.10-10 (2026-07-)

Instead of releasing Percona Server for MySQL 8.4.9-9, we are skipping to 8.4.10-10. This build includes all of the enhancements and bug fixes from MySQL 8.4.9-9.

Get started with Quickstart Guide for Percona Server for MySQL.

Percona Server for MySQL 8.4.10-10 includes all the features and bug fixes available in the MySQL 8.4.10 Community Edition in addition to enterprise-grade features developed by Percona.

Release highlights

MySQL 8.4.10

Improvements and bug fixes introduced by Oracle for MySQL 8.4.10 and included in Percona Server for MySQL are the following:

  • Connection attribute parsing could read a length-encoded size field before verifying that the complete field was present in the packet, leading to an out-of-bounds read. A size check is now performed before reading the field. (Bug #39116965)

  • A regression in row size estimation for ROW_FORMAT=COMPRESSED tables could cause CREATE TABLE to fail with Row size too large for tables that were accepted in earlier releases. (Bug #39129182, Bug #120323)

  • Under certain circumstances, when calculating the maximum possible index record size, an assertion failure could occur. (Bug #85060, Bug #25579578)

Find the complete list of bug fixes and changes in the MySQL 8.4.10 release notes .

Security updates

This release addresses the following security vulnerabilities:

  • CVE-2026-46850: A vulnerability in MySQL Shell (Shell for VS Code) allows a low-privileged attacker with network access via HTTP to compromise MySQL Shell, with potential scope change impact on additional products (CVSS 3.1 Base Score 9.9).

  • CVE-2026-46860: A vulnerability in MySQL Router allows an unauthenticated attacker with network access via HTTP to compromise MySQL Router (CVSS 3.1 Base Score 9.8).

  • CVE-2026-46861: A vulnerability in MySQL NDB Cluster (NDB Operator) allows a low-privileged attacker with network access via HTTP to access or modify critical data, with potential scope change impact (CVSS 3.1 Base Score 9.6).

  • CVE-2026-46862: A vulnerability in MySQL Router allows an unauthenticated attacker with network access via TLS to cause a hang or repeatable unexpected exit of MySQL Router (CVSS 3.1 Base Score 7.5).

  • CVE-2026-46863: A vulnerability in MySQL Server connection handling allows an unauthenticated attacker with network access via multiple protocols to cause a hang or repeatable unexpected exit of the server (CVSS 3.1 Base Score 7.5).

  • CVE-2026-46869: A vulnerability in MySQL Shell (Dump and Load) allows an unauthenticated attacker with network access to access critical data when user interaction is required (CVSS 3.1 Base Score 6.5).

  • CVE-2026-46870: A vulnerability in MySQL Shell (Shell for VS Code) allows a low-privileged attacker with network access to compromise MySQL Shell, with potential scope change impact (CVSS 3.1 Base Score 8.5).

  • CVE-2026-46871: A vulnerability in MySQL Shell (Shell for VS Code) allows a low-privileged attacker with network access via multiple protocols to access critical data (CVSS 3.1 Base Score 6.5).

New features

  • PS-10070: Updates the existing component to use the new KMIP library.

  • PS-10083: Enhances Thread Pool statistics by adding new status variables for queue monitoring and wait time analysis. The new metrics report the number of requests waiting in normal and high-priority queues, the number of requests not yet entered into a queue, and aggregate queue wait time statistics, including average, minimum, maximum, and standard deviation wait times. These additions provide greater visibility into thread pool workload and queueing behavior.

  • PS-10989: Adds JSONL (JSON Lines) output format for Audit Log Filter.

Improvements

  • PS-8867: Increases the verbosity of the data dictionary upgrade process, making it easier to diagnose issues that occur during upgrade.

  • PS-9774: The Audit Log Filter table_access class and read and insert subclasses now log statements in the audit log.

  • PS-10312: The audit log buffer is now flushed on server shutdown when the ASYNCHRONOUS logging strategy is in use, preventing the loss of buffered events.

  • PS-10331: Reduces memory pressure in the Audit Log Filter component caused by VFS buffering.

  • PS-10339: Resolves an inconsistency in audit_log_filter.format=NEW between the 8.0 plugin and the 8.4 component.

  • PS-11161: Optimizes performance for mem_root_deque.

Bug Fixes

  • PS-8670: InnoDB could exit unexpectedly on startup while resuming an interrupted ALTER TABLESPACE encryption operation because progress was persisted before affected pages were flushed to disk in the target encryption state.

  • PS-9773: The Audit Log Filter audit_log_read() function always showed "null" instead of the bookmarked and current information.

  • PS-9791: The audit_log_filter component generated audit records that did not include complete user, host, and query information in a single event, making the logs difficult to analyze and process.

  • PS-10228: An audit log filter defined with no value did not log any events.

  • PS-10338: audit_log_filter_set_filter() returned OK for filters that referenced unknown field names instead of reporting the error.

  • PS-10348: The Audit Log Filter did not support filtering by integer fields.

  • PS-10351: Reduced the number of events emitted by the Audit Log Filter to improve performance.

  • PS-10378: With the MeCab plugin, a boolean-mode full-text query that used LIMIT still computed ranking scores for all matches, preventing the limit-based optimization from being applied.

  • PS-10435: The general_query.str event field in audit log filters could not be replaced.

  • PS-10448: A prepared INSERT statement failed to write rows across partitions.

  • PS-10481: Fixed the issue where the range optimizer could fall back to a full table scan instead of using an index range scan for IN() predicates on non-binary UTF-8 collations when oversized values were present. This behavior could negatively impact query performance. The optimizer now correctly handles oversized values and continues to use index range scans when appropriate.

  • PS-10589: Added support for building Percona Server with GCC 15, Clang 21, and Clang 22. Fixed compilation issues identified by newer Clang compiler versions.

  • PS-10593: The audit log plugin could exit unexpectedly with a segmentation fault when configured with the PERFORMANCE logging strategy and audit buffering enabled.

  • PS-10853: The audit_log_filter plugin exited unexpectedly because throwing calls were made from filesystem functions declared noexcept.

  • PS-10872: Corrected event subclass naming in the Audit Log Filter and aligned its JSON output with the upstream format.

  • PS-10873: The legacy audit log MTR test audit_log_charset failed in Percona Server for MySQL 8.0.

  • PS-10951: audit_log_filter_set_user() incorrectly updated active sessions instead of only new connections.

  • PS-10987: Improved Audit Log Filter message and connection events by suppressing nested general/status records in audit_log_filter.event_mode=REDUCED.

  • PS-11014: Audit Log Filter replace-field rules returned Parse 'function' arguments list must be an array when query_digest() was specified as a plain JSON string.

  • PS-11073: Tables with large rows that were originally created on earlier MySQL versions could not be created on MySQL 8.4.9.

  • PS-11209: The common table expression (CTE) queries could fail with error 1146 (Table ... doesn't exist) under high concurrency. The issue occurred when multiple sessions executed queries that materialized the same CTE concurrently, causing failures when accessing temporary tables created during query execution.

  • PS-11241: The debug make_page_dirty command logged generic byte updates for compressed index pages, violating redo parser invariants during crash recovery.

  • PS-11242: Preallocated transaction IDs used by clone consistent snapshot could break the descending order of rw_trx_list and trigger a debug assertion during commit.

  • PS-11243: Crash recovery could fail while replaying an unfinished tablespace encryption operation when Global Transaction Identifier (GTID) mode and binary logging were enabled.

Builds and packaging

  • Percona Server for MySQL releases include a mixture of PGO and non-PGO builds. Where Profile-Guided Optimization (PGO) is enabled, the compiler uses runtime profiling data from representative workloads to guide optimization, which can improve throughput and reduce latency compared with non-PGO builds.

  • See Profile-Guided Optimization (PGO) and non-PGO builds for benefits, considerations, and which build you receive for your platform.

Additional resources