Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion docs/apt-files.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
# DEB repository package list - Percona Server for MySQL {{vers}}
# DEB repository package list - Percona Server for MySQL {{vers}}

In Percona Server for MySQL 9.7.1-1 only, APT packaging was reorganized to align more closely with upstream MySQL. Several packages were split into separate components, which may affect upgrades and dependency resolution. The table below lists packages for earlier releases; see the [9.7.1-1 release notes](release-notes/9.7.1-1.md) for the updated package list.

| Package Name | Description |
|---------------|-------------|
Expand Down
2 changes: 2 additions & 0 deletions docs/installation.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@ The following guides describe the installation process for using the official Pe

[Install Percona Server for MySQL on Debian and Ubuntu](apt-repo.md){.md-button} [Install Percona Server for MySQL on Red Hat Enterprise Linux](yum-repo.md){.md-button}

Starting with [Percona Server for MySQL 9.7.1-1](release-notes/9.7.1-1.md), packages may be PGO or non-PGO builds depending on your platform. See [Profile-Guided Optimization (PGO) and non-PGO builds](pgo.md) for benefits, considerations, and which build you receive.

## Other installation methods

[Install Percona Server for MySQL from Binaries](binary-tarball-install.md){.md-button} <br> [Compile Percona Server for MySQL from Source](source-tarball.md){.md-button} <br> [Run Percona Server for MySQL in a Docker container](docker.md){.md-button}
Expand Down
39 changes: 39 additions & 0 deletions docs/pgo.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
# Profile-Guided Optimization (PGO) and non-PGO builds

Starting with [Percona Server for MySQL {{release}}](release-notes/{{release}}.md), Percona publishes a mixture of Profile-Guided Optimization (PGO) and non-PGO builds. With PGO, the compiler uses profiling data from representative workloads to guide optimization, which can improve throughput and reduce latency for typical database workloads compared with non-PGO builds.

To install Percona Server for MySQL, see [Install Percona Server for MySQL from repositories](installation.md).

## Benefits of PGO builds

PGO builds are a good default when they are available for your platform. Advantages include the following:

* **Higher performance for typical workloads** — Hot code paths are optimized using profiling data from representative database workloads, which can improve query throughput and reduce latency compared with non-PGO builds.

* **No application changes** — PGO is a compile-time optimization. You install and run Percona Server for MySQL the same way as a non-PGO build; no extra configuration is required.

* **Production-oriented packaging** — When Percona publishes PGO builds for a platform, they are intended for production use where performance matters.

## Considerations for non-PGO builds

A non-PGO build is not inferior by design. You may receive or choose one for reasons such as the following:

* **Platform availability** — Percona does not yet publish a PGO build for every operating system, architecture, or installation method. In those cases, the non-PGO package is the supported option.

* **Consistency with an existing environment** — Use a non-PGO build when you need to match binaries in a test, staging, or support scenario that already runs a non-PGO package (for example, before validating an upgrade path).

* **Custom source builds** — If you compile Percona Server for MySQL yourself, you control whether PGO is enabled. A non-PGO build may be appropriate when you are not using Percona’s profiling workflow or when you need a simpler reproducible build for development.

* **Workload mismatch (uncommon)** — PGO optimizes for the workloads used during profiling. If your workload is highly unusual and differs sharply from typical OLTP-style database traffic, performance gains may be smaller. This is uncommon in practice; most production deployments still benefit from PGO when it is available.

When both PGO and non-PGO builds are published for the same platform, prefer the PGO build for production unless one of the considerations above applies.

## Which build you receive

In most cases, you do not choose PGO or non-PGO at install time. The build type depends on how Percona packages Percona Server for MySQL for your operating system, architecture, and installation method (APT, DNF/YUM, binary tarball, or Docker). Some platforms ship PGO-enabled packages; others ship non-PGO builds while PGO support is rolled out across the release matrix.

See the [Percona downloads :octicons-link-external-16:](https://www.percona.com/downloads/Percona-Server-{{vers}}/) page and the [Percona Software and Platform Lifecycle :octicons-link-external-16:](https://www.percona.com/services/policies/percona-software-platform-lifecycle#mysql) page for supported platforms for this release.

## Build from source

To control whether PGO is used, compile Percona Server for MySQL yourself. See [Compile Percona Server for MySQL from Source](compile-percona-server.md).
179 changes: 179 additions & 0 deletions docs/release-notes/9.7.1-1.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,179 @@
# Percona Server for MySQL 9.7.1-1 (2026-08-05)

!!! note ""

Percona Server for MySQL 9.7.0-1 was not released; 9.7.1-1 is the first build in this series. This release includes enhancements and bug fixes from MySQL 9.7.0-0 and MySQL 9.7.1.

Get started with [Quickstart Guide for Percona Server for MySQL](../quickstart-overview.md).

[Percona Server for MySQL 9.7.1-1](https://www.percona.com/mysql/software) includes all the features and bug fixes available in the [MySQL 9.7.1 Community Edition](https://dev.mysql.com/doc/relnotes/mysql/9.7/en/news-9-7-1.html) and enterprise-grade features developed by Percona.

## Release highlights

### MySQL 9.7.1

Improvements and bug fixes provided by Oracle for MySQL 9.7.0 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 9.7.0 Release Notes](https://dev.mysql.com/doc/relnotes/mysql/9.7/en/news-9-7-0.html).

In this release of Percona Server for MySQL 9.7.1-1, we have the following new features and improvements, along with security updates and bug fixes detailed in later sections:

* Integrated the new Key Management Interoperability Protocol (KMIP) library into the key management component.

* Expanded Thread Pool statistics with status variables for queue monitoring and wait time analysis.

* Introduced JSONL (JSON Lines) output format for Audit Log Filter.

* Increased data dictionary upgrade logging verbosity to aid diagnosis of upgrade failures.

* Extended Audit Log Filter logging so the `table_access` class records `read` and `insert` statements.

* Changed audit log shutdown behavior to flush the buffer when the `ASYNCHRONOUS` logging strategy is in use.

* Reduced memory pressure in the Audit Log Filter component caused by virtual file system (VFS) buffering.

* Aligned `audit_log_filter.format=NEW` behavior between the 8.0 plugin and the 8.4 component.

* Suppressed nested general/status records in Audit Log Filter output when `audit_log_filter.event_mode=REDUCED` was enabled.

* Removed `format=OLD` and set JSONL as the default Audit Log Filter output format.

* Optimized performance of `mem_root_deque`.

* [CVE-2026-46850](https://www.cve.org/CVERecord?id=CVE-2026-46850): Vulnerability in MySQL Shell (Shell for Visual Studio Code) via HTTP (CVSS 3.1 Base Score 9.9).

* [CVE-2026-46860](https://www.cve.org/CVERecord?id=CVE-2026-46860): Vulnerability in MySQL Router via HTTP (CVSS 3.1 Base Score 9.8).

* [CVE-2026-46861](https://www.cve.org/CVERecord?id=CVE-2026-46861): Vulnerability in MySQL NDB Cluster (NDB Operator) via HTTP (CVSS 3.1 Base Score 9.6).

* [CVE-2026-46862](https://www.cve.org/CVERecord?id=CVE-2026-46862): Vulnerability in MySQL Router via TLS (CVSS 3.1 Base Score 7.5).

* [CVE-2026-46863](https://www.cve.org/CVERecord?id=CVE-2026-46863): Vulnerability in MySQL Server connection handling via multiple protocols (CVSS 3.1 Base Score 7.5).

* [CVE-2026-46869](https://www.cve.org/CVERecord?id=CVE-2026-46869): Vulnerability in MySQL Shell (Dump and Load) (CVSS 3.1 Base Score 6.5).

* [CVE-2026-46870](https://www.cve.org/CVERecord?id=CVE-2026-46870): Vulnerability in MySQL Shell (Shell for Visual Studio Code) (CVSS 3.1 Base Score 8.5).

* [CVE-2026-46871](https://www.cve.org/CVERecord?id=CVE-2026-46871): Vulnerability in MySQL Shell (Shell for Visual Studio Code) via multiple protocols (CVSS 3.1 Base Score 6.5).

## Security updates

This release addresses the following Common Vulnerabilities and Exposures (CVE):

* [CVE-2026-46850](https://www.cve.org/CVERecord?id=CVE-2026-46850): A vulnerability in MySQL Shell (Shell for Visual Studio Code) allows a low-privileged attacker with network access via Hypertext Transfer Protocol (HTTP) to compromise MySQL Shell, with potential scope change impact on additional products (Common Vulnerability Scoring System (CVSS) 3.1 Base Score 9.9).

* [CVE-2026-46860](https://www.cve.org/CVERecord?id=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](https://www.cve.org/CVERecord?id=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](https://www.cve.org/CVERecord?id=CVE-2026-46862): A vulnerability in MySQL Router allows an unauthenticated attacker with network access via Transport Layer Security (TLS) to cause MySQL Router to stop responding or exit unexpectedly in a repeatable manner (CVSS 3.1 Base Score 7.5).

* [CVE-2026-46863](https://www.cve.org/CVERecord?id=CVE-2026-46863): A vulnerability in MySQL Server connection handling allows an unauthenticated attacker with network access via multiple protocols to cause the server to stop responding or exit unexpectedly in a repeatable manner (CVSS 3.1 Base Score 7.5).

* [CVE-2026-46869](https://www.cve.org/CVERecord?id=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](https://www.cve.org/CVERecord?id=CVE-2026-46870): A vulnerability in MySQL Shell (Shell for Visual Studio 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](https://www.cve.org/CVERecord?id=CVE-2026-46871): A vulnerability in MySQL Shell (Shell for Visual Studio 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](https://perconadev.atlassian.net/browse/PS-10070): Integrated the new Key Management Interoperability Protocol (KMIP) library into the key management component.

* [PS-10083](https://perconadev.atlassian.net/browse/PS-10083): Expanded Thread Pool statistics with 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](https://perconadev.atlassian.net/browse/PS-10989): Introduced JSONL (JSON Lines) output format for Audit Log Filter.

## Improvements

* [PS-8867](https://perconadev.atlassian.net/browse/PS-8867): Increased data dictionary upgrade logging verbosity to aid diagnosis of upgrade failures.

* [PS-9774](https://perconadev.atlassian.net/browse/PS-9774): Extended Audit Log Filter logging so the `table_access` class and `read` and `insert` subclasses record statements in the audit log.

* [PS-10312](https://perconadev.atlassian.net/browse/PS-10312): Changed audit log shutdown behavior to flush the buffer when the `ASYNCHRONOUS` logging strategy is in use, preventing loss of buffered events.

* [PS-10331](https://perconadev.atlassian.net/browse/PS-10331): Reduced memory pressure in the Audit Log Filter component caused by virtual file system (VFS) buffering.

* [PS-10339](https://perconadev.atlassian.net/browse/PS-10339): Aligned `audit_log_filter.format=NEW` behavior between the 8.0 plugin and the 8.4 component.

* [PS-10987](https://perconadev.atlassian.net/browse/PS-10987): Suppressed nested general/status records in Audit Log Filter output when `audit_log_filter.event_mode=REDUCED` was enabled.

* [PS-11004](https://perconadev.atlassian.net/browse/PS-11004): Removed `format=OLD` and set JSONL as the default Audit Log Filter output format.

* [PS-11161](https://perconadev.atlassian.net/browse/PS-11161): Optimized performance of `mem_root_deque`.

## Bug Fixes

* [PS-8670](https://perconadev.atlassian.net/browse/PS-8670): InnoDB exited unexpectedly on startup while resuming an interrupted `ALTER TABLESPACE` encryption operation when progress was persisted before affected pages were flushed to disk.

* [PS-9773](https://perconadev.atlassian.net/browse/PS-9773): Audit Log Filter `audit_log_read()` always returned `"null"` instead of bookmarked and current information.

* [PS-9791](https://perconadev.atlassian.net/browse/PS-9791): After migration from the `audit_log` plugin to the `audit_log_filter` component, records did not include specific fields, which made logs difficult to use.

* [PS-10228](https://perconadev.atlassian.net/browse/PS-10228): An audit log filter defined with no value did not log events.

* [PS-10338](https://perconadev.atlassian.net/browse/PS-10338): `audit_log_filter_set_filter()` returned `OK` for filters that referenced unknown field names instead of reporting an error.

* [PS-10348](https://perconadev.atlassian.net/browse/PS-10348): The Audit Log Filter did not support filtering by integer fields.

* [PS-10351](https://perconadev.atlassian.net/browse/PS-10351): The Audit Log Filter logged an excessive number of events.

* [PS-10378](https://perconadev.atlassian.net/browse/PS-10378): The limit-based optimization was not applied when the MeCab plugin processed a boolean-mode full-text query with `LIMIT`, because ranking scores were computed for all matches.

* [PS-10435](https://perconadev.atlassian.net/browse/PS-10435): The `general_query.str` event field could not be replaced in audit log filters.

* [PS-10448](https://perconadev.atlassian.net/browse/PS-10448): A prepared `INSERT` statement failed when writing rows across partitions.

* [PS-10449](https://perconadev.atlassian.net/browse/PS-10449): The optimizer rewrite from `SUM(DISTINCT x)` to `-SUM(DISTINCT -x)` produced an incorrect result.

* [PS-10853](https://perconadev.atlassian.net/browse/PS-10853): The `audit_log_filter` plugin exited unexpectedly when throwing calls were made from filesystem functions declared `noexcept`.

* [PS-10872](https://perconadev.atlassian.net/browse/PS-10872): Corrected event subclass naming in the Audit Log Filter and aligned JSON output with the upstream format.

* [PS-10951](https://perconadev.atlassian.net/browse/PS-10951): `audit_log_filter_set_user()` updated active sessions instead of updates being applied only to new connections.

* [PS-11014](https://perconadev.atlassian.net/browse/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](https://perconadev.atlassian.net/browse/PS-11073): Tables with large rows that were originally created on earlier MySQL versions could not be created.

* [PS-11241](https://perconadev.atlassian.net/browse/PS-11241): The debug `make_page_dirty` command logged generic byte updates for compressed index pages, which violated redo parser invariants during recovery.

* [PS-11242](https://perconadev.atlassian.net/browse/PS-11242): Preallocated transaction IDs used by clone consistent snapshot broke the descending order of `rw_trx_list` and triggered a debug assertion during commit.

* [PS-11243](https://perconadev.atlassian.net/browse/PS-11243): With Global Transaction Identifier (GTID) mode and binary logging enabled, the server exited unexpectedly on startup when crash recovery resumed an interrupted tablespace encryption operation.

Comment thread
patrickbirch marked this conversation as resolved.
## Builds and packaging

* Percona Server for MySQL releases include a mixture of Profile-Guided Optimization (PGO) and non-PGO builds. Where 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](../pgo.md) for benefits, considerations, and which build is published for each platform.

* In Percona Server for MySQL 9.7.1-1 only, Debian and Ubuntu (APT) packaging was reorganized to align more closely with upstream MySQL. Several packages were split into separate components, which may affect upgrades and dependency resolution compared with earlier Percona Server releases. The APT packages are:

* percona-server-client-core
* percona-server-client-plugins
* percona-server-client
* percona-server-common
* percona-server-server-core
* percona-server-server
* percona-telemetry-agent

## Useful links

Install [Percona Server for MySQL 9.7](https://docs.percona.com/percona-server/9.7/installation.html)

Upgrade [Percona Server for MySQL](../upgrade.md)

The [Percona Server for MySQL GitHub repository](https://github.com/percona/percona-server)

Download product binaries, packages, and tarballs at [Percona Software Downloads](https://www.percona.com/downloads)

[Contribute to the documentation](https://github.com/percona/psmysql-docs/blob/9.7/contributing.md)

For [training](https://www.percona.com/training), contact [Percona Training - Start learning now](https://learn.percona.com/contact-me)
14 changes: 13 additions & 1 deletion docs/release-notes/release-notes-index.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,15 @@
# Percona Server for MySQL {{vers}} release notes index

*
Comment thread
patrickbirch marked this conversation as resolved.
This document indexes the release notes for every version of Percona Server for MySQL {{vers}}. For information about changes in a different major version of Percona Server for MySQL, see the release notes for that version.

For additional Percona Server for MySQL {{vers}} documentation, see the [Percona Server for MySQL {{vers}} documentation home](../index.md), which covers installation, upgrade, configuration, and feature reference for the {{vers}} series.

Percona Server for MySQL platform support evolves over time. Refer to the [Percona Release Lifecycle Overview - MySQL](https://www.percona.com/release-lifecycle-overview/#mysql) page for the current list of supported platforms and operating systems.

The documentation included in source and binary distributions may not be fully up-to-date with respect to release-note entries, because integration of the documentation occurs at release build time. For the most up-to-date release notes, refer to this online documentation.

For help with using Percona Server for MySQL, visit the [Percona Community Forum](https://forums.percona.com/c/mysql-and-percona-server-for-mysql/) to discuss issues with other Percona users, or contact [Percona Support](https://www.percona.com/services/support) for paid expert assistance.

## Releases

* [Percona Server for MySQL 9.7.1-1 (2026-08-05)](9.7.1-1.md)
Loading