diff --git a/content/issues/2023-05-29-mariadb.md b/content/issues/2023-05-29-mariadb.md new file mode 100644 index 00000000..419e4e05 --- /dev/null +++ b/content/issues/2023-05-29-mariadb.md @@ -0,0 +1,53 @@ +--- +title: 'Known Issue: MariaDB Check and Repair' +date: '2023-05-29 12:00:00Z' +severity: notice +resolved: false +affected: + - 'Known Issues' + - 'mariadb' +section: 'issue' +--- +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: + +```log +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: + +```shell +mariadb-check -u root -p -c -A # check all databases for errors +mariadb-check -u root -p -r -A # repair all databases +mariadb-check -u root -p -a -A # analyze all databases +mariadb-check -u root -p -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: + +```shell +mariadb-upgrade -u root -p +``` + +### 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.