Percona Server for MySQL 9.7.1-1 (2026-06-29)¶
Instead of releasing Percona Server for MySQL 9.7.0-1, we are skipping to 9.7.1-1. This build includes all of the enhancements and bug fixes from MySQL 9.7.0-0.
Get started with Quickstart Guide for Percona Server for MySQL.
Percona Server for MySQL 9.7.1-1 includes all the features and bug fixes available in the MySQL 9.7.1 Community Edition and enterprise-grade features developed by Percona.
Release highlights¶
MySQL 9.7.1¶
Improvements and bug fixes provided by Oracle for MySQL 9.7.1 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=COMPRESSEDtables could causeCREATE TABLEto fail withRow size too largefor 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 9.7.1 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 crash 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 crash 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: Updated the existing component to use the new KMIP library.
-
PS-10083: Enhanced Thread Pool Statistics.
-
PS-10989: Added JSONL (JSON Lines) output format for Audit Log Filter.
Improvements¶
-
PS-8867: Increased the verbosity of the data dictionary upgrade process, making it easier to diagnose problems that occur during upgrade.
-
PS-9774: The Audit Log Filter
table_accessclass andreadandinsertsubclasses now log statements in the audit log. -
PS-10312: The audit log buffer is now flushed on server shutdown when the
ASYNCHRONOUSlogging strategy is in use, preventing the loss of buffered events. -
PS-10331: Reduced memory pressure in the Audit Log Filter component caused by VFS buffering.
-
PS-10339: Resolved an inconsistency in
audit_log_filter.format=NEWbetween the 8.0 plugin and the 8.4 component. -
PS-11004: Removed
format=OLDand set JSONL as the default for Audit Log Filter. -
PS-11161: Performance optimizations for
mem_root_deque.
Bug Fixes¶
-
PS-8670: InnoDB could crash on startup while resuming an interrupted
ALTER TABLESPACEencryption 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 format was incorrect.
-
PS-10228: An audit log filter defined with no value did not log any events.
-
PS-10338:
audit_log_filter_set_filter()returnedOKfor 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
LIMITstill computed ranking scores for all matches, preventing the limit-based optimization from being applied. -
PS-10435: The
general_query.strevent field in audit log filters could not be replaced. -
PS-10448: A prepared
INSERTstatement failed to write rows across partitions. -
PS-10449: After changing
SUM(DISTINCT x)to-SUM(DISTINCT -x), the value unexpectedly changed. -
PS-10853: The
audit_log_filterplugin crashed because throwing calls were made from filesystem functions declarednoexcept. -
PS-10872: Corrected event subclass naming in the Audit Log Filter and aligned its JSON output with the upstream format.
-
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 arraywhenquery_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 9.7.0.
-
PS-11181: MyRocks could overflow a buffer when
rocksdb_merge_buf_sizewas set above 4 GB. -
PS-11241: The debug
make_page_dirtycommand 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_listand trigger a debug assertion during commit. -
PS-11243: Crash recovery could crash while replaying an unfinished tablespace encryption operation when 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.
Useful links¶
Install Percona Server for MySQL 9.7
Upgrade Percona Server for MySQL
The Percona Server for MySQL GitHub repository
Download product binaries, packages, and tarballs at Percona Software Downloads
Contribute to the documentation
For training, contact Percona Training - Start learning now