[11.x] [policy] Require MySQL 8.0 and MariaDB 10.6

Created on 21 May 2021, over 3 years ago
Updated 5 June 2024, 7 months ago

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 11 requirements changes if any.

Distros

Databases

Proposed resolution

  • Require MySQL/Percona 8.0 (TODO: decide on minimum patch version)
  • Require MariaDB 10.6 - it is supported until Drupal 10's EOL, and is already supported by debian and ubuntu

Remaining tasks

  • Discuss concerns or suggestions about the current recommendation.
  • Decide when/how to communicate this (Drupal 11 is still far away, but some people might want to plan ahead).

User interface changes

None.

API changes

TBD.

Data model changes

TBD.

Release notes snippet

TBD.

πŸ“Œ Task
Status

Fixed

Version

11.0 πŸ”₯

Component
DatabaseΒ  β†’

Last updated 2 days ago

  • Maintained by
  • πŸ‡³πŸ‡±Netherlands @daffie
Created by

πŸ‡ΊπŸ‡ΈUnited States effulgentsia

Live updates comments and jobs are added and updated live.
Sign in to follow issues

Comments & Activities

Not all content is available!

It's likely this issue predates Contrib.social: some issue and comment data are missing.

  • πŸ‡ΊπŸ‡ΈUnited States xjm
  • πŸ‡¬πŸ‡§United Kingdom catch
  • πŸ‡ΊπŸ‡ΈUnited States xjm

    I think it makes sense to be aggressive for D11 (i.e., require newer DB versions) since D10 will ideally be around for awhile.

    Can we add the support timeframes for the distro versions to the IS? They're not easy to scan at present and not immediately obvious at the linked references either.

  • πŸ‡«πŸ‡·France andypost

    Meantime Mysql 8.1 is out and Oracle announced changes in release cycle

    I'm ++ to set 8.0 looking at https://www.mysql.com/support/supportedplatforms/database.html

  • πŸ‡¬πŸ‡§United Kingdom catch

    @xjm I've added the release dates for the distros (debian, ubuntu, RHEL) to the issue summary.

    Also added the EOL date for Ubuntu 20.0.4 since that is the only version we already had listed which doesn't support all the versions we'd be requiring - it's April 2025, so there will be very little crossover between D11 anyway, 5-10 months.

    I think in general we're mainly interested in when they added support for the versions we require, more than how long they'll support the previous version of the distro (or the version that will run our minimums), also EOL dates are complicated because there's often a phase out/shift to commercial rather than a hard stop.

  • πŸ‡¬πŸ‡§United Kingdom catch

    Update:
    https://mariadb.org/download/?t=mariadb&p=mariadb&r=10.11.6&os=Linux&cpu...

    MariaDB now has more frequent releases, and five year support LTS minors every so often.

    The two, active, LTS minors are 10.6 and 10.11

    I therefore think given we already decided to go to MariaDB 10.5 here, we should consider bumping that to 10.6 since that's the version that hosting is actually likely to want to run, distros provide etc. and talk about whether to consider going to 10.11 or not (released early this year).

    MySQL's next LTS release will be 8.4 (see @andypost's link above), and that looks like it won't be out before Drupal 11.0, so for me that means we pretty firmly should pick MySQL 8.0 as a minimum.

  • πŸ‡¬πŸ‡§United Kingdom catch
  • πŸ‡¬πŸ‡§United Kingdom catch

    Updated for the MariaDB release/support cycles too now.

    If we want to support RHEL 9, we have to support MariaDB 10.5, otherwise 10.6 looks realistic. MariaDB 10.5 goes out of official support in 2025, so Drupal 11 sites would get one year on it (if they're not on an LTS distro that does its own security support).

  • πŸ‡ΊπŸ‡ΈUnited States effulgentsia

    The two, active, LTS minors are 10.6 and 10.11

    What's your definition of "active" and why does it include 10.6, but not 10.5? From https://mariadb.org/download:

    The current maintained versions are: 10.4, 10.5, 10.6, 10.11 (maintained for 5 years)

  • πŸ‡¬πŸ‡§United Kingdom catch

    What's your definition of "active, LTS" and why does it include 10.6, but not 10.5? From https://mariadb.org/download:

    It's because I mis-read the MariaDB post the first time...

    But also I think in terms of the Drupal 11 cycle a 2025 EOL that is potentially less than a year after Drupal 11.0.0 is not very active or LTS in context, i.e. it could be out of support before 11.0.x if we end up using the December window.

  • Status changed to Needs review about 1 year ago
  • πŸ‡¬πŸ‡§United Kingdom catch

    I think this is ready for review now.

  • πŸ‡ΈπŸ‡°Slovakia poker10

    MySQL 8.2 was released in Oct 2023 and the new Oracle release cycle promise quarterly releases. So in case of December release window, there is a chance that there will be the next LTS already available.

    But I know this is not 100% and we cannot predict it (together with the Drupal 11 release window), so I think MySQL 8.0 is a way to go.

  • Status changed to RTBC about 1 year ago
  • πŸ‡ΊπŸ‡ΈUnited States smustgrave

    Tagging the same as the php8.3 ticket just in case

    But sounds like the consensus is mysql 8.0 is preferred.

  • Status changed to Needs review about 1 year ago
  • πŸ‡¬πŸ‡§United Kingdom catch

    I think we need to decide between MariaDB 10.5 or 10.6 still. In the past we have based decisions on RHEL as the slowest-but-still-supported distro, but since their active hostility to downstream distros this year, and the much longer support cycle for Drupal 10, I'm not convinced that should be the determining factor any more. If we want to try to keep Drupal sites on officially supported versions of releases, then 10.6 is the better target since if a Drupal 10 site goes to 10.6, it'll be supported until around Drupal 10's EOL, making it a good bridge version between the two (in the same way that PHP 8.3 is).

    Updated the issue summary and leaving needs review.

  • πŸ‡³πŸ‡±Netherlands daffie

    MySQL 8.2 has been released on 25th October 2023.

  • πŸ‡³πŸ‡±Netherlands daffie

    If it would be fully up to me we would go for MySQL 8.2 and MariaDB 10.11. Both are the newest versions for both databases. MariaDB 10.6 is by the time we release D11 already 3 years old and MySQL 8.0 is by than 6 years old. If somebody does not have hosting that is compatible with MariaDB 10.11 or MySQL 8.2, they should keep using D10. D10 will be supported until at least the summer of 2026.

  • πŸ‡ΈπŸ‡°Slovakia poker10

    Yes, but according to this: https://blogs.oracle.com/mysql/post/introducing-mysql-innovation-and-lon... , 8.2 is not a LTS version, so I am not sure if it would have any benefit to require that.

    In case there will be the next LTS (probably MySQL 8.4) available by 11.x beta, that would probably make sense.

  • πŸ‡³πŸ‡±Netherlands daffie

    @poker10 Thanks you for the info. You are right a LTS would be preferable. MySQL 8.0 with a EOL of April 2026, would mean that it would be EOL before the release of D12. Both are not great options.

  • πŸ‡ΊπŸ‡ΈUnited States effulgentsia

    I support requiring MySQL 8.0 and MariaDB 10.5 (at least). I suspect I'll end up creating a mysql57 contrib module, like I did with https://www.drupal.org/project/mysql56 β†’ for Drupal 9 and 10, but I don't know for sure if I will yet.

    I also support raising the MariaDB minimum to 10.6 if we decide to do that. RHEL's next minor release might include 10.11. Even if it doesn't, most RHEL users probably use MySQL over MariaDB, and the few that need/prefer MariaDB could use the contrib driver if I create one (which I'll be more likely to do if both Drupal requires 10.6 and RHEL remains on 10.5).

    It looks like no one from Pantheon has commented on this issue. Might be good to reach out to them for comment. They're probably the largest Drupal host that uses MariaDB and I don't know their platform constraints with respect to versions that are available to them. (I work for Acquia and we use MySQL.)

  • πŸ‡¬πŸ‡§United Kingdom catch

    Updating the issue title to indicate that MariaDB 10.6 is in contention.

  • πŸ‡³πŸ‡±Netherlands daffie

    Maybe I am missing the point in why distributions are so important. In 🌱 [11.x] [policy] Require PHP 8.3 for Drupal 11 RTBC we set the minimum version for PHP to 8.3 in spite of no distribution supportion PHP 8.3. Yet, for MySQL and MariaDB it is somehow the deciding factor. We are now in a situation were every new major version of Drupal has an older major Drupal version that has full support. When D11 is released you do not have to migrate anytime soon. For at least 2 years after the release of D11 you can still use D10 and have full support. This gives us the possibility to set the minimum requirements for MySQL and MariaDB as high as possible. The newer versions of MySQL and MariaDB have an improved performance and some new features. When people do a performance comparison between D10 with MySQL 5.7 and D11 with MySQL 8.2 the performance improvement will be much better than with D11 on the oldest version of MySQL 8.0.

  • πŸ‡¬πŸ‡§United Kingdom catch

    @daffie we've used the distributions as a basis essentially forever, it's only really PHP, and our PHP dependencies, which have caused the shift away from relying solely on distribution support.

    Now that PHP has predictable release cycles and we have more PHP dependencies, it makes sense to follow those release cycles more than the distros - and we have 9.x and 10.x already to show that the distros catch up to new PHP versions quickly enough, and that supporting lower versions of PHP causes problems later. That makes requiring PHP 8.3 very easy.

    With databases though, we don't have dependencies that will rely on minimum versions of those databases,we have at least four databases with their own independent release cycles, with varying levels of predictability and frequency. It's also much less clear how and when distros will keep up since even where the database release cycles are predictable they haven't been for very long.

    The other consideration would be that for non-container hosting, it's easy enough to run multiple versions of PHP with php-fpm, but it's not as easy to run multiple versions of a database. So I do think it's harder with the database requirements.

    I've added the Ubuntu Noble versions to the issue summary - MariaDB 10.11 and MySQL 8.0

  • πŸ‡³πŸ‡±Netherlands daffie

    @catch I know that we have used distribution as a basis essentially forever. Just like you have said. The big change for me is that we are now do a new major release with there being a previous major release that is almost the same as the new major version and the previous major release has 2 more years of full support. For me that is a big change. Lets agree that we have a different opinion. :)

    However you are the release manager and let go with your opinion. We have little choice than to go with MySQL 8.0 as a minimum version. For MariaDB we have a couple of options:
    - We have MariaDB 10.5 which is released with RHEL and has an EOL in 2025;
    - We have MariaDB 10.6 which is not in RHEL and has an EOL in 2026;
    - We have MariaDB 10.11 which is not in RHEL and has an EOL in 2028.

    If we look at the distributions we should go with MariaDB 10.5. That version has an EOL in 2025, which is only 1 year after the release of D11. D11 will be supported by us until 2028.
    If we do not take RHEL in account we can go with MariaDB 10.11. That version has an EOL in 2028, which is the same year as we offer support for D11.

    @catch: I will let you make the choice for which the minimum version for MariaDB should be for D11. My preference would be MariaDB 10.11. If you however will select MariaDB 10.5, that is fine by me too.

  • πŸ‡¬πŸ‡§United Kingdom catch

    @daffie just to clarify, it's not my opinion that we should rely on distribution support any more, or at least, I definitely don't think we should rely on it as much. It's also not solely my decision by any means.

    I do think it's slightly harder to require database versions than PHP versions because there are well documented ways to run multiple PHP versions on non-container hosting which don't apply in the same way for databases.

    Given Ubuntu and Debian will both have releases in 2024 with MariaDB 10.11, I do think that's viable, so adding to the issue summary/title.

  • πŸ‡ΊπŸ‡ΈUnited States effulgentsia

    What would be the benefit of setting MariaDB's minimum to 10.11 vs. 10.6? Are there any features or syntax in MariaDB 10.11 that both:

    • aren't in MariaDB 10.6, and
    • are in MySQL 8.0

    If not, then Drupal core's mysql driver would literally have no code in it for the lifetime of Drupal 11 that won't work on MariaDB 10.6. At which point, we'd be making the adoption of D11 harder for people (e.g., people on Ubuntu 22.04 who use MariaDB) for no reason.

    Or, is it not about MariaDB features, and more about MariaDB support that's available once it's EOL? Are we concerned, for example, that in 2027 or 2028 we'll still be supporting D11 and we might find a MariaDB 10.6 bug that doesn't exist in MySQL 8.0 and that MariaDB won't fix and Drupal's core mysql driver will find challenging to work around? This would be a reasonable benefit to setting 10.11 as our minimum, but do we have any prior experience of this actually happening with prior MariaDB EOL versions?

    Because MariaDB has low marketshare (not sure how reliable these are, but source1, source2), I think it's acceptable to set the minimum to 10.11. For example, people on Ubuntu 22.04 would still have options, such as switch to MySQL, or use a contrib mysql driver per #27, or upgrade to Ubuntu 24.04. However, if we decide to set the minimum this high, I think we should have a clear reason for doing so, such as features we actually intend to use or actual experience with EOL MariaDB versions giving us problems during the last couple years of supporting a major Drupal version.

    It looks like no one from Pantheon has commented on this issue.

    This hasn't happened yet, but I found https://docs.pantheon.io/pantheon-yml#specify-a-version-of-mariadb, so looks like Pantheon customers have an easy way to choose their MariaDB version as long as Pantheon offers it, and that doc page says it was last reviewed in March 2022 and it lists 10.6 in its example, so we could perhaps extrapolate that to mean that 10.11 will be available this year.

  • πŸ‡¬πŸ‡§United Kingdom catch

    Are we concerned, for example, that in 2027 or 2028 we'll still be supporting D11 and we might find a MariaDB 10.6 bug that doesn't exist in MySQL 8.0 and that MariaDB won't fix and Drupal's core mysql driver will find challenging to work around? This would be a reasonable benefit to setting 10.11 as our minimum, but do we have any prior experience of this actually happening with prior MariaDB EOL versions?

    I don't think we have previous examples, but also the MariaDB release schedule has only existed since 10.6, which is since July 2021, so there is not enough time for it to have been in place, for us to know how it'll affect us.

    MariaDB will only be supported until July 2026, so if we require that, we'll be supporting it for approximately two years longer than MariaDB does.

    For PHP versions we (soft) drop support when they go out of support by PHP core, but we've never done that for a database version that I can remember.

  • πŸ‡ΊπŸ‡ΈUnited States effulgentsia

    I don't think we have previous examples, but also the MariaDB release schedule has only existed since 10.6, which is since July 2021, so there is not enough time for it to have been in place, for us to know how it'll affect us.

    Is there any reason to think that it will affect us though? What changed is they added a bunch of short-term releases, but has anything significant changed about their long-term releases? Just one piece of anecdotal evidence: Drupal 9 raised the MariaDB minimum to 10.3, and https://www.drupal.org/project/mysql56 β†’ exists which nominally supports MariaDB 10.0 and in the last 3.5 years since Drupal 9.0 was released, there's no significant code differences in that module vs. core's driver, and no one has opened an issue with any problems on MariaDB 10.0, 10.1, or 10.2.

    However, I'm not necessarily opposed to the idea that we simply want core to be cautious about the promises it makes, and that the most cautious thing to do would be to set MariaDB's minimum to 10.11, so that core doesn't have to take on the risk of dealing with MariaDB 10.6 bugs in 2027/2028. For MySQL I think we should support the last 2 LTS releases of Ubuntu (because people don't upgrade to the newest Ubuntu immediately), but given MariaDB's lower marketshare, I think it's okay to set a more aggressive minimum for MariaDB.

    Changing the title to say 10.11 for MariaDB since it seems like that's what we're recommending, so wanting that to have visibility to people scanning the issue queue who might not already be following this discussion.

  • πŸ‡ΊπŸ‡ΈUnited States effulgentsia

    If we end up setting MariaDB's minimum to 10.11, the next question to figure out would be when to start enforcing that in HEAD. While we should communicate the requirements ~6 months before the first 11.0 release window (in other words, now-ish), if we actually set that requirement in HEAD now, then that'll affect developers/testers on Ubuntu 22.04, so I'd recommend not actually setting that requirement until just before beta (which might still be before Ubuntu 24.04 is released, which would be inconvenient, but I think we kind of have to pull that trigger before beta).

  • πŸ‡¦πŸ‡ΊAustralia mstrelan

    If we end up setting MariaDB's minimum to 10.11, the next question to figure out would be when to start enforcing that in HEAD.

    I would say right after 10.3.x branch is open we can update it in 11.x. According to https://www.drupal.org/about/core/policies/core-release-cycles/schedule we can have 11.0.0-beta1 in March 2024, which is definitely before Ubuntu 24.04. I also suspect folks on LTS versions of Ubuntu won't be updating to 24.04 the day it's released, possibly closer to the May 20 date for 11.0.0-rc1 or even more realistically closer to 11.0.0.

  • πŸ‡ΊπŸ‡ΈUnited States david strauss San Francisco, CA

    It looks like no one from Pantheon has commented on this issue.

    /waves

    I agree with @effulgentsia's perspective on looking at feature requirements more than super long support/distro lifecycles. Some sites just need to launch to support an event, and MariaDB 10.6 will remain a perfectly reasonable choice for projects like that; the EOL is still years out. If someone decides to run Drupal on an EOL DB version, then it's at least slightly unsupported as a stack in general -- and not by our doing, anyway.

    Generally, reducing friction is good.

    As for the Pantheon question, I don't know any ETA for next MariaDB version offerings. I can share that we're considering picking up GCP Cloud SQL as an option for running sites, which would offer actual MySQL, potentially more than one choice amongst the 5.7+ choices (which include an 8.0 offering). We would definitely offer MySQL 8.0 if we offer any Cloud SQL options.

  • πŸ‡¬πŸ‡§United Kingdom longwave UK

    I agree with the sentiment of #33/35. There doesn't seem to be any pressing reason, other than support timescales, to push us towards requiring newer versions of either MySQL or MariaDB. Other than JSON support I can't think of any database feature that we have required in recent history that has meant we have to increase minimum versions; as stated above in practice even though we raised the requirements for Drupal 10, older versions of database engines don't require any different code anyway.

    Therefore if there is no technical requirement to do so, we should not aggressively increase our requirements and that MySQL 8.0 and MariaDB 10.6 are an OK compromise given that most users will likely already be using these versions. And it probably wouldn't even matter if we did nothing here and just left the baseline requirements where they are.

  • Status changed to RTBC 12 months ago
  • πŸ‡¬πŸ‡§United Kingdom catch

    OK let's just go for MySQL 8.0 and MariaDB 10.6, I think that's a good balance. We can revisit again for Drupal 12 once the various support cycles have settled in.

  • πŸ‡¬πŸ‡§United Kingdom catch

    Untagging for release manager review because three of us have commented now.

  • πŸ‡³πŸ‡ΏNew Zealand quietone

    I have been following this discussion and I support the decision.

  • Status changed to Fixed 10 months ago
  • πŸ‡³πŸ‡ΏNew Zealand quietone

    I have updated Database server requirements β†’

    Made an issue to make sure there is a testing environment for MariaDB 10.6. #3420973: Add MariaDB 10.6 to CI β†’ . And one to update core template, πŸ“Œ Add testing wtih Maria DB 10.6 Postponed .

    The policy is agreed to and we have the follow ups.

  • πŸ‡³πŸ‡΄Norway hansfn

    Is there any reason you don't update INSTALL.txt as part of this issue? I find it confusing when the wiki is updated (like quietone just did - great), but the source code isn't. I normally like to point to INSTALL.txt if there is a discussion about requirements.

  • πŸ‡­πŸ‡ΊHungary GΓ‘bor Hojtsy Hungary

    @hansfn: we want to set requirements early enough (see 🌱 [11.x] [meta] Set Drupal 11 platform and browser requirements at least six months before the release Active ), however the 11.x branch is not yet open for development of 11.x. It is true that we need a dedicated issue to update the INSTALL.txt info once the branch is open for 11.x development. Can you help open an issue for that? Thanks!

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

  • Status changed to Needs work 8 months ago
  • πŸ‡ΊπŸ‡ΈUnited States xjm

    Shouldn't this have a change record? We can have a single change record for all the DB version requirements for D11.

  • Status changed to Needs review 8 months ago
  • πŸ‡³πŸ‡ΏNew Zealand quietone

    Change record added.

  • Status changed to Fixed 8 months ago
  • πŸ‡³πŸ‡±Netherlands daffie

    The change record looks good to me.

  • πŸ‡ΊπŸ‡ΈUnited States effulgentsia

    I suspect I'll end up creating a mysql57 contrib module

    Done: https://www.drupal.org/project/mysql57 β†’

  • πŸ‡ΊπŸ‡ΈUnited States xjm

    I added a note about the 5.7 driver to the CR.

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

Production build 0.71.5 2024