Page MenuHomePhabricator

Raise minimum supported MySQL version to MySQL 5.6 (or later)
Closed, ResolvedPublic

Description

There are a growing number of awkward compromises and blocked improvements or bug fixes that we have postponed investing in because we theoretically still support MySQL 5.5. I say theoretically, because it has been obsolete for quite a while now with afaik no human feedback or automated testing of any kind (e.g. from CI, active contributors, or beta testers).

Use cases

The last time we raised the MySQL requirement was in 2017, when we raised it from MySQL 5.0+ to 5.5+ in T161232. Some relevant tasks that have since stalled (in part or in whole due to lagging support)

  • Fix corrupt heartbeat-lag warnings causing wikis to unexpectedly become read-only, required MySQL 5.6+. – T248481
  • Use InnoDB engine for searchindex table, requires MySQL 5.6+. – T107875

Other related tasks that we should perhaps look at resolving while at it in this area:

  • Support the GTID mechanism that ships with MySQL 5.6+. - T162050
  • Allow temporary tables in more contexts. – T202245
  • Recognise MariaDB with its own minimum supported version. - T237898
Upstream support tables
ReleaseStable releaseSupport endExtended support endHighest platform support
MySQL 5.5Dec 2010 - Oct 2018 (5.5.8 - 5.5.62) Dec 2015 Dec 2018 None
MySQL 5.6Feb 2013 - … (5.6.10+) Feb 2018 Feb 2021 Debian 9, Windows 2016 (no macOS, no Ubuntu)
MySQL 5.7Oct 2015 - … (5.7.9+) Oct 2020 Oct 2023 Debian 10, Ubuntu 18, Windows 10, Windows 2016 (no macOS)
MySQL 8.0Apr 2018 - … (8.0.11+) April 2023 April 2026 Debian 10, Ubuntu 20, Windows 10, Windows 2019, macOS 11

Support dates:

Platforms and EOL:

Release dates and changelog:

Event Timeline

As a point of reference, after 5.5 is where MariaDB started diverging. So while I generally support this (and based on upstream support, probably going for 5.7 may make more sense, especially as 1.36 will be released after 5.6 is already fully EOL), we just need to start paying a little more attention.

See also the already referenced T237898: Add MariaDB version check in wikimedia/rdbms (separate from MySQL) .

I don't know how much practical difference this might make, but obviously just because MySQL >= 5.5 has a "feature" doesn't mean MariaDB will...

Given 1.36 won't be out for months, I'd recommend we go to 5.7 not 5.6 now.

Change 788783 had a related patch set uploaded (by Jforrester; author: Jforrester):

[mediawiki/core@master] Formally distinguish between MariaDB and MySQL and drop 10.1/5.5 support

https://gerrit.wikimedia.org/r/788783

@aaron @jcrespo @tstarling Any thoughts on whether and how much to raise the MySQL requirement at this time for the 1.39 LTS release? (To be released Nov 2022.)

@Krinkle Kind reminder that I am not up to date with WMF/MediaWiki db needs and requirements. Probably @Marostegui or @Ladsgroup would be better people to tell?

From production point of view:

  • We don't have MySQL so I really can't tell you which version would work and which one wouldn't
  • MariaDB: We fully got rid of 10.1, most of the infra is on 10.4 (10.4.22-10.4.24), We are migrating to 10.6 with several replicas now fully serving 10.6 in s1, s7 and s8.
    • The plan is to fully move to 10.6 later in the year.
  • OS: We got rid of stretch, most of the infra is in bullseye and hopefully will be 100% later this quarter.

HTH

Change 788783 merged by jenkins-bot:

[mediawiki/core@master] installer: Require MySQL 5.7+ or MariaDB 10.3+, and distinguish in docs

https://gerrit.wikimedia.org/r/788783

@aaron @jcrespo @tstarling Any thoughts on whether and how much to raise the MySQL requirement at this time for the 1.39 LTS release? (To be released Nov 2022.)

The 5.7 requirement LGTM.