# Percona Server for MySQL 8.0.32-24 (2023-03-20) | Release date | March 20, 2023 | |--- | --- | | Install instructions | [Install Percona Server for MySQL](https://docs.percona.com/percona-server/8.0/installation.html) | | Upgrade instructions | [Percona Server for MySQL in-place upgrading guide: from 5.7 to 8.0](https://docs.percona.com/percona-server/8.0/upgrade.html) | [Percona Server for MySQL 8.0.32-24](https://www.percona.com/software/mysql-database/percona-server) includes all the features and bug fixes available in the [MySQL 8.0.32 Community Edition](https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-32.html) in addition to enterprise-grade features developed by Percona. Percona Server for MySQL is a free, fully compatible, enhanced, and open source drop-in replacement for any MySQL database. It provides superior performance, scalability, and instrumentation. Percona Server for MySQL is trusted by thousands of enterprises to provide better performance and concurrency for their most demanding workloads. It delivers more value to MySQL server users with optimized performance, greater performance scalability and availability, enhanced backups, and increased visibility. ## Release highlights * Percona reverts the following MySQL bug fix: The data and the GTIDs backed up by mysqldump were inconsistent when the options --single-transaction and --set-gtid-purged=ON were both used. It was because in between the transaction started by mysqldump and the fetching of GTID_EXECUTED, GTIDs on the server could have increased already. With this fixed, a FLUSH TABLES WITH READ LOCK is performed before the fetching of GTID_EXECUTED to ensure its value is consistent with the snapshot taken by mysqldump. The MySQL fix also added a requirement when using [--single-transaction](https://dev.mysql.com/doc/refman/8.0/en/mysqldump.html#option_mysqldump_single-transaction) and executing FLUSH TABLES WITH READ LOCK for the [RELOAD](https://dev.mysql.com/doc/refman/8.0/en/privileges-provided.html#priv_reload) privilege. ([MySQL bug #109701](https://bugs.mysql.com/bug.php?id=109701), [MySQL bug #105761](https://bugs.mysql.com/bug.php?id=105761)) The Percona Server version of the `mysqldump` utility, in some modes, can be used with MySQL Server. This utility provides a temporary workaround for the "additional RELOAD privilege" limitation introduced by Oracle MySQL Server 8.0.32. For more information, see the Percona Performance Blog [A Workaround for the "RELOAD/FLUSH_TABLES privilege required" Problem When Using Oracle mysqldump 8.0.32](https://www.percona.com/blog/workaround-for-the-reload-flush_tables-privilege-required-problem-when-using-oracle-mysqldump-8-0-32/). * In [Percona Server for MySQL 8.0.29-21](8.0.29-21.md), the default ALTER TABLE algorithm was deliberately changed from `INSTANT` to `INPLACE` for safety reasons (find more details in [Percona XtraBackup 8.0.29 and INSTANT ADD/DROP Columns](https://www.percona.com/blog/percona-xtrabackup-8-0-29-and-instant-add-drop-columns/) blog post.) Since Oracle fixed the most critical bugs related to `ALGORITHM=INSTANT` in MySQL 8.0.32, Percona Server for MySQL 8.0.32-24 returns the original (upstream) behavior. Now, the default ALTER TABLE algorithm for [supported DDL column operations](https://dev.mysql.com/doc/refman/8.0/en/innodb-online-ddl-operations.html) is `INSTANT`. Improvements and bug fixes introduced by Oracle for MySQL 8.0.32 and included in Percona Server for MySQL are the following: * A replica can add a Generated Invisible Primary Keys(GIPK) to any InnoDB table. To achieve this behavior, the GENERATE value is added as a possible value for the CHANGE REPLICATION SOURCE TO statement’s REQUIRE_TABLE_PRIMARY_KEY_CHECK option. * The `REQUIRE_TABLE_PRIMARY_KEY_CHECK = GENERATE` option can be used on a per-channel basis. * Setting `sql_generate_invisible_primary_key` on the source is ignored by a replica because this variable is not replicated. This behavior is inherited from the previous releases. * An upgrade from 8.0.28 caused undetectable problems, such as server exit and corruption. * A fix for after an upgrade, all columns added with ALGORITHM=INSTANT materialized and have version=0 for any new row inserted. Now, a column added with ALGORITHM=INSTANT fails if the maximum possible size of a row exceeds the row size limit, so that all new rows with materialized ALGORITHM=INSTANT columns are within row size limit. (Bug #34558510) * After a drop, adding a specific column using the INSTANT algorithm could cause a data error and a server exit. (Bug #34122122) * An online rebuild DDL no longer crashes after a column is added with ALGORITHM=INSTANT. Thank you Qingda Hu for reporting this bug. (Bug #33788578, Bug #106279) Find the full list of bug fixes and changes in the [MySQL 8.0.32 Release Notes](https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-32.html). ## Improvements * [PS-8450](https://jira.percona.com/browse/PS-8450) : Replication: Transactions are stalled when the Certifier reconciles a transaction. * [PS-8626](https://jira.percona.com/browse/PS-8626) : Inserting JSON data with `LOAD DATA INFILE` now shows the failed record number. ## Bug fixes * [PS-8073](https://jira.percona.com/browse/PS-8073) : Replication: Updating a table with a stored generated field in the primary key caused a replication crash. * [PS-8577](https://jira.percona.com/browse/PS-8577) : When the auto_increment column is modified after the table creation, the `ALTER TABLE ... auto_increment=1` did not produce the expected result. * [PS-7538](https://jira.percona.com/browse/PS-7538) : With `innodb_optimize_fulltext_only` enabled, running OPTIMIZE TABLE on a table with an FTS index caused a server exit. * [PS-8627](https://jira.percona.com/browse/PS-8627) : Unexpected server exit because `NO_SUCH_TABLE` leads to `m_opened_table=0x0`. * [PS-8660](https://jira.percona.com/browse/PS-8660) : Queries to the INFORMATION_SCHEMA or PERFORMANCE_SCHEMA would stall while connections are in the authentication phase. * [PS-8635](https://jira.percona.com/browse/PS-8635) : Remove the Percona implementation of `build-id`. * [PS-7934](https://jira.percona.com/browse/PS-7934) : Assertion `owned_gtids.is_owned_by(thd->owned_gtid, thd->thread_id())` failed. * [PS-8613](https://jira.percona.com/browse/PS-8613) : Fixed a noticeable performance regression when authenticating. ## Useful links The [Percona Server for MySQL GitHub location](https://github.com/percona/percona-server) [Contribute to the documentation](https://github.com/percona/psmysql-docs/blob/8.0/contributing.md) For [training](https://www.percona.com/training), contact [Percona Training - Start learning now](https://learn.percona.com/contact-me)