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 9.7 LTS (April 2026) is the current release and the newest Long-Term Support version; 8.4 LTS is 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 June 2023, MySQL ships on two tracks. Innovation releases (8.1, 8.2, 8.3, then 9.0…9.6) 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.

Era & support

Era

MySQL AB — 1995–2008, the founding era (3.23 → 5.1) before the Sun acquisition
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 9.7 LTS
Innovation / LTS
Current
Premier to Apr 2031
Apr 21, 2026
The newest LTS since 8.4 — consolidates the 9.x Innovation cycle (VECTOR type, JavaScript stored programs) into a stable branch and brings several previously-Enterprise features to Community Edition.
  • 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.1 (Jun 3, 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.10 (Jun 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-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 built it at their Swedish company MySQL AB and dated the first release to 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

In January 2008, Sun Microsystems acquired MySQL AB for approximately $1 billion — at the time the largest acquisition of an open-source company. 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. 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.1. 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, June 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.

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.1  (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.1              -> 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.1"               # pinned exact
    image: "mysql:8.4"                 # prior LTS, still supported

Run an LTS (8.4 or 9.7) for a long support window; run the current Innovation release 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 EU Commission's Oracle/Sun merger decision (COMP/M.5529); mariadb.org; and per-version release notes cited inline. Last updated July 2026.

Mungomash LLC · More software pages

Last refreshed 2026-07-03 by Hyperion — new page.