1995 – 2026

MySQL Versions

Every major release of the MySQL server — from Monty Widenius and David Axmark's first release in 1995 through the Sun (2008) and Oracle (2010) acquisitions and Monty's MariaDB fork. MySQL 26.7 (July 2026) is the newest release and the first under MySQL's new calendar-versioning scheme; 9.7 LTS (April 2026) is the current Long-Term Support version and the one to run in production, with 8.4 LTS still supported. With ship dates, support/EOL state, and the headline changes per major — the MyISAM → InnoDB storage-engine arc, the 8.0 leap (window functions, CTEs, roles, atomic DDL, utf8mb4-by-default), the Innovation-vs-LTS model, and the ownership-and-fork drama this page exists to explain.

The story behind the fork

Is MySQL still open source? MySQL vs MariaDB and the Oracle ownership chain.

MySQL began at MySQL AB, the Swedish company Monty Widenius and David Axmark started around the 1995 first release. Sun Microsystems bought MySQL AB in 2008 for about $1 billion. When Oracle then agreed to buy Sun in 2009, MySQL — Sun's would-be competitor to Oracle's own flagship database — became the sticking point: the European Commission opened an in-depth (Phase II) merger probe (Case COMP/M.5529). After Oracle published a set of public commitments about MySQL's future on December 14, 2009, the Commission cleared the deal unconditionally on January 21, 2010; the acquisition completed six days later.

Uneasy about MySQL's open-source future under Oracle, Monty had already forked the codebase into MariaDB — named after his younger daughter Maria, as MySQL was named after his first daughter My. The first MariaDB release shipped in October 2009, and over the following years Fedora, Red Hat Enterprise Linux, and Debian switched their default “MySQL” package to MariaDB. MySQL Community Edition stays open source under GPLv2 (alongside a paid commercial license), so it is genuinely open source — but on many Linux distributions the thing called “mysql” is actually MariaDB. The tell is SELECT VERSION();: MariaDB reports a -MariaDB suffix (e.g. 10.11.x-MariaDB). The two have diverged into distinct databases with separate version lines and features; this page covers MySQL the server and treats MariaDB as a cross-linked fork. See the ownership history and the fork history below.

Which one do I run in production?

Innovation vs LTS releases

Since 8.1 in July 2023, MySQL ships on two tracks. Innovation releases (8.1, 8.2, 8.3, then 9.0…9.6, and now the calendar-numbered 26.7) arrive roughly quarterly and carry new features, but each is supported only until the next release — they are production-grade, but you have to keep upgrading. About every two years, the last release of a cycle is designated LTS (Long-Term Support), which freezes the feature set and gets 5 years of Premier + 3 years of Extended support under Oracle's Lifetime Support Policy. 8.4 (April 2024) was the first LTS under this model; 9.7 (April 2026) is the newest. For a stable production target, run an LTS; for the latest features, run the current Innovation release and upgrade every quarter. See the Oracle announcement and the history below.

The Innovation track moved to calendar versioning in 2026. Announced June 16, 2026, Innovation releases now carry a YY.M number — the year, then the release month with no leading zero. The first one, 26.7, shipped July 28, 2026; 26.10, 27.1, and onward follow each quarter. The 8.4 and 9.7 LTS lines keep their existing numbers, and a future LTS keeps the YY.M it started with for its whole lifecycle — the next one is 28.4, due April 2028. If a version number suddenly jumps from 9.7 to 26.7, nothing was skipped: that is the new scheme, not a new major. 26.7 is an Innovation release, supported only until the next quarterly drop, so 9.7 LTS remains the version to standardize production on.

Era & support

Era

MySQL AB — 1995–2008, the founding era (3.23 → 5.1), through the Sun acquisition and before Oracle
Oracle 5.x — 2010–2017, the 5.5 / 5.6 / 5.7 line under Oracle
8.0 — 2018–2023, the landmark modern release (continuous 8.0.x development)
Innovation / LTS — 2023 onward, the quarterly-Innovation + biennial-LTS model

Support

Current — the latest release / current LTS
Maintained — within its Premier / Extended support window
EOL — past its support window, or a superseded Innovation release

Each LTS gets 5 years Premier + 3 years Extended support (the Premier end date is the practical “is it still supported?” answer); Innovation releases are supported only until the next release. Live EOL dates are published in Oracle's EOL notices and the Lifetime Support Policy; cross-checked against endoflife.date/mysql.

MySQL version table

Version
MySQL 26.7 Innovation
Innovation / LTS
Current
Until next release
Jul 28, 2026
The newest release and the first under calendar versioning — the Change Stream Applier for multi-threaded replication, post-quantum TLS 1.3, and the Thread Pool plugin brought into Community Edition.
  • Calendar versioning starts here — 26.7.0 is the first MySQL release numbered YY.M.P (year, release month, patch). It is not “MySQL 26”: the number is a date, and nothing was skipped between 9.7 and 26.7. The build now carries a MYSQL_PREVIOUS_LTS_VERSION constant (9.7.0) so upgrade and downgrade paths stay legible across the change. See the 26.7.0 release notes.
  • The Change Stream Applier (CSA) — a new replica SQL applier, opt-in per channel via APPLIER_VERSION = 2, as an alternative to the Multi-Threaded Applier. It allows 1–1,024 worker threads per channel and separates transaction application from commit ordering, so a worker blocked on commit order can apply another dependency-ready transaction instead of idling. It requires GTID-only, row-based replication.
  • Post-quantum cryptography in TLS 1.3 — with OpenSSL 3.5.0 or later, MySQL can negotiate PQC and hybrid classical/PQC key-exchange groups and advertise PQC handshake signatures, controlled by tls_kex and force_pqc plus per-channel variants for admin, replication, Group Replication, and X Plugin connections.
  • Thread Pool moves to Community Edition, previously Enterprise-only. Group Replication's group_replication_communication_stack default flips from XCOM to MYSQL; replica_parallel_type and group_replication_allow_local_lower_version_join are removed. As an Innovation release it is supported only until the next quarterly drop, so run an LTS if you need a long support window.
Version
MySQL 9.7 LTS
Innovation / LTS
Current
Premier to Apr 2031
Apr 21, 2026
The current LTS — consolidates the 9.x Innovation cycle (VECTOR type, JavaScript stored programs) into a stable branch and brings several previously-Enterprise features to Community Edition. The version to standardize production on.
  • First LTS since 8.4 — 9.7 is the last release of the 9.x cycle, designated Long-Term Support (5 years Premier through ~April 2031, 3 years Extended through April 2034). It rolls up everything the 9.0–9.6 Innovation releases delivered into one stable branch to standardize on. See the 9.7 LTS announcement.
  • Enterprise features move to Community — Replication Applier Metrics, Group Replication observability (Flow Control Statistics, Resource Manager, Primary Election), and Telemetry, previously Enterprise-only, are now in the freely-available Community Edition.
  • Dynamic Data Masking lands in MySQL Enterprise Edition; JSON-relational development, high-availability behavior, and query-optimizer improvements across the board.
  • Carries forward the 9.x headline additions — the VECTOR data type for embeddings / similarity search and JavaScript stored programs — on a supported LTS foundation. Latest patch 9.7.2 (Jul 28, 2026). Confirm the live tip at the 9.7 release notes.
Version
MySQL 9.0 Innovation
Innovation / LTS
EOL
Superseded Oct 2024
Jul 2024
The first 9.x Innovation release — the VECTOR data type for AI / similarity search, and JavaScript stored programs. Short-lived by design (superseded by 9.1).
  • The VECTOR data typeVECTOR(N) stores up to N single-precision floats (default 2048, max 16,383), MySQL's entry into embeddings and similarity search. New functions STRING_TO_VECTOR(), VECTOR_TO_STRING(), VECTOR_DIM(), and DISTANCE() ship alongside it. See the 9.0.0 release notes.
  • JavaScript stored programs — write stored procedures and functions in JavaScript via the Multilingual Engine (MLE) component (MySQL Enterprise / HeatWave).
  • An Innovation release, not an LTS — supported only until 9.1 shipped in October 2024, so it reads as EOL here even though it is newer than the 8.4 LTS above it. That is the Innovation model working as designed; run an LTS if you need a long support window.
  • Prepared statements in stored programs; EXPLAIN FORMAT=JSON capture into a user variable; assorted optimizer and replication refinements.
Version
MySQL 8.4 LTS
Innovation / LTS
Maintained
Premier to Apr 2029
Apr 30, 2024
The first LTS under the new model — a stabilization release: deprecated features removed, defaults modernized, mysql_native_password off by default.
  • The first Long-Term Support release under the Innovation/LTS model — 5 years Premier (through April 2029) + 3 years Extended (through April 2032). Features can be added or removed only in the first release of an LTS (8.4.0); after that it is bug-fix-and-security only.
  • Legacy auth turned off — the mysql_native_password plugin (deprecated in 8.0.34) is no longer enabled by default; caching_sha2_password is the default. A common upgrade-time surprise for old clients.
  • Modernized defaults and removals — many long-deprecated system variables and startup options were removed, and Group Replication defaults changed (group_replication_consistency now BEFORE_ON_PRIMARY_FAILOVER, group_replication_exit_state_action now OFFLINE_MODE).
  • In-place downgrades and cross-version group membership within the 8.4 LTS series are supported. Latest patch 8.4.11 (Jul 28, 2026). See the “What Is New in MySQL 8.4”.
Version
MySQL 8.0
8.0
EOL
Apr 30, 2026
Apr 2018
Window functions; common table expressions; roles; atomic & crash-safe DDL; a transactional data dictionary; utf8mb4 by default. The landmark modern release — and the version the numbering jumped to from 5.7.
  • Window functions and CTEsOVER (PARTITION BY …) analytics and WITH / WITH RECURSIVE common table expressions finally land, closing a decade-long gap against PostgreSQL and the commercial databases.
  • Roles and a proper privilege model; atomic, crash-safe DDL built on a new transactional data dictionary stored inside InnoDB (replacing the old .frm files). An interrupted ALTER no longer leaves a half-changed schema.
  • utf8mb4 as the default character set (utf8mb4_0900_ai_ci collation) — full Unicode including emoji out of the box, ending the utf8-is-only-3-bytes footgun.
  • Invisible indexes, descending indexes, instant ADD COLUMN, CHECK constraints (8.0.16), window/JSON functions, the X Protocol / document store, and the removal of the query cache.
  • EOL April 30, 2026 — the last release was 8.0.46 (Apr 2026). 8.0 was retroactively treated as an LTS but shipped on the old continuous model; 8.0.34+ transitioned to bug-fixes-only. Upgrade to 8.4 LTS or 9.7 LTS. Why the jump from 5.7? See the 6.0 / 7.0 note below.
There is no MySQL 6.0 or 7.0. The server jumped straight from 5.7 to 8.0. 6.0 was an alpha development branch (2007–2009) built around the Falcon storage engine and online backup — it was abandoned after the Sun acquisition and never shipped GA. 7.0 is the separately-versioned MySQL Cluster (NDB) line, not the standard server. Rows below this divider are the pre-8.0 line. See the full explanation.
Version
MySQL 5.7
Oracle 5.x
EOL
Oct 31, 2023
Oct 2015
The native JSON data type; generated columns; the sys schema; big InnoDB and optimizer performance gains; secure-by-default install; multi-source replication.
  • Native JSON data type — a real binary JSON type with a full set of JSON_* functions and generated-column indexing, MySQL's answer to the document-database wave (and to PostgreSQL's jsonb).
  • Generated columns (stored and virtual) and functional indexing on them; the sys schema of helper views over Performance Schema for practical diagnostics.
  • Secure by default — a random root password set at install, SSL/TLS enabled out of the box; InnoDB online buffer-pool resize and native partitioning; multi-source replication; GIS reworked on Boost.Geometry.
  • Reached end of life October 31, 2023; last release 5.7.44. This is the version a great deal of legacy production still runs; the 8.0 upgrade path from here is the common migration.
Version
MySQL 5.6
Oracle 5.x
EOL
Feb 28, 2021
Feb 2013
InnoDB full-text search; online DDL; GTID-based replication; optimizer improvements; the InnoDB memcached API.
  • InnoDB full-text search — full-text indexing finally works on the transactional engine, not just MyISAM.
  • Online DDL — many ALTER TABLE operations run without blocking reads and writes or rebuilding the whole table.
  • GTID-based replication — global transaction identifiers make failover and replica reconfiguration dramatically simpler; crash-safe replicas.
  • Optimizer overhaul (subquery materialization, index condition pushdown, better EXPLAIN); the InnoDB memcached NoSQL API. Reached end of life February 28, 2021.
Version
MySQL 5.5
Oracle 5.x
EOL
Dec 2018
Dec 2010
InnoDB becomes the default storage engine (replacing MyISAM); semisynchronous replication; the Performance Schema. The modern-era boundary.
  • InnoDB is now the default — the transactional, row-locking, crash-recovering, foreign-key-capable engine replaces the non-transactional table-locking MyISAM as the default for new tables. This is the boundary between legacy and modern MySQL; see the storage-engine history.
  • Semisynchronous replication — a primary can wait for at least one replica to acknowledge a write before committing, tightening the durability story.
  • The Performance Schema is introduced — the low-level instrumentation the sys schema (5.7) would later build on.
  • The first major shipped entirely under Oracle (the Sun acquisition completed in 2010). Reached end of life December 2018; last release 5.5.63.
Version
Pre-5.5 (3.23 – 5.1)
MySQL AB
EOL
1995 – 2008
The MySQL AB lineage: the 1995 first release through 5.1 (2008), on MyISAM by default. InnoDB, stored procedures, triggers, views, and partitioning all arrive here. Included for completeness.

MySQL began as a project by Michael “Monty” Widenius and David Axmark at MySQL AB in Sweden; the first internal release is dated May 23, 1995. These releases predate the InnoDB-default / modern-era boundary at 5.5 and are listed here rather than as full rows:

  • 3.23 (2001) — the InnoDB and BerkeleyDB storage engines are introduced, bringing transactions to MySQL for the first time (MyISAM stays the default).
  • 4.0 (2003) — UNION, the query cache, and InnoDB bundled by default.
  • 4.1 (2004) — subqueries, prepared statements, proper Unicode (UTF-8) support, and spatial (GIS) types.
  • 5.0 (2005) — the “enterprise features” release: stored procedures, triggers, views, cursors, and INFORMATION_SCHEMA.
  • 5.1 (2008) — table partitioning, row-based replication, the event scheduler, and a pluggable-storage-engine API. The last major under MySQL AB / Sun.

None of these receive updates; nothing here is what you would install today. The 1995 origin, the LAMP stack, and the MyISAM → InnoDB arc are covered in the history below.

Click any row to expand. Each row has a stable id for sharing — e.g. /software/mysql/versions/#mysql-26-7, #mysql-9-7, #mysql-8-0, #mysql-pre-5-5. Per-series release notes live at dev.mysql.com/doc/relnotes and the live support matrix at mysql.com/support/eol-notice.

The 1995 origin at MySQL AB and the LAMP stack

MySQL began in the mid-1990s as the work of Michael “Monty” Widenius and David Axmark, who founded the Swedish company MySQL AB around it in 1995 with Allan Larsson; the first release is dated May 23, 1995. The name comes from Monty's daughter My; the MyISAM storage engine shares the same root. The design goal was pragmatic rather than academic: a fast, easy-to-run relational database that was good enough for the read-heavy workloads of the early web, released under an open-source license.

That timing made MySQL the “M” in the LAMP stack (Linux, Apache, MySQL, PHP/Perl/Python), the default database of the first two decades of the open web — Facebook, Twitter, YouTube, Wikipedia, and WordPress all grew up on it. MySQL AB monetized through a dual-license model: the same code under the GPL for open-source use, and under a commercial license for companies that wanted to embed it without GPL obligations. That dual-license structure is what made MySQL an attractive $1 billion acquisition target for Sun in 2008, and it survives today as MySQL Community Edition (GPLv2) alongside the commercial MySQL Enterprise Edition.

The storage-engine arc — MyISAM to InnoDB

MySQL's defining architectural feature is its pluggable storage engine layer: the SQL front end is separate from the engine that actually stores and locks rows. For its first fifteen years the default engine was MyISAM — fast for reads, compact, and simple, but non-transactional, with table-level locking and no crash recovery or foreign keys. A single write locked the whole table; a power loss mid-write could corrupt it.

InnoDB — a transactional engine with row-level locking, ACID guarantees, foreign keys, and crash recovery via a redo log — was available as far back as 3.23 (2001) and bundled by default from 4.0, but MyISAM remained the default for new tables until 5.5 (2010), when InnoDB finally took over. That switch is the boundary between legacy and modern MySQL; an old schema that “behaves differently” on locking or crash behavior almost always predates it.

InnoDB has been the center of gravity ever since. 5.6 gave it full-text search and online DDL; 5.7 gave it native partitioning and online buffer-pool resize; 8.0 moved the entire data dictionary into InnoDB, making DDL atomic and crash-safe and retiring the old per-table .frm files. MyISAM still exists for niche cases, but effectively every modern MySQL deployment is an InnoDB deployment.

Sun, Oracle, and the EU antitrust fight

Sun Microsystems agreed to acquire MySQL AB on January 16, 2008 for approximately $1 billion — at the time the largest acquisition of an open-source company — and closed the deal on February 26, 2008. Then in April 2009, Oracle agreed to acquire Sun, which put MySQL under the control of the company whose flagship product it most directly competed with on price.

The European Commission flagged exactly that concern and opened an in-depth Phase II merger investigation (Case COMP/M.5529), delaying the deal for months. The review weighed whether Oracle would let MySQL wither — and concluded, in part, that the open-source nature of MySQL meant a fork could act as a competitive check on Oracle regardless. After Oracle published a set of public commitments about MySQL's future on December 14, 2009 (continuing GPL releases, honoring the dual-license model, keeping storage-engine APIs open, and funding development through at least 2015), the Commission cleared the merger unconditionally on January 21, 2010. The acquisition completed on January 27, 2010.

In the years since, Oracle has in fact invested heavily in MySQL — 5.6, 5.7, and the landmark 8.0 all shipped under Oracle, as did the Innovation/LTS model and MySQL HeatWave. The dual-license structure it inherited from MySQL AB is still the shape of the product: MySQL Community Edition under GPLv2, and a paid commercial license for the Enterprise Edition and for embedding without GPL obligations. Through 2026 Oracle has been moving the line between the two toward Community — replication and Group Replication observability plus Telemetry became Community features in 9.7 LTS, and the Thread Pool plugin followed in 26.7, each having been Enterprise-only before. On June 25, 2026 Oracle also published a written MySQL community governance model — contributor / committer / project-lead roles, a steering committee whose non-Oracle seats are elected after an initial two-year term, and a security vulnerability group — and moved proposals, issue tracking, and the roadmap onto public GitHub. The same document states the limits: source is published to GitHub after each release rather than developed in the open, contributions require the Oracle Contributor Agreement, and licensing and trademarks stay under Oracle's authority. The seats named alongside Oracle on the initial steering committee are Amazon Web Services and Google Cloud. But the ownership question is precisely what drove the community's other response: the MariaDB fork.

The MariaDB fork and the distro-default switch

Monty Widenius had left Sun in early 2009 and, uneasy about MySQL's future under Oracle, forked the codebase into MariaDB through his new company Monty Program AB. The first MariaDB release shipped in October 2009. He named it after his younger daughter Maria — the same personal-naming habit that gave MySQL the name of his first daughter My. During the merger review he also ran a public “Help saving MySQL” campaign that generated thousands of emails to the European Commission.

For its first years MariaDB was a near-drop-in replacement for MySQL, and that compatibility plus the governance concern led the major Linux distributions to switch their default database package to it: Fedora (Fedora 19, 2013), Red Hat Enterprise Linux (RHEL 7, 2014), and Debian (Debian 9 “Stretch”, 2017), with openSUSE alongside. On many systems the package literally named mysql now installs MariaDB.

Over time the two diverged into genuinely distinct databases. MariaDB has its own version line (10.x, 11.x), its own storage engines (Aria, ColumnStore), and features MySQL lacks — and MySQL 8.0 added window functions, CTEs, and the JSON/data-dictionary work on its own path. They are no longer wire- or feature-identical. The quickest way to tell which one you are on is SELECT VERSION();: MariaDB appends a -MariaDB suffix (for example 10.11.11-MariaDB), where MySQL reports a bare number like 9.7.2. This page tracks MySQL the server; MariaDB, if it ever warrants coverage here, is its own reference.

The 5.7 → 8.0 jump — where 6.0 and 7.0 went

MySQL's version numbers skip from 5.7 straight to 8.0, and the two missing numbers each have a specific story.

MySQL 6.0 was a real development branch, worked on in the 2007–2009 window as an alpha. Its headline features were the Falcon storage engine (a transactional engine designed by Jim Starkey, meant as an alternative to the Oracle-owned InnoDB) and built-in online backup. The Sun acquisition and then the Oracle deal changed the calculus — with InnoDB back under the same roof, Falcon lost its reason to exist, and the 6.0 branch was abandoned around 2009. It never reached GA; the useful pieces were folded into later 5.x and 8.0 releases.

MySQL 7.0 was never the standard server at all: the number belongs to the separately-versioned MySQL Cluster (NDB) product, whose Cluster 7.0 line shipped in 2009 and continued through 7.3–7.6 before realigning to 8.0. So “6.0” was used up and dropped, and “7.x” meant Cluster. When Oracle numbered the next standard-server major, it skipped past both to 8.0 (April 2018) — a clean break above the used-up numbers, and a signal of how large a release it was.

The Innovation and LTS model

For its first five years, MySQL 8.0 used a continuous-delivery model: every 8.0.x point release could add features, not just fixes. That kept MySQL current but made “which 8.0 am I on and what changed?” a moving target for conservative production shops. In 2023 Oracle introduced a two-track model.

Innovation releases — 8.1 (the first, July 2023), 8.2, 8.3, then 9.0 through 9.6 — arrive roughly quarterly and carry new features. They are production-grade, but each is supported only until the next release ships, so running Innovation means upgrading every quarter. About every two years, the last release of a cycle is designated a Long-Term Support (LTS) release, with the feature set frozen and 5 years of Premier + 3 years of Extended support under Oracle's Lifetime Support Policy.

MySQL 8.4 (April 2024) was the first LTS under this model — a stabilization release that removed deprecated features and turned off the old mysql_native_password plugin by default. MySQL 9.7 (April 2026) is the newest, rolling the 9.x Innovation work (the VECTOR type, JavaScript stored programs) into a supported branch and moving several formerly-Enterprise features into Community Edition. Meanwhile 8.0 reached end of life on April 30, 2026, so the supported choices today are the two LTS lines, 8.4 and 9.7.

The model's second revision landed on June 16, 2026, when Oracle moved the Innovation track to calendar versioning. The two tracks are unchanged; only the numbering is. An Innovation release is now stamped YY.M — year, then release month — and the first of them, 26.7, shipped on July 28, 2026; October's is 26.10 and January 2027's is 27.1. An LTS keeps its starting YY.M for its entire lifecycle, which makes 28.4 (April 2028) the next LTS and its patches 28.4.1, 28.4.2, and so on. Oracle also named the maintenance rhythm explicitly: quarterly releases ride the regular CPU (Critical Patch Update) cycle, with an as-needed CSPU (Critical Security Patch Update) available between quarters when an urgent fix cannot wait. So the version numbers stop encoding a major-version lineage and start encoding a date — 26.7 is not “MySQL 26,” it is the July 2026 Innovation release.

Find your version — in the mysql client or the shell

The browser cannot detect what version of MySQL is running on your server — there's no header or fingerprint that exposes it. Run one of these in the mysql client or your shell to see your real install — including whether it's actually MariaDB.

What's running?

Print the client version, the server version, and the numeric / detailed forms.

$ mysql --version                    # client version
$ mysqld --version                   # server binary version

# Ask a running server directly:
$ mysql -e "SELECT VERSION();"       # e.g. 9.7.2  (or 10.11.x-MariaDB)
$ mysql -e "SHOW VARIABLES LIKE 'version%';"

# Inside the client:
mysql> SELECT VERSION();
mysql> STATUS                        # or \s — server + protocol details

MySQL or MariaDB?

On many Linux distros the mysql package is actually MariaDB. Two ways to tell them apart.

# The version string carries a -MariaDB suffix on MariaDB:
mysql> SELECT VERSION();
   -- 9.7.2              -> Oracle MySQL
   -- 10.11.11-MariaDB   -> MariaDB

# Or read the version_comment variable:
mysql> SHOW VARIABLES LIKE 'version_comment';
   -- "MySQL Community Server - GPL"  vs  "mariadb.org binary distribution"

MariaDB and MySQL are now distinct databases with separate version lines — a MariaDB 11.x is not a MySQL 11.

Pin a project to a specific MySQL

Most projects pin via the official Docker image tag; a major tag (9.7) floats patches, an exact tag freezes them. Prefer an LTS tag for production.

# docker-compose.yml
services:
  db:
    image: "mysql:9.7"                 # current LTS, floats patch releases
    image: "mysql:9.7.2"               # pinned exact
    image: "mysql:8.4"                 # prior LTS, still supported
    image: "mysql:26.7"                # current Innovation release

Run an LTS (8.4 or 9.7) for a long support window; run the current Innovation release (26.7) only if you'll upgrade every quarter.

Install or upgrade a version

Watch the distro default: default-mysql-server on Debian installs MariaDB. Use Oracle's APT/YUM repo (or the named package) for real MySQL.

# macOS (Homebrew — installs the current MySQL)
$ brew install mysql
$ brew services start mysql

# Debian / Ubuntu (Oracle's APT repository, config package first)
$ sudo apt install mysql-server        # Ubuntu: MySQL; Debian: add Oracle's repo

# Fedora / RHEL (Oracle's YUM repository)
$ sudo dnf install mysql-community-server

# Docker (no repo setup needed)
$ docker run -d -p 3306:3306 mysql:9.7

# Repo setup + Community Server downloads:
# https://dev.mysql.com/downloads/

Upgrade one major at a time (5.7 → 8.0 → 8.4 → 9.7); run mysql_upgrade / start the new server against the old data dir per the upgrade docs.

Sources: dev.mysql.com release notes; MySQL EOL notices and the Lifetime Support Policy; the Innovation / LTS announcement; endoflife.date/mysql; the MySQL community governance model; the EU Commission's Oracle/Sun merger decision (COMP/M.5529); mariadb.org; and per-version release notes cited inline. Last updated August 2026.

Mungomash LLC · More software pages