Problem/Motivation

Drupal requirements list the following MySQL/MariaDB/Percona requirements currently:

Drupal 9 requires MariaDB 10.3.7+ or MySQL/Percona 5.7.8+.

Decide on Drupal 10 requirements changes if any.

Distros

  • Debian
    • 10 (6th july 2019): Ships with MariaDB 10.3.18 & MySQL 5.7.29 and 8.0.19
    • 10.7 (5th december 2020): Ships with MariaDB 10.3.18 & MySQL 5.7.29 and 8.0.19
    • 11 Expected to be released before Drupal 10: Ships with at least MariaDB 10.5.8 & MySQL 5.7.26 and 8.0.22
  • Ubuntu
    • 20.04 LTS (april 2020): Ships with MariaDB 10.0.24 & MySQL 5.7.29 and 8.0.19
    • 22.04 LTS (expected april 2022)
  • Red Hat Enterprise Linux
    • 8 (7th may 2019): Ships with MariaDB 10.3.17 & MySQL 8.0.19
    • 8.3 (29th october 2020)

Databases

Proposed resolution

  • Require MySQL/Percona 5.7.8.
  • Require at least MariaDB 10.3.7.

Remaining tasks

Discuss.

User interface changes

None.

API changes

TBD.

Data model changes

TBD.

Release notes snippet

Drupal 10 will require MariaDB 10.3.+ or MySQL/Percona 5.7.8+.

Comments

daffie created an issue. See original summary.

catch’s picture

Priority: Normal » Critical

Bumping to critical since this blocks Drupal 10's release and we'll want to announce and potentially warn people from core in advance.

MySQL 8 and MariaDB 10.3 seems reasonable - but we might be stretching things requiring MariaDB 10.4 based on Ubuntu LTS and RHEL?

gábor hojtsy’s picture

Title: [policy] Decide on MySQL/MariaDB/Percona Server version support status for Drupal 10 » [policy] Require MySQL 8 (up from 5.7.8 in Drupal 9) or MariaDB 10.3.7 (same as Drupal 9) for Drupal 10
Status: Active » Needs review

Since we are to keep the MariaDB version requirement same as Drupal 9, is there a reason we'd raise the MySQL version requirement other than what is available in distros? Is 5.7 not maintained anymore? I assume MySQL 5.7 and MariaDB 10.3 are on par with the features we use, so if we are to raise MySQL only, does that give us feature / speed, etc benefits?

catch’s picture

#3 is a good question so had a bit more of a look at things.

MySQL 5.7 will be EOL October 2023 and MariaDB 10.3 will be EOL May 2023.

So... both will be EOL during Drupal 10's release cycle, but MariaDB will be EOL first. Therefore if we have to support MariaDB 10.3 due to distros, I can't see a reason to drop MySQL 5.7 quicker when it's going to be supported six months longer.

So we could do MySQL 5.7 and MariaDB 10.4, or MySQL 8 and MariaDB 10.4, but I think we should rule out MySQL 8 and MariaDB 10.3.

Looking ahead, given MySQL 8 is supported until 2026, that'll likely be the minimum MySQL version for Drupal 11 regardless of whether it is for Drupal 10.

The one new feature in MySQL 8 that could eventually be relevant to us is better support for the InnoDB memcached plugin - i.e. we could potentially add a cache configuration that uses this, which might help sites that don't want to/can't run redis or memcached, - but we don't even have an issue to use that yet.

gábor hojtsy’s picture

Title: [policy] Require MySQL 8 (up from 5.7.8 in Drupal 9) or MariaDB 10.3.7 (same as Drupal 9) for Drupal 10 » [policy] Require MySQL 5.7.8 (same as Drupal 9) or MariaDB 10.3.7 (same as Drupal 9) for Drupal 10
Issue summary: View changes

Updated current status in title and summary then.

effulgentsia’s picture

[Ubuntu] 20.04 LTS (april 2020): Ships with MariaDB 10.0.24 & MySQL 5.7.29 and 8.0.19

That's not accurate. According to https://packages.ubuntu.com/focal/mariadb-server, it's 10.3(.29), not 10.0. And also, what's the source for saying that MySQL 5.7 is shipped with Ubuntu 20.04? https://packages.ubuntu.com/focal/database/mysql-server does not mention that.

[Debian] 11 Expected to be released before Drupal 10: Ships with at least MariaDB 10.5.8 & MySQL 5.7.26 and 8.0.22

What's the source for MySQL being included in Debian 11? From what I can tell, https://packages.debian.org/testing/database/ doesn't mention any MySQL installation apart from MariaDB.

I think the conclusion is still the same though, that from a db vendor and/or distro support standpoint, MariaDB 10.3 and MySQL 8 are the reasonable minimums, but if we want to keep supporting MySQL 5.7 due to it being on par with MariaDB 10.3, I think that makes sense as well.

effulgentsia’s picture

[RHEL] 8 (7th may 2019): Ships with MariaDB 10.3.17 & MySQL 8.0.19

Per https://access.redhat.com/support/policy/updates/rhel8-app-streams-life-..., MariaDB 10.5 is also included starting with RHEL 8.4, but RHEL will continue to support MariaDB 10.3 until 2029.

gábor hojtsy’s picture

Since we are to support MariaDB 10.3, keeping MySQL 5.7 support makes most sense IMHO. So agreed with @catch and @effulgentsia. Also we'll have PHP 8 related fallout to deal with in contrib especially and the frontend changes with ckeditor will be sizable, so keeping the database requirements at rest would help us keep the overall Drupal 10 upgrade effort lower.

effulgentsia’s picture

I want to ask if our conclusion still holds if Drupal 10 isn't EOL until Nov. 2027 (Symfony 6's EOL). We don't know yet if we'll successfully get onto Symfony 6 for D10, or if other dependencies will require us to EOL before 2027, but for the sake of argument, suppose we are able to support D10 until Nov. 2027.

I think that because of #7, it's still reasonable to support MariaDB 10.3 for all of D10.

MySQL 5.7 will go EOL in Oct. 2023. However, Ubuntu 18.04 ESM will support it until 2028. In the past, we've only considered Ubuntu's mainstream support period, but I wonder if Ubuntu's ESM program is now sufficiently broadly available, including free for community users, that we'd be ok with counting on it.

So, my recommendation is to keep with MySQL 5.7 and MariaDB 10.3, even if it means having to support them until Nov. 2027, but what do others think?

catch’s picture

Status: Needs review » Reviewed & tested by the community
Issue tags: +Needs change record, +10.0.0 release notes, +Needs documentation updates

I think the same argument (that 5.7 is comparable to MariaDB 10.3) holds even if we have a later EOL. The later EOL doesn't necessarily mean we'll have Drupal 11 later, it might just mean a longer LTS period for Drupal 10, so the timing for adopting MySQL 8 features might not change at all either way.

We've had consensus on this issue for a while, so marking RTBC (although also adding tags for things that need doing before we can mark it fixed).

catch’s picture

Issue summary: View changes
Status: Reviewed & tested by the community » Fixed
Issue tags: -Needs change record, -10.0.0 release notes, -Needs documentation updates

I've added a sentence to https://www.drupal.org/docs/system-requirements/database-server-requirem...

We will probably want to rework that page more when Drupal 8.9 is dropped, focusing on Drupal 9 with a note about Drupal 10, it's still quite 8.x focused for the moment.

We'll also probably need a Drupal 10 version of https://www.drupal.org/docs/understanding-drupal/how-drupal-9-was-made-a..., but it feels a bit early for that.

Added a change record and a release notes snippet too.

Status: Fixed » Closed (fixed)

Automatically closed - issue fixed for 2 weeks with no activity.