Skip to content

Add MySQL 8.4/9.7, MariaDB 10.11/11.8/12.3, Percona 8.4/9.7 (mysql image 0.23) - #19

Open
fibis wants to merge 1 commit into
devilbox-community:mainlinefrom
fibis:mysql-update
Open

fibis wants to merge 1 commit into
devilbox-community:mainlinefrom
fibis:mysql-update

Conversation

@fibis

@fibis fibis commented Oct 31, 2026

Copy link
Copy Markdown

Adds the current MySQL, MariaDB and Percona LTS lines as MYSQL_SERVER values, and moves the database image to 0.23.

Depends on devilbox-community/docker-mysql#1. The *-0.23 images have to be published before this is merged.

Changes

  • New MYSQL_SERVER values: mysql-8.4, mysql-9.7, mariadb-10.11, mariadb-11.8, mariadb-12.3, percona-8.4 and percona-9.7. Each one is added to:
    • env-example, .gitignore and the CI matrix (params-mysql.yml);
    • a named data volume in docker-compose.yml;
    • a cfg/<version>/ folder with the usual examples.
  • docker-compose.yml: devilboxcommunity/mysql:${MYSQL_SERVER}-0.23. The rebuilt images carry current patch releases; for example MySQL 8.0 moves from 8.0.42 to the final 8.0.46, since 8.0 is end-of-life.
  • Fix: cfg/mysql-8.0/ and cfg/percona-8.0/devilbox-performance.cnf-example set query_cache_* and show_compatibility_56, which MySQL 8.0 removed. Enabling the example made mysqld abort (unknown variable 'show_compatibility_56=ON'). These two files and the new MySQL/Percona folders now use a version without those options, with innodb_redo_log_capacity instead of the deprecated innodb_log_file_size. The MariaDB examples are unchanged, because MariaDB accepts them.
  • CI matrix: mysql-9.7 and percona-9.7 are left out of params-mysql.yml for now, with a comment. The php-fpm 0.160 images that mainline uses ship the mysql/mysqldump client without its auth plugins, so the CLI cannot log in to 9.x. PHP's mysqli and PDO work. That is fixed in Add PHP 8.5, refresh PHP 8.4 and fix rebuilds for all versions (0.161) docker-php-fpm#2 (0.161, used by Add PHP 8.5 and update php-fpm images to 0.161 #18). Add both entries once Add PHP 8.5 and update php-fpm images to 0.161 #18 is merged.
  • MariaDB examples: the new MariaDB folders use innodb_sort_buffer_size=64M, the server maximum, instead of 1024M, which MariaDB clamps with a warning on every start.
  • .gitignore: the missing entries for cfg/mariadb-10.8, 10.9 and 10.10 are added.
  • Docs and README: the docs, the README version table (which also adds the missing MariaDB 11.4) and the CHANGELOG are updated.

Verification

  • Compose: docker compose config resolves each new value to devilboxcommunity/mysql:<value>-0.23 and its own devilbox-<value> volume.
  • Examples: every new image starts with .devilbox/cfg/mysql.cnf plus its folder's performance example. So do the rebuilt mysql-8.0 and percona-8.0 with the corrected example.

Notes for users

  • Each MYSQL_SERVER value has its own data volume, so switching versions starts with an empty database. Dump first and import afterwards. Going from MySQL 8.0 to 9.7 needs a step through 8.4.
  • mysql-9.7 and percona-9.7 only support caching_sha2_password. That needs PHP 7.4.4 or newer, and php-fpm 0.161 or newer for the mysql/mysqldump CLI and dvl.sh db:*.
  • The README table may conflict with Add PHP 8.5 and update php-fpm images to 0.161 #18, since both add rows at the end of the same table. Whichever is merged second needs a trivial rebase.

- docker-compose.yml: mysql image 0.22 -> 0.23 and one data volume per new version
- env-example, .gitignore, cfg/<version>/ and the CI matrix list the new versions
- Fix cfg/mysql-8.0 and cfg/percona-8.0 performance examples: query_cache_*
  and show_compatibility_56 were removed in MySQL 8.0, so mysqld refused to start
- README version table and docs

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant