Upgrade procedures for 8.4¶
Need expert guidance for your Percona Server upgrade? Percona Support is here to help.
This document provides step-by-step procedures for upgrading Percona Server for MySQL using either Percona repositories (recommended) or standalone packages.
Before beginning the upgrade process:
- Complete the upgrade checklist pre-upgrade checks.
- Create a full backup (or dump if possible) of your database.
- Move your database configuration file (
my.cnf) to a safe location (repository method) or modify it as needed before stopping the server. -
Stop the server using the appropriate command for your system:
sudo systemctl stop mysql
Critical
Always test the upgrade process in a non-production environment first. For detailed upgrade procedures or if you encounter any issues during this process, our Percona Support team is available to assist you.
Using Percona repositories (recommended)¶
We recommend using the Percona repositories to upgrade your server. This method automatically handles dependencies and simplifies the upgrade process.
Find the instructions on how to enable the repositories in the following documents:
Run the following commands as root or use the sudo command.
-
Make a full backup (or dump if possible) of your database. Move the database configuration file,
my.cnf, to another directory to save it. If the configuration file is not moved, it can be overwritten. -
Stop the server with the appropriate command for your system:
sudo systemctl stop mysql -
Modify the database configuration file,
my.cnf, as needed. -
Install Percona Server for MySQL:
sudo apt update sudo apt install curl curl -O https://repo.percona.com/apt/percona-release_latest.generic_all.deb sudo apt install gnupg2 lsb-release ./percona-release_latest.generic_all.deb sudo apt update sudo percona-release setup ps-84-lts sudo apt install percona-server-server -
Install the storage engine packages.
If you used the MyRocks storage engine in Percona Server for MySQL 8.4, install the
percona-server-rocksdbpackage:sudo apt install percona-server-rocksdb -
The mysqld binary automatically runs the upgrade process if needed. To find more information, see MySQL Upgrade Process.
-
Restart the service:
sudo systemctl restart mysql
After the service has been successfully restarted, you can use the new Percona Server for MySQL 8.4.
Run the following commands as root or use the sudo command.
-
Make a full backup (or dump if possible) of your database. Copy the database configuration file, for example,
my.cnf, to another directory to save it. -
Stop the server with the appropriate command for your system:
sudo systemctl stop mysql -
Check your installed packages:
rpm -qa | grep Percona-Server -
Remove only the packages without dependencies and leave dependent packages. The command does not prompt for confirmation:
rpm -qa | grep Percona-Server | xargs rpm -e --nodeps -
Remove the mysql-related packages:
rpm -qa | grep '^mysql-' | xargs rpm -e --nodeps -
Install the
percona-server-serverpackage:sudo yum install https://repo.percona.com/yum/percona-release-latest.noarch.rpm sudo percona-release setup ps-84-lts sudo yum install percona-server-server -
Install the storage engine packages.
If you used the MyRocks storage engine in the previous version, install the
percona-server-rocksdbpackage:sudo yum install percona-server-rocksdb -
Modify your configuration file,
my.cnf, and reinstall the plugins if necessary. -
The mysqld binary automatically runs the upgrade process if needed. To find more information, see MySQL Upgrade Process.
-
Restart the server:
sudo systemctl restart mysql
After the service has been successfully restarted, you can use the Percona Server for MySQL 8.4.
Using standalone packages¶
Use this method when you cannot use repositories or need to install from manually downloaded packages. This method requires you to manually resolve dependencies.
-
Remove the installed packages with their dependencies:
sudo apt autoremove percona-server percona-client -
Do the required modifications in the database configuration file
my.cnf. -
Download the following packages for your architecture:
percona-server-serverpercona-server-clientpercona-server-commonlibperconaserverclient21
The following example downloads Percona Server for MySQL 8.4.6-6 packages for Debian 11.0:
wget https://downloads.percona.com/downloads/Percona-Server-innovative-release/Percona-Server-8.4.6-6/binary/debian/bullseye/x86_64/Percona-Server-8.4.6-6-r582ebeef-bullseye-x86_64-bundle.tar -
Unpack the bundle to get the packages:
tar xvf Percona-Server-8.4.6-6-r582ebeef-bullseye-x86_64-bundle.tarAfter you unpack the bundle, you should see the following packages:
ls *.debExpected output
libperconaserverclient21-dev_8.4.6-6.bullseye_amd64.deb percona-server-dbg_8.4.6-6.bullseye_amd64.deb libperconaserverclient21_8.4.6-6.bullseye_amd64.deb percona-server-rocksdb_8.4.6-6.bullseye_amd64.deb percona-mysql-router_8.4.6-6.bullseye_amd64.deb percona-server-server_8.4.6-6.bullseye_amd64.deb percona-server-client_8.4.6-6.bullseye_amd64.deb percona-server-source_8.4.6-6.bullseye_amd64.deb percona-server-common_8.4.6-6.bullseye_amd64.deb percona-server-test_8.4.6-6.bullseye_amd64.deb -
Install Percona Server for MySQL:
sudo dpkg -i *.debThis command installs the packages from the bundle. Another option is to download or specify only the packages you need for running Percona Server for MySQL installation (
libperconaserverclient21_8.4.6-6.bullseye_amd64.deb,percona-server-client-8.4.6-6.bullseye_amd64.deb,percona-server-common-8.4.6-6.bullseye_amd64.deb, andpercona-server-server-8.4.6-6.bullseye_amd64.deb).Warning
When installing packages manually, you must resolve all the dependencies and install missing packages yourself. At least the following packages should be installed before installing Percona Server for MySQL 8.4.6-6: *
libmecab2*libjemalloc1*zlib1g-dev*libaio1 -
The mysqld binary automatically runs the upgrade process. To find more information, see MySQL Upgrade Process.
-
Restart the service:
sudo service mysql restart
After the service has been successfully restarted, use the new Percona Server for MySQL 8.4.6-6.
-
Check the installed packages:
rpm -qa | grep percona-serverExpected output
percona-server-shared-8.4.6-6.el9.x86_64 percona-server-shared-compat-8.4.6-6.el9.x86_64 percona-server-client-8.4.6-6.el9.x86_64 percona-server-server-8.4.6-6.el9.x86_64You may have the
shared-compatpackage, which is required for compatibility. -
Remove the packages without dependencies:
rpm -qa | grep percona-server | xargs rpm -e --nodepsIt is important that you remove the packages without dependencies as many packages may depend on these (as they replace
mysql) and will be removed if omitted.To remove the listed packages, run:
rpm -qa | grep '^mysql-' | xargs rpm -e --nodeps -
Download the packages of the desired series for your architecture from the download page. The easiest way is to download the bundle which contains all the packages. The following example downloads Percona Server for MySQL 8.4.6-6 packages for CentOS 9:
wget https://downloads.percona.com/downloads/Percona-Server-innovative-release/Percona-Server-8.4.6-6/binary/redhat/9/x86_64/Percona-Server-8.4.6-6-r582ebeef-el9-x86_64-bundle.tar -
Unpack the bundle to get the packages:
tar xvf Percona-Server-8.4.6-6-r582ebeef-el9-x86_64-bundle.tarAfter you unpack the bundle, you should see the following packages:
ls *.rpm -
Install Percona Server for MySQL:
sudo rpm -ivh percona-server-server-8.4.6-6.el9.x86_64.rpm \ percona-server-client-8.4.6-6.el9.x86_64.rpm \ percona-server-shared-8.4.6-6.el9.x86_64.rpm \ percona-server-shared-compat-8.4.6-6.el9.x86_64.rpmThis command installs only packages required to run the Percona Server for MySQL 8.4.6-6.
You can install all the packages (for debugging, testing, etc.) with:
sudo rpm -ivh *.rpmNote
When manually installing packages, you must resolve all the dependencies and install missing ones.
-
Modify your configuration file,
my.cnf, and install the plugins if necessary.RHEL/CentOS automatically backs up the previous configuration file to
/etc/my.cnf.rpmsaveand installs the defaultmy.cnf. After the upgrade/install process completes, you can move the old configuration file back (after you remove all the unsupported system variables). -
The schema of the grant table has changed, the server must be started without reading the grants. Add a line to
my.cnfin the[mysqld]section:[mysqld] skip-grant-tablesRestart the mysql server:
sudo service mysql start -
The mysqld binary automatically runs the upgrade process. To find more information, see MySQL Upgrade Process.
-
Remove the
skip-grant-tablesline frommy.cnfand restart the server:sudo service mysql restart
After the service has been successfully restarted, you can use the new Percona Server for MySQL 8.4.6-6.
Post-upgrade validation¶
After completing the upgrade, follow the post-upgrade validation steps in the upgrade checklist.
Further reading¶
- Upgrade overview
- Upgrade checklist for 8.4
- Upgrade strategies
- MySQL upgrade paths and supported methods
- Upgrade from plugins to components
- Upgrade to Percona Server for MySQL Pro
- Downgrade options
- Breaking and incompatible changes in 8.4
- Compatibility and removed items in 8.4
- Defaults and tuning guidance for 8.4
- Percona Toolkit updates for 8.4