MySQL 8.0 - 8.4 Upgrade Notes (mysql_native_password)

Xibo 4.4.0 releases with MySQL 8.4 by default.

If you’re upgrading from an earlier version of Xibo, particularly if you previously upgraded from Xibo 3.x to 4.x, then you should check that the passwords for the users in the MySQL database are in the correct format before upgrading to Xibo 4.4.0 (and therefore MySQL 8.4).

All the commands below assume you are using the standard docker-compose.yml file. If you’re using one of the alternatives, then be sure to add -f switch in the normal way - as you would if you were starting or stopping the containers.

From a console inside your Xibo installation directory, run the following command - this will briefly interrupt service to your CMS:

cd /opt/xibo # This is typically the installation location
docker-compose restart cms-db
docker-compose logs -f cms-db | grep mysql_native_password

Wait a few seconds for MySQL to fully start and see if a line that looks like this is logged:

cms-db_1          | 2025-12-22T08:13:46.262728Z 9 [Warning] [MY-013360] [Server] Plugin mysql_native_password reported: ''mysql_native_password' is deprecated and will be removed in a future release. Please use caching_sha2_password instead'

If it is, then you will need to follow the process below to reset the password for the cms user in the database before upgrading.

If that is not logged, then you can continue to upgrade Xibo to v4.4 and MySQL 8.4 in the normal way.

Switching to caching_sha2_password

In order to switch the password for the cms user to the new format for MySQL 8.4, follow the instructions in this guide:

I upgraded to MySQL 8.4 or Xibo 4.4.x without doing these checks and now I have an error

If you upgraded to Xibo 4.4.x without resolving the issue, you will likely have in the logs an error like:

Fatal Error - sorry this shouldn't happen.
SQLSTATE[HY000] [1524] Plugin 'mysql_native_password' is not loaded

To recover, follow the steps in the guide above, but substitute the MySQL image in the docker run command for MySQL 8.4:

docker run --rm -ti -v /opt/xibo/shared/db:/var/lib/mysql mysql:8.4 bash

and then complete the rest of the article as written. Then restart the cms-web container to complete the Xibo part of the upgrade.

docker-compose restart cms-web
1 Like