Skip to content

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

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:

  1. Complete the upgrade checklist pre-upgrade checks.
  2. Create a full backup (or dump if possible) of your database.
  3. Move your database configuration file (my.cnf) to a safe location (repository method) or modify it as needed before stopping the server.
  4. 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.

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.

  1. 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.

  2. Stop the server with the appropriate command for your system:

    sudo systemctl stop mysql
    
  3. Modify the database configuration file, my.cnf, as needed.

  4. 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
    
  5. Install the storage engine packages.

    If you used the MyRocks storage engine in Percona Server for MySQL 8.4, install the percona-server-rocksdb package:

    sudo apt install percona-server-rocksdb
    
  6. The mysqld binary automatically runs the upgrade process if needed. To find more information, see MySQL Upgrade Process.

  7. 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.

  1. 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.

  2. Stop the server with the appropriate command for your system:

    sudo systemctl stop mysql
    
  3. Check your installed packages:

    rpm -qa | grep Percona-Server
    
  4. 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
    
  5. Remove the mysql-related packages:

    rpm -qa | grep '^mysql-' | xargs rpm -e --nodeps
    
  6. Install the percona-server-server package:

    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
    
  7. Install the storage engine packages.

    If you used the MyRocks storage engine in the previous version, install the percona-server-rocksdb package:

    sudo yum install percona-server-rocksdb
    
  8. Modify your configuration file, my.cnf, and reinstall the plugins if necessary.

  9. The mysqld binary automatically runs the upgrade process if needed. To find more information, see MySQL Upgrade Process.

  10. 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.

  1. Remove the installed packages with their dependencies:

    sudo apt autoremove percona-server percona-client
    
  2. Do the required modifications in the database configuration file my.cnf.

  3. Download the following packages for your architecture:

    • percona-server-server
    • percona-server-client
    • percona-server-common
    • libperconaserverclient21

    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
    
  4. Unpack the bundle to get the packages:

    tar xvf Percona-Server-8.4.6-6-r582ebeef-bullseye-x86_64-bundle.tar
    

    After you unpack the bundle, you should see the following packages:

    ls *.deb
    
    Expected 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
    
  5. Install Percona Server for MySQL:

    sudo dpkg -i *.deb
    

    This 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, and percona-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

  6. The mysqld binary automatically runs the upgrade process. To find more information, see MySQL Upgrade Process.

  7. 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.

  1. Check the installed packages:

    rpm -qa | grep percona-server
    
    Expected 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_64
    

    You may have the shared-compat package, which is required for compatibility.

  2. Remove the packages without dependencies:

    rpm -qa | grep percona-server | xargs rpm -e --nodeps
    

    It 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
    
  3. 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
    
  4. Unpack the bundle to get the packages:

    tar xvf Percona-Server-8.4.6-6-r582ebeef-el9-x86_64-bundle.tar
    

    After you unpack the bundle, you should see the following packages:

    ls *.rpm
    
  5. 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.rpm
    

    This 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 *.rpm
    

    Note

    When manually installing packages, you must resolve all the dependencies and install missing ones.

  6. 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.rpmsave and installs the default my.cnf. After the upgrade/install process completes, you can move the old configuration file back (after you remove all the unsupported system variables).

  7. The schema of the grant table has changed, the server must be started without reading the grants. Add a line to my.cnf in the [mysqld] section:

    [mysqld]
    skip-grant-tables
    

    Restart the mysql server:

    sudo service mysql start
    
  8. The mysqld binary automatically runs the upgrade process. To find more information, see MySQL Upgrade Process.

  9. Remove the skip-grant-tables line from my.cnf and 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