← Go back to Info :: LinuxServer.io

Known Issue: MariaDB Check and Repair

May 29, 2023 at 12:00 PM

Known Issues mariadb

Resolved after 2409h 0m September 6, 2023 at 9:00 PM

There is a known issue with MariaDB when updating the container image to a new version. If a database upgrade is required and user databases are not in a healthy state, then the MariaDB service may fail to start.

MariaDB version updates (ex: 10.6.x to 10.11.x) can happen when updating the container image. Upgrading user databases is done manually by running a command.

Recovery Procedure

If you have recently updated your container image and your container logs show repeating entries of:

Caught SIGTERM signal!
  • Roll back the container image to a previous tag (ex: lscr.io/linuxserver/mariadb:10.6.13 assuming this was the version you were running when things were last working)
  • Run the check, repair, analyze, and optimize commands, watch for any issues
  • Update the container image to the new tag (ex: lscr.io/linuxserver/mariadb:10.11.3 or lscr.io/linuxserver/mariadb:latest)
  • Run the upgrade command

This should get MariaDB running again with your user databases in a healthy state.

Check and Repair

If user databases are not in a healthy state (sometimes caused by a failed upgrade), it may be remedied by running:

mariadb-check -u root -p<PASSWORD> -c -A # check all databases for errors
mariadb-check -u root -p<PASSWORD> -r -A # repair all databases
mariadb-check -u root -p<PASSWORD> -a -A # analyze all databases
mariadb-check -u root -p<PASSWORD> -o -A # optimize all databases

After running the above commands, you may need to run the upgrade command again.

Upgrading

When this container initializes, if MYSQL_ROOT_PASSWORD is set an upgrade check will run. If an upgrade is required the log will indicate the need stop any services that are accessing databases in this container, and then run the command:

mariadb-upgrade -u root -p<PASSWORD>

Closing Notes

If you are running MariaDB databases in production, we always recommend pinning the container image to a specific version tag, such as lscr.io/linuxserver/mariadb:10.6.13-r0-ls97, and planning any upgrades so that you can test and monitor them.

Last updated: September 5, 2023 at 7:11 PM