Skip to content

Reference

Scope

Look-up facts for MySQL Community Server: release and support matrix, version-specific removals, default values that changed in 8.4, limits, authentication and privilege tables, replication/HA options, and the production hardening checklist. For procedures see How-to Guides. For internals see Explanation.

Release and Support Matrix

Status as of 2026-09-25. Dates are Oracle GA dates where known; the endoflife.date tracker records git tag dates, which can be a few days earlier.

Series Track First GA Latest (date) Premier support ends Extended support ends
26.7 Innovation (first CalVer release) 2026-07-28 26.7.0 (2026-07-28) Superseded by 26.10 (planned 2026-10) Same
9.7 LTS 2026-04-21 9.7.2 (2026-07) ~2031-04 (5 years, estimate) ~2034-04 (8 years, estimate)
8.4 LTS 2024-04-30 8.4.11 (2026-07) 2029-04-30 2032-04-30
9.0 to 9.6 Innovation 2024-07 to 2026-01 9.6.x Ended when the next release shipped Same
8.0 Bugfix (legacy) 2018-04-19 8.0.46 (2026-04, final) 2025-04-30 2026-04-30 (EOL)
5.7 Legacy 2015-10 5.7.44 (2023-10) 2020-10-31 2023-10-31

8.0 is end of life

MySQL 8.0 left Extended Support on 2026-04-30. 8.0.46 is the last release. Community builds get no further security fixes. Move to 8.4 LTS first. There is no direct 8.0 to 9.x upgrade path (see Upgrade Paths).

Sources: endoflife.date/mysql, MySQL EOL notices, MySQL July 2026 GA releases, MYSQL_VERSION files on the 8.4, 9.7 and trunk branches of mysql/mysql-server (trunk reads 26.10.0 Innovation, previous LTS 9.7.0).

Release Model

Rule Detail
Innovation cadence About quarterly. Each Innovation release is supported only until the next one ships. Production-grade, but you must keep upgrading.
LTS cadence About every two years. The last release of a major series becomes LTS (8.4, 9.7).
LTS support 5 years Premier + 3 years Extended (Oracle Lifetime Support Policy). Quarterly patch releases.
Feature changes in LTS Features are added or removed only in the first LTS release (x.y.0). Later patches are fixes only.
Versioning (to 9.7) Sequential MAJOR.MINOR.PATCH (8.1 ... 8.4, 9.0 ... 9.7). There is no 9.8.
Versioning (from 26.7) Calendar YY.M.P: 26.7.0 = July 2026. Month has no leading zero. Next Innovation: 26.10.0.

Sources: A More Predictable MySQL Release Model, MySQL 26.7 manual: Innovation and LTS.

Upgrade Paths

From To Supported? Methods
8.0.x 8.0.y (later) Yes In-place, dump/load, replication, Clone
8.0.37+ 8.4.x LTS Yes (in-place needs 8.0.37 or later) In-place, dump/load, replication
8.0.x 9.7 LTS or 26.x No Upgrade to 8.4 first
8.4.x 9.7 LTS Yes (LTS to next LTS) In-place, dump/load, replication
8.4.x 9.0 to 9.6 Innovation Yes In-place, dump/load, replication
9.7 LTS 26.x Innovation Yes In-place, dump/load, replication
Innovation (for example 9.3) 9.7 LTS Yes In-place, dump/load, replication
Any Older version (downgrade) Only within an LTS series, or via dump/load Dump/load

Source: MySQL 9.7 Upgrade Paths, Percona: MySQL upgrade paths.

What Changed by Version

Version Notable additions Notable removals / default changes
8.0.30 innodb_redo_log_capacity, dynamic redo resizing innodb_log_file_size / innodb_log_files_in_group deprecated
8.0.34 Bugfix-only series begins mysql_native_password, binlog_format deprecated
8.4.0 LTS New InnoDB defaults (table below) mysql_native_password disabled by default. CHANGE MASTER TO, START/STOP SLAVE, SHOW SLAVE STATUS, SHOW MASTER STATUS, RESET MASTER removed. keyring_file / keyring_encrypted_file plugins removed (use components). default_authentication_plugin, expire_logs_days, binlog_transaction_dependency_tracking, transaction_write_set_extraction removed. group_replication_consistency default becomes BEFORE_ON_PRIMARY_FAILOVER (was EVENTUAL).
9.0 VECTOR data type, STRING_TO_VECTOR(), VECTOR_TO_STRING(), VECTOR_DIM() mysql_native_password plugin removed
9.7.0 LTS Hypergraph optimizer in Community (off by default). JSON Duality View DML in Community. Replication applier metrics, GR flow-control statistics, GR resource manager, GR primary election and telemetry moved from Enterprise to Community. Enterprise: dynamic data masking, OpenID Connect authentication. Features deprecated during 9.0 to 9.6 can be removed
26.7.0 Calendar versioning. Change Stream Applier (opt-in multithreaded applier, up to 1,024 workers per channel). Thread Pool plugin in Community. Post-quantum TLS (needs OpenSSL 3.5+). Upgrade-check progress reporting. group_replication_communication_stack default XCOM changes to MYSQL. thread_pool_max_unused_threads default 2 changes to 32.

Vector search is still not in Community

Community Server has the VECTOR type and conversion functions, but the DISTANCE() similarity function is available only in HeatWave on OCI and MySQL AI. Oracle's February 2026 pledge mentioned vector functions for 9.7, but they did not ship in Community 9.7. Percona Server for MySQL 9.7.2-2 adds its own DISTANCE() / VECTOR_DISTANCE().

Sources: MySQL 8.4 What Is New, MySQL 9.7 LTS announcement, Changes in MySQL 26.7.0, MySQL 9.7 vector functions, Percona: DISTANCE() in Percona Server 9.7.

Removed Replication Statements (8.4+)

Removed in 8.4 Use instead (available since 8.0.22/8.0.23)
CHANGE MASTER TO CHANGE REPLICATION SOURCE TO
START SLAVE / STOP SLAVE START REPLICA / STOP REPLICA
SHOW SLAVE STATUS SHOW REPLICA STATUS
SHOW SLAVE HOSTS SHOW REPLICAS
RESET SLAVE RESET REPLICA
SHOW MASTER STATUS SHOW BINARY LOG STATUS
RESET MASTER RESET BINARY LOGS AND GTIDS
PURGE MASTER LOGS / SHOW MASTER LOGS PURGE BINARY LOGS / SHOW BINARY LOGS
WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS() WAIT_FOR_EXECUTED_GTID_SET()
log_slave_updates (variable name) log_replica_updates (default ON)

The REPLICATION SLAVE privilege keeps its name. Source: Percona: breaking changes in 8.4.

InnoDB Defaults: 8.0 vs 8.4+

Variable 8.0 default 8.4 / 9.7 / 26.x default
innodb_adaptive_hash_index ON OFF
innodb_change_buffering all none
innodb_io_capacity 200 10000
innodb_io_capacity_max 2000 2 x innodb_io_capacity (20000)
innodb_flush_method (Linux) fsync O_DIRECT if supported
innodb_log_buffer_size 16 MiB 64 MiB
innodb_doublewrite_pages 4 128
innodb_doublewrite_files innodb_buffer_pool_instances x 2 2
innodb_numa_interleave OFF ON
innodb_parallel_read_threads 4 logical CPUs / 8 (min 4)
temptable_max_ram 1 GiB 3% of RAM (1 to 4 GiB)
group_replication_consistency EVENTUAL BEFORE_ON_PRIMARY_FAILOVER

Sources: Percona: defaults and tuning for 8.4, lefred: new production-ready defaults, MTR result files and sql/sys_vars.cc on mysql-server trunk.

Key Configuration Parameters

Parameter Default (8.4+) Purpose
innodb_buffer_pool_size 128 MiB Page cache. Set 50 to 80% of RAM on a dedicated server. Resizable online.
innodb_redo_log_capacity 100 MiB Total redo space (8.0.30+). Replaces innodb_log_file_size.
innodb_flush_log_at_trx_commit 1 Redo durability. 1 = fsync per commit (ACID). 2 = write per commit, fsync about once a second. 0 = write and fsync about once a second.
sync_binlog 1 Binlog fsync per commit group. Keep 1 with innodb_flush_log_at_trx_commit=1.
binlog_format ROW Deprecated since 8.0.34. ROW is the only format for new designs.
binlog_expire_logs_seconds 2592000 (30 days) Binlog retention.
gtid_mode / enforce_gtid_consistency OFF / OFF Set both ON for GTID replication and Group Replication.
replica_parallel_workers 4 Multithreaded applier workers (default 4 since 8.0.27).
max_connections 151 Maximum 100,000. Use pooling or the Thread Pool plugin for many clients.
authentication_policy *,, Replaces default_authentication_plugin (removed in 8.4).
require_secure_transport OFF ON rejects non-TLS TCP connections.
local_infile OFF Keep OFF to block LOAD DATA LOCAL abuse.

Limits

Limit Value
Max tablespace size (16 KiB pages) 64 TiB
InnoDB page size 4, 8, 16 (default), 32 or 64 KiB, fixed at initialization
Max row size (excluding off-page BLOB/TEXT) 65,535 bytes (server), about half a page for InnoDB in-page data
Max columns per InnoDB table 1,017
Max secondary indexes per InnoDB table 64
Index key prefix (DYNAMIC / COMPRESSED rows) 3,072 bytes
max_connections 1 to 100,000
Group Replication members 9 per group
Change Stream Applier workers (26.7) Up to 1,024 per channel

Source: InnoDB Limits (8.4), sql/sys_vars.cc (max_connections range).

Replication and HA Options

Option Consistency Failover Tooling Notes
Asynchronous replication Eventual Manual or external (Orchestrator, MHA) CHANGE REPLICATION SOURCE TO Default. Replicas can lag.
Semi-synchronous No acknowledged-commit loss if 1+ replica ACKs Manual or external rpl_semi_sync_source / rpl_semi_sync_replica plugins Falls back to async on timeout.
Group Replication Certified, virtually synchronous. Consistency level set per session. Automatic primary election GR plugin Majority quorum. Single-primary (default) or multi-primary.
InnoDB Cluster As Group Replication Automatic, client routing through MySQL Router MySQL Shell AdminAPI + GR + Router Oracle's recommended HA stack. Read replicas since 8.1.
InnoDB ReplicaSet Eventual (async) Manual switchover or failover through Shell MySQL Shell + Router Simple primary with replicas.
InnoDB ClusterSet Async between clusters Manual or emergency failover to a replica cluster MySQL Shell + Router Multi-region DR (8.0.27+).
NDB Cluster Synchronous (2PC) Automatic ndbd/ndbmtd, ndb_mgmd Separate product line with its own engine.

Group Replication Requirements

  • InnoDB tables only, each with a primary key (or a non-null unique key).
  • gtid_mode=ON, enforce_gtid_consistency=ON.
  • Binary logging on with log_replica_updates=ON (defaults in 8.0+). Row-based logging.
  • Unique server_id. binlog_checksum can be CRC32 since 8.0.21.
  • With the MYSQL communication stack (default since 26.7), the recovery account needs the GROUP_REPLICATION_STREAM privilege, and GR traffic uses normal server TLS settings.
  • transaction_write_set_extraction no longer exists in 8.4+. Write-set extraction is always XXHASH64.

Authentication Plugins

Plugin Algorithm Status Notes
caching_sha2_password SHA-256, salted, server-side cache Default since 8.0 First login needs TLS, a Unix socket, or RSA key exchange.
mysql_native_password SHA-1 Deprecated 8.0.34, disabled by default 8.4, removed 9.0 Enable on 8.4 only with --mysql-native-password=ON.
sha256_password SHA-256 Deprecated since 8.0.16 Still present in current source. Use caching_sha2_password.
auth_socket OS peer UID over Unix socket Community Local admin logins without a password.
authentication_ldap_simple / authentication_ldap_sasl LDAP bind / SASL Enterprise AD / LDAP integration.
authentication_pam PAM Enterprise OS PAM stack.
authentication_kerberos Kerberos Enterprise 8.0.26+.
authentication_webauthn FIDO2 / WebAuthn Enterprise Replaced authentication_fido (removed in 8.4).
OpenID Connect OIDC tokens Enterprise, new in 9.7 Announced with 9.7 LTS.

Privilege Levels

Level Example privileges
Global (*.*) CREATE USER, PROCESS, RELOAD, SHUTDOWN, REPLICATION SLAVE, dynamic privileges such as SYSTEM_VARIABLES_ADMIN, BINLOG_ADMIN, CONNECTION_ADMIN
Database (db.*) CREATE, DROP, EVENT, CREATE ROUTINE, GRANT OPTION
Table (db.table) SELECT, INSERT, UPDATE, DELETE, ALTER, INDEX, TRIGGER
Column (db.table(col)) SELECT, INSERT, UPDATE, REFERENCES
Routine (db.routine) EXECUTE, ALTER ROUTINE

Avoid SUPER

SUPER is deprecated. Grant the specific dynamic privilege (for example BINLOG_ADMIN or REPLICATION_SLAVE_ADMIN) instead.

validate_password Component Variables

Variable Default Purpose
validate_password.policy MEDIUM LOW = length only. MEDIUM adds digits, mixed case and special characters. STRONG adds a dictionary check.
validate_password.length 8 Minimum length.
validate_password.mixed_case_count 1 Minimum upper and lower case characters.
validate_password.number_count 1 Minimum digits.
validate_password.special_char_count 1 Minimum special characters.

Keyring Options (Encryption at Rest)

Keyring Type Edition Notes
component_keyring_file Component Community Replaces the keyring_file plugin (removed in 8.4). Configured through a manifest and a JSON config file.
component_keyring_encrypted_file Component Enterprise Password-protected key file.
component_keyring_oci Component Enterprise OCI Vault.
component_keyring_hashicorp Component Enterprise HashiCorp Vault (component form as of 8.4, unverified).
component_keyring_aws Component Enterprise AWS KMS (component form as of 8.4, unverified).
keyring_okv Plugin Enterprise Oracle Key Vault (KMIP).

Verify keyring availability for your version

Oracle moved keyrings from plugins to components between 8.0 and 8.4. The Community source tree for 8.4 contains components/keyrings/keyring_file and no plugin/keyring. Check the keyring chapter of your version's manual before planning Enterprise keyrings.

Security Hardening Checklist

Production security checklist

  • Run mysql_secure_installation (or the equivalent SQL) after initialization: remove anonymous accounts and the test database.
  • Keep caching_sha2_password for every account. Migrate any mysql_native_password account before moving to 9.x.
  • Set require_secure_transport=ON. Use TLS 1.2 or 1.3 only (TLS 1.0/1.1 were removed in 8.0.28).
  • Use REQUIRE X509 (or REQUIRE SUBJECT) for admin and replication accounts.
  • Enable the validate_password component at MEDIUM or STRONG.
  • Use a keyring component and ENCRYPTION='Y' for tables with sensitive data. Enable redo and undo log encryption.
  • Grant least privilege. Avoid SUPER, GRANT OPTION and global *.* grants for application users.
  • Keep local_infile=OFF and set secure_file_priv to a dedicated directory (or NULL).
  • Enable audit logging for regulated workloads (Enterprise Audit, or Percona / MariaDB audit plugins).
  • Rotate replication credentials and TLS certificates. Rotate the InnoDB master key (ALTER INSTANCE ROTATE INNODB MASTER KEY).
  • Stay on a supported series: 8.4 LTS, 9.7 LTS, or the current Innovation release.

Benchmarks and Capacity Figures

Unsourced performance data

Do not plan capacity from these numbers. They were estimated from vendor documentation, community benchmarks and engineering judgment. They are not controlled benchmarks: hardware, software versions and test method were not recorded. Run your own sysbench or workload replay for capacity planning.

sysbench (rough guidance)

Hardware Threads Read QPS Write QPS Read/Write QPS
4 vCPU, 16 GiB 16 25,000 5,000 15,000
8 vCPU, 32 GiB 32 60,000 12,000 35,000
16 vCPU, 64 GiB 64 120,000 25,000 70,000

Buffer Pool Efficiency (rough guidance)

Pool size vs data Read hit ratio Random I/O
Pool > data > 99.9% Minimal
Pool = 50% of data 95 to 99% Moderate
Pool = 10% of data 60 to 80% Heavy

Group Replication (rough guidance)

Metric 3 nodes 5 nodes 9 nodes
Certification latency < 1 ms 1 to 2 ms 2 to 5 ms
Write throughput vs standalone about 90% about 80% about 70%
Failover time 5 to 30 s 5 to 30 s 10 to 60 s

Practical Scale Guidance

Dimension Guidance Notes
Table size Up to about 1 TB is routine Consider partitioning or archiving well before the 64 TiB tablespace limit
Concurrent connections Hundreds to low thousands per instance Hard cap 100,000. Use pooling (ProxySQL, Router) or the Thread Pool plugin.
Point-read QPS 100k+ on large instances Depends on working set vs RAM

Sources