Getting Fatal error

Hello,

I have just tried to upgrade the server from 4.3 to 4.4 and got the fatal error

CMS Version

latest

Installation Method

Docker

Operating System

The operating system the CMS is installed on Ubuntu

Issue

This is what I have when doing the steps from this post:

MySQL 8.0 - 8.4 Upgrade Notes (mysql_native_password) - Xibo Knowledge Base / The Xibo CMS - Xibo Community

bash-4.4# echo “ALTER USER cms IDENTIFIED WITH caching_sha2_password BY ‘password’;” > init.txt
bash-4.4# mysqld --init-file=/tmp/init.txt &
[1] 7
bash-4.4# 2026-03-06T15:15:11.049448Z 0 [Warning] [MY-011068] [Server] The syntax ‘–skip-host-cache’ is deprecated and will be removed in a future release. Please use SET GLOBAL host_cache_size=0 instead.
2026-03-06T15:15:11.050642Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.35) starting as process 7
2026-03-06T15:15:11.057485Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2026-03-06T15:15:11.432764Z 1 [ERROR] [MY-014061] [InnoDB] Invalid MySQL server downgrade: Cannot downgrade from 80408 to 80035. Downgrade is only permitted between patch releases.
mysqld: Can’t open file: ‘mysql.ibd’ (errno: 0 - )

2026-03-06T15:15:11.741736Z 1 [ERROR] [MY-010334] [Server] Failed to initialize DD Storage Engine
2026-03-06T15:15:11.742902Z 0 [ERROR] [MY-010020] [Server] Data Dictionary initialization failed.
2026-03-06T15:15:11.743669Z 0 [ERROR] [MY-010119] [Server] Aborting
2026-03-06T15:15:11.745007Z 0 [System] [MY-010910] [Server] /usr/sbin/mysqld: Shutdown complete (mysqld 8.0.35) MySQL Community Server - GPL.

and this is what I have when starting the server

root@xibo:/opt/xibo# docker-compose up
Starting xibo_cms-quickchart_1 … done
Starting xibo_cms-xmr_1 … done
Starting xibo_cms-db_1 … done
Starting xibo_cms-memcached_1 … done
Starting xibo_cms-web_1 … done
Attaching to xibo_cms-quickchart_1, xibo_cms-xmr_1, xibo_cms-db_1, xibo_cms-memcached_1, xibo_cms-web_1
cms-db_1 | 2026-03-06 15:18:15+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.4.8-1.el9 started.
cms-web_1 | Waiting for MySQL to start - max 300 seconds
cms-quickchart_1 | {“name”:“quickchart”,“hostname”:“d6dfebbe1bda”,“pid”:1,“level”:30,“msg”:"Telemetry is enabled ",“time”:“2026-03-06T15:18:16.070Z”,“v”:0}
cms-db_1 | 2026-03-06 15:18:16+00:00 [Note] [Entrypoint]: Switching to dedicated user ‘mysql’
cms-db_1 | 2026-03-06 15:18:16+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.4.8-1.el9 started.
cms-db_1 | ‘/var/lib/mysql/mysql.sock’ → ‘/var/run/mysqld/mysqld.sock’
cms-quickchart_1 | Fri, 06 Mar 2026 15:18:16 GMT body-parser deprecated undefined extended: provide extended opt ion at index.js:38:17
cms-quickchart_1 | {“name”:“quickchart”,“hostname”:“d6dfebbe1bda”,“pid”:1,“level”:30,“msg”:“Setting request time out: 5000 ms”,“time”:“2026-03-06T15:18:16.857Z”,“v”:0}
cms-quickchart_1 | {“name”:“quickchart”,“hostname”:“d6dfebbe1bda”,“pid”:1,“level”:30,“msg”:"NODE_ENV: production ",“time”:“2026-03-06T15:18:16.857Z”,“v”:0}
cms-quickchart_1 | {“name”:“quickchart”,“hostname”:“d6dfebbe1bda”,“pid”:1,“level”:30,“msg”:“Listening on port 34 00”,“time”:“2026-03-06T15:18:16.858Z”,“v”:0}
cms-db_1 | 2026-03-06T15:18:16.825557Z 0 [System] [MY-015015] [Server] MySQL Server - start.
cms-db_1 | 2026-03-06T15:18:17.062479Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.4.8) s tarting as process 1
cms-db_1 | 2026-03-06T15:18:17.070290Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started .
cms-db_1 | 2026-03-06T15:18:18.136831Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
cms-db_1 | 2026-03-06T15:18:18.549496Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self si gned.
cms-db_1 | 2026-03-06T15:18:18.550470Z 0 [System] [MY-013602] [Server] Channel mysql_main configured to support TLS. Encrypted connections are now supported for this channel.
cms-db_1 | 2026-03-06T15:18:18.557885Z 0 [Warning] [MY-011810] [Server] Insecure configuration for --pid -file: Location ‘/var/run/mysqld’ in the path is accessible to all OS users. Consider choosing a different direct ory.
cms-db_1 | 2026-03-06T15:18:18.586990Z 0 [Warning] [MY-010311] [Server] ‘proxies_priv’ entry ‘@ root@515 cfccdb220’ ignored in --skip-name-resolve mode.
cms-db_1 | 2026-03-06T15:18:18.620072Z 0 [System] [MY-011323] [Server] X Plugin ready for connections. B ind-address: ‘::’ port: 33060, socket: /var/run/mysqld/mysqlx.sock
cms-db_1 | 2026-03-06T15:18:18.621255Z 0 [System] [MY-010931] [Server] /usr/sbin/mysqld: ready for conne ctions. Version: ‘8.4.8’ socket: ‘/var/run/mysqld/mysqld.sock’ port: 3306 MySQL Community Server - GPL.
cms-web_1 | MySQL started
cms-web_1 | Configuring MySQL cnf file
cms-web_1 | ERROR 1524 (HY000): Plugin ‘mysql_native_password’ is not loaded
cms-web_1 | New install
cms-web_1 | Provisioning Database
cms-web_1 | ERROR 1524 (HY000): Plugin ‘mysql_native_password’ is not loaded
cms-web_1 | Phinx by CakePHP - https://phinx.org.
cms-web_1 |
cms-web_1 | using config file /var/www/cms/phinx.php
cms-web_1 | using config parser php
cms-web_1 | using migration paths
cms-web_1 | - /var/www/cms/db/migrations
cms-web_1 | warning no environment specified, defaulting to: production
cms-web_1 | using adapter mysql
cms-web_1 | using database cms
cms-web_1 | ordering by creation time
cms-web_1 | PDOException: SQLSTATE[HY000] [1524] Plugin ‘mysql_native_password’ is not loaded in /var/www /cms/vendor/robmorgan/phinx/src/Phinx/Db/Adapter/PdoAdapter.php:86
cms-web_1 | Stack trace:
cms-web_1 | #0 /var/www/cms/vendor/robmorgan/phinx/src/Phinx/Db/Adapter/PdoAdapter.php(86): PDO->__constr uct()
cms-web_1 | #1 /var/www/cms/vendor/robmorgan/phinx/src/Phinx/Db/Adapter/MysqlAdapter.php(158): Phinx\Db\A dapter\PdoAdapter->createPdoConnection()
cms-web_1 | #2 /var/www/cms/vendor/robmorgan/phinx/src/Phinx/Db/Adapter/PdoAdapter.php(163): Phinx\Db\Ada pter\MysqlAdapter->connect()
cms-web_1 | #3 /var/www/cms/vendor/robmorgan/phinx/src/Phinx/Db/Adapter/PdoAdapter.php(226): Phinx\Db\Ada pter\PdoAdapter->getConnection()
cms-web_1 | #4 /var/www/cms/vendor/robmorgan/phinx/src/Phinx/Db/Adapter/PdoAdapter.php(247): Phinx\Db\Ada pter\PdoAdapter->query()
cms-web_1 | #5 /var/www/cms/vendor/robmorgan/phinx/src/Phinx/Db/Adapter/PdoAdapter.php(383): Phinx\Db\Ada pter\PdoAdapter->fetchAll()
cms-web_1 | #6 /var/www/cms/vendor/robmorgan/phinx/src/Phinx/Db/Adapter/PdoAdapter.php(355): Phinx\Db\Ada pter\PdoAdapter->getVersionLog()
cms-web_1 | #7 /var/www/cms/vendor/robmorgan/phinx/src/Phinx/Db/Adapter/AdapterWrapper.php(205): Phinx\Db \Adapter\PdoAdapter->getVersions()
cms-web_1 | #8 /var/www/cms/vendor/robmorgan/phinx/src/Phinx/Migration/Manager/Environment.php(254): Phin x\Db\Adapter\AdapterWrapper->getVersions()
cms-web_1 | #9 /var/www/cms/vendor/robmorgan/phinx/src/Phinx/Migration/Manager.php(315): Phinx\Migration\ Manager\Environment->getVersions()
cms-web_1 | #10 /var/www/cms/vendor/robmorgan/phinx/src/Phinx/Console/Command/Migrate.php(122): Phinx\Mig ration\Manager->migrate()
cms-web_1 | #11 /var/www/cms/vendor/symfony/console/Command/Command.php(298): Phinx\Console\Command\Migra te->execute()
cms-web_1 | #12 /var/www/cms/vendor/symfony/console/Application.php(1040): Symfony\Component\Console\Comm and\Command->run()
cms-web_1 | #13 /var/www/cms/vendor/symfony/console/Application.php(301): Symfony\Component\Console\Appli cation->doRunCommand()
cms-web_1 | #14 /var/www/cms/vendor/robmorgan/phinx/src/Phinx/Console/PhinxApplication.php(70): Symfony\C omponent\Console\Application->doRun()
cms-web_1 | #15 /var/www/cms/vendor/symfony/console/Application.php(171): Phinx\Console\PhinxApplication- >doRun()
cms-web_1 | #16 /var/www/cms/vendor/robmorgan/phinx/bin/phinx(28): Symfony\Component\Console\Application- >run()
cms-web_1 | #17 /var/www/cms/vendor/bin/phinx(119): include(‘…’)
cms-web_1 | #18 {main}
cms-web_1 |
cms-web_1 | Next InvalidArgumentException: There was a problem connecting to the database: SQLSTATE[HY000 ] [1524] Plugin ‘mysql_native_password’ is not loaded in /var/www/cms/vendor/robmorgan/phinx/src/Phinx/Db/Adapter /PdoAdapter.php:98
cms-web_1 | Stack trace:
cms-web_1 | #0 /var/www/cms/vendor/robmorgan/phinx/src/Phinx/Db/Adapter/MysqlAdapter.php(158): Phinx\Db\A dapter\PdoAdapter->createPdoConnection()
cms-web_1 | #1 /var/www/cms/vendor/robmorgan/phinx/src/Phinx/Db/Adapter/PdoAdapter.php(163): Phinx\Db\Ada pter\MysqlAdapter->connect()
cms-web_1 | #2 /var/www/cms/vendor/robmorgan/phinx/src/Phinx/Db/Adapter/PdoAdapter.php(226): Phinx\Db\Ada pter\PdoAdapter->getConnection()
cms-web_1 | #3 /var/www/cms/vendor/robmorgan/phinx/src/Phinx/Db/Adapter/PdoAdapter.php(247): Phinx\Db\Ada pter\PdoAdapter->query()
cms-web_1 | #4 /var/www/cms/vendor/robmorgan/phinx/src/Phinx/Db/Adapter/PdoAdapter.php(383): Phinx\Db\Ada pter\PdoAdapter->fetchAll()
cms-web_1 | #5 /var/www/cms/vendor/robmorgan/phinx/src/Phinx/Db/Adapter/PdoAdapter.php(355): Phinx\Db\Ada pter\PdoAdapter->getVersionLog()
cms-web_1 | #6 /var/www/cms/vendor/robmorgan/phinx/src/Phinx/Db/Adapter/AdapterWrapper.php(205): Phinx\Db \Adapter\PdoAdapter->getVersions()
cms-web_1 | #7 /var/www/cms/vendor/robmorgan/phinx/src/Phinx/Migration/Manager/Environment.php(254): Phin x\Db\Adapter\AdapterWrapper->getVersions()
cms-web_1 | #8 /var/www/cms/vendor/robmorgan/phinx/src/Phinx/Migration/Manager.php(315): Phinx\Migration\ Manager\Environment->getVersions()
cms-web_1 | #9 /var/www/cms/vendor/robmorgan/phinx/src/Phinx/Console/Command/Migrate.php(122): Phinx\Migr ation\Manager->migrate()
cms-web_1 | #10 /var/www/cms/vendor/symfony/console/Command/Command.php(298): Phinx\Console\Command\Migra te->execute()
cms-web_1 | #11 /var/www/cms/vendor/symfony/console/Application.php(1040): Symfony\Component\Console\Comm and\Command->run()
cms-web_1 | #12 /var/www/cms/vendor/symfony/console/Application.php(301): Symfony\Component\Console\Appli cation->doRunCommand()
cms-web_1 | #13 /var/www/cms/vendor/robmorgan/phinx/src/Phinx/Console/PhinxApplication.php(70): Symfony\C omponent\Console\Application->doRun()
cms-web_1 | #14 /var/www/cms/vendor/symfony/console/Application.php(171): Phinx\Console\PhinxApplication- >doRun()
cms-web_1 | #15 /var/www/cms/vendor/robmorgan/phinx/bin/phinx(28): Symfony\Component\Console\Application- >run()
cms-web_1 | #16 /var/www/cms/vendor/bin/phinx(119): include(‘…’)
cms-web_1 | #17 {main}
cms-web_1 | Configuring Database Settings
cms-web_1 | ERROR 1524 (HY000): Plugin ‘mysql_native_password’ is not loaded
cms-web_1 | ERROR 1524 (HY000): Plugin ‘mysql_native_password’ is not loaded
cms-web_1 | ERROR 1524 (HY000): Plugin ‘mysql_native_password’ is not loaded
cms-web_1 | ERROR 1524 (HY000): Plugin ‘mysql_native_password’ is not loaded
cms-web_1 | ERROR 1524 (HY000): Plugin ‘mysql_native_password’ is not loaded
cms-web_1 | Setting up Maintenance
cms-web_1 | Protected Maintenance
cms-web_1 | ERROR 1524 (HY000): Plugin ‘mysql_native_password’ is not loaded
cms-web_1 | ERROR 1524 (HY000): Plugin ‘mysql_native_password’ is not loaded
cms-web_1 | Importing ca-certs
cms-web_1 | cp: cannot stat ‘/var/www/cms/ca-certs/.pem’: No such file or directory
cms-web_1 | cp: cannot stat '/var/www/cms/ca-certs/
.crt’: No such file or directory
cms-web_1 | Updating certificates in /etc/ssl/certs…
cms-web_1 | 0 added, 0 removed; done.
cms-web_1 | Running hooks in /etc/ca-certificates/update.d…
cms-web_1 | done.
cms-web_1 | Setting up XMR private API
cms-web_1 | ERROR 1524 (HY000): Plugin ‘mysql_native_password’ is not loaded
cms-web_1 | Setting up Quickchart
cms-web_1 | ERROR 1524 (HY000): Plugin ‘mysql_native_password’ is not loaded
cms-web_1 | ERROR 1524 (HY000): Plugin ‘mysql_native_password’ is not loaded
cms-web_1 | Configuring Maintenance
cms-web_1 | ERROR 1524 (HY000): Plugin ‘mysql_native_password’ is not loaded
cms-web_1 | Configure PHP
cms-web_1 | Configure Apache
cms-web_1 | Starting cron
cms-web_1 | Starting webserver
cms-web_1 | AH00558: apache2: Could not reliably determine the server’s fully qualified domain name, usin g 172.18.0.6. Set the ‘ServerName’ directive globally to suppress this message
cms-web_1 | 192.168.200.84 - - [06/Mar/2026:15:18:21 +0000] “POST /xmds.php?v=7&method=submitStats HTTP/1 .1” 500 210 “-” “Mozilla/4.0 (compatible; MSIE 6.0; MS Web Services Client Protocol 4.0.30319.42000)”
cms-web_1 | 192.168.83.71 - - [06/Mar/2026:15:18:29 +0000] “POST /xmds.php?v=7&method=getData HTTP/1.1” 5 00 210 “-” “Mozilla/4.0 (compatible; MSIE 6.0; MS Web Services Client Protocol 4.0.30319.42000)”
cms-web_1 | 192.168.200.84 - - [06/Mar/2026:15:18:35 +0000] “POST /xmds.php?v=7&method=submitStats HTTP/1.1” 500 210 “-” “Mozilla/4.0 (compatible; MSIE 6.0 MS Web Services Client Protocol 4.0.30319.42000)”

This is the firsts time I have an issue after performing an update!

Hope someone can help quickly, as I need the server by Monday!

Thanks in advance!

It looks like you already did the MySQL upgrade before updating the password format.

You can try doing the init-file process with the 8.4 image and see if that resolves it, otherwise you might need to roll back to the backup you took of the db folder before upgrade, resolve the password format and then upgrade to 8.4

Hello,

Thanks for you reply.

I rolled back, followed the guide to fix the password issue.

No errors.

But then get this when accessing the webpage

Fatal Error - sorry this shouldn’t happen.
SQLSTATE[HY000] [1045] Access denied for user ‘cms’@‘172.18.0.6’ (using password: YES)

not sure where this come from…

I have restored again the VM.

how can I do the init-file process?

ok I did again the init-file and now got this..

sudo docker-compose -f docker-compose.yml up -d
Recreating 4f5a52edfb18_xibo_cms-db_1 …
Recreating bd8ffb754fff_xibo_cms-web_1 …
Starting xibo_cms-memcached_1 …

ERROR: for 4f5a52edfb18_xibo_cms-db_1 ‘ContainerConfig’
Recreating 8ecfa5e254a9_xibo_cms-xmr_1 …

ERROR: for bd8ffb754fff_xibo_cms-web_1 ‘ContainerConfig’
Starting xibo_cms-memcached_1 … done

Starting xibo_cms-quickchart_1 … done

ERROR: for cms-db ‘ContainerConfig’

ERROR: for cms-web ‘ContainerConfig’

ERROR: for cms-xmr ‘ContainerConfig’
Traceback (most recent call last):
File “/usr/bin/docker-compose”, line 33, in
sys.exit(load_entry_point(‘docker-compose==1.29.2’, ‘console_scripts’, ‘docker-compose’)())
File “/usr/lib/python3/dist-packages/compose/cli/main.py”, line 81, in main
command_func()
File “/usr/lib/python3/dist-packages/compose/cli/main.py”, line 203, in perform_command
handler(command, command_options)
File “/usr/lib/python3/dist-packages/compose/metrics/decorator.py”, line 18, in wrapper
result = fn(*args, **kwargs)
File “/usr/lib/python3/dist-packages/compose/cli/main.py”, line 1186, in up
to_attach = up(False)
File “/usr/lib/python3/dist-packages/compose/cli/main.py”, line 1166, in up
return self.project.up(
File “/usr/lib/python3/dist-packages/compose/project.py”, line 697, in up
results, errors = parallel.parallel_execute(
File “/usr/lib/python3/dist-packages/compose/parallel.py”, line 108, in parallel_execute
raise error_to_reraise
File “/usr/lib/python3/dist-packages/compose/parallel.py”, line 206, in producer
result = func(obj)
File “/usr/lib/python3/dist-packages/compose/project.py”, line 679, in do
return service.execute_convergence_plan(
File “/usr/lib/python3/dist-packages/compose/service.py”, line 579, in execute_convergence_plan
return self._execute_convergence_recreate(
File “/usr/lib/python3/dist-packages/compose/service.py”, line 499, in _execute_convergence_recreate
containers, errors = parallel_execute(
File “/usr/lib/python3/dist-packages/compose/parallel.py”, line 108, in parallel_execute
raise error_to_reraise
File “/usr/lib/python3/dist-packages/compose/parallel.py”, line 206, in producer
result = func(obj)
File “/usr/lib/python3/dist-packages/compose/service.py”, line 494, in recreate
return self.recreate_container(
File “/usr/lib/python3/dist-packages/compose/service.py”, line 612, in recreate_container
new_container = self.create_container(
File “/usr/lib/python3/dist-packages/compose/service.py”, line 330, in create_container
container_options = self._get_container_create_options(
File “/usr/lib/python3/dist-packages/compose/service.py”, line 921, in _get_container_create_options
container_options, override_options = self._build_container_volume_options(
File “/usr/lib/python3/dist-packages/compose/service.py”, line 960, in _build_container_volume_options
binds, affinity = merge_volume_bindings(
File “/usr/lib/python3/dist-packages/compose/service.py”, line 1548, in merge_volume_bindings
old_volumes, old_mounts = get_container_data_volumes(
File “/usr/lib/python3/dist-packages/compose/service.py”, line 1579, in get_container_data_volumes
container.image_config[‘ContainerConfig’].get(‘Volumes’) or {}
KeyError: ‘ContainerConfig’