MedhaCloud
Link copied to clipboard!
Managed IT Support

MySQL vs MariaDB: Differences, Compatibility & Licensing

Sreenivasa Reddy G
Sreenivasa Reddy G
Founder & CEO
Aug 3, 202610 min read
24
MySQL vs MariaDB: Differences, Compatibility & Licensing

A question our MySQL database server support team answers weekly: are MySQL and MariaDB still interchangeable? They were in 2012. They are not now. This article covers where the two databases have diverged — versioning, features, replication, licensing, and tooling — with each claim sourced from the MariaDB Knowledge Base or the MySQL reference manual.

Shared history

MariaDB was forked from MySQL in 2009 by Michael "Monty" Widenius, MySQL's original author, after Oracle acquired Sun Microsystems (and MySQL with it). Early MariaDB releases tracked MySQL version-for-version: per the MariaDB Knowledge Base compatibility page, MariaDB 5.5 functioned as a drop-in replacement for MySQL 5.5, and MariaDB 10.2 through 10.4 functioned as limited drop-in replacements for MySQL 5.7. The same page states that "the implementation differences continue to grow in each new MariaDB version." The drop-in era is over.

Version numbering: no more 1:1 mapping

The two projects number releases independently. MySQL's current lines are 8.0, the 8.4 LTS series, and the 9.x innovation series, documented at dev.mysql.com. MariaDB's maintained lines are 10.6, 10.11, 11.4, and 11.8 (long-term series), plus short-term rolling releases. MariaDB 11.4 is not "equivalent to" any MySQL version; the MariaDB Knowledge Base compares each maintained MariaDB series against MySQL 8.0 as separate incompatibility documents, not as version pairs. Treat the two as related but distinct products, the way PostgreSQL and its forks are treated.

Feature differences

AreaMySQL 8.xMariaDB 10.x/11.x
JSON column typeNative binary JSON type with packed storage; values compared as JSONJSON is an alias for LONGTEXT; stored as text per the SQL standard, compared as strings
Default authenticationcaching_sha2_password (default since 8.0)Unix socket authentication for local root on Linux packages; mysql_native_password otherwise. MySQL's caching_sha2 clients cannot authenticate against older MariaDB servers
GTID formatUUID-based GTIDsDomain-server-sequence GTIDs; the two formats are mutually incompatible
Thread poolCommercial (MySQL Enterprise Edition plugin only)Included in all builds
Storage enginesInnoDB, MyISAM, NDB (separate Cluster product)InnoDB plus Aria, MyRocks, Spider, ColumnStore, S3, and others
ClusteringGroup Replication / InnoDB ClusterGalera Cluster (built in since 10.1); incompatible with Group Replication
Document store / X ProtocolYes (X Plugin, port 33060)Not supported
OptimizerHash joins, invisible indexes, histogramsIndependent optimizer development: optimizer trace, different histogram implementation, split-materialized derived tables; the Knowledge Base maintains an optimizer feature comparison matrix
System-versioned (temporal) tablesNoYes, since 10.3
Oracle syntax compatibility modeNoYes (SQL_MODE=ORACLE, since 10.3)

The JSON difference matters most in practice. MySQL stores JSON in a packed binary format documented in the MySQL JSON reference; MariaDB stores it as normal TEXT. Both support most JSON functions, but on-disk format, comparison semantics, and replication of JSON columns differ.

Replication compatibility

Per the MariaDB Knowledge Base replication compatibility page:

  • MySQL 5.7 to MariaDB: MariaDB 10.2 and later can replicate from a MySQL 5.7 primary, using binary log file and position — never MySQL GTIDs, which MariaDB does not implement. ROW format is recommended.
  • MySQL 8.0 to MariaDB: not possible at all before MariaDB 10.6.21 / 10.11.11 / 11.4.5 / 11.7.2, because MySQL 8.0 introduced new binary log events. Those versions and later can replicate from MySQL 8.0 with conditions: JSON columns must be converted to TEXT on the MySQL side, binlog-row-value-options must be empty, and binlog transaction compression must be off. Before MariaDB 11.4.9 / 11.8.4 / 12.1.1, the replication user must also use mysql_native_password because MariaDB did not support caching_sha2_password.
  • MariaDB to MySQL: works only without GTID auto-positioning on the MySQL side, without binlog encryption or compression on the MariaDB side, and only with character sets and collations MySQL supports — MariaDB's default utf8mb4 collations are not among them.
GTID failover tooling does not cross the fence. Orchestrator-style GTID-based failover, MySQL Shell replica provisioning, and Group Replication all assume MySQL GTIDs. A mixed MySQL/MariaDB topology falls back to file-and-position replication with the caveats above, and is best treated as a temporary migration state, not an architecture.

Licensing and ownership

MySQLMariaDB
OwnerOracle CorporationMariaDB plc (company); MariaDB Foundation (governance of the open-source server)
Server licenseGPLv2, plus paid commercial licenses (Standard, Enterprise, Cluster CGE) under Oracle's dual-licensing modelGPLv2 for MariaDB Community Server; client libraries LGPL
Paid tierMySQL Enterprise Edition: thread pool, enterprise audit, TDE, firewall, Oracle supportMariaDB Enterprise Platform subscription from MariaDB plc: hardened builds, MaxScale, support. All server features remain in the GPL community build
Development modelClosed development; source published at releaseOpen development on public trees; MariaDB Foundation holds the guarantee that the server stays open source

The practical difference: with MySQL, several server-level features (thread pool, native audit plugin, TDE key management) sit behind the commercial edition. With MariaDB, the equivalent features ship in the GPL build and the paid product adds packaging, proxy, and support rather than server capability.

Tooling and cloud availability

Client compatibility remains high because the wire protocol is shared: per the compatibility page, all MySQL connectors (JDBC, PHP, Python, .NET, ODBC) work unchanged against MariaDB, and phpMyAdmin supports both. MySQL Workbench is developed by Oracle against MySQL; it generally connects to MariaDB over the common protocol, but MariaDB is not a supported target, and features tied to MySQL-specific system tables — performance_schema reports, X Protocol features, version-specific administration screens — misreport or fail against MariaDB servers. MariaDB's own GUI directions are third-party tools (HeidiSQL ships with the Windows installer, DBeaver, dbForge).

In the cloud: Amazon RDS and Azure Database offer both engines as managed services. Amazon Aurora's MySQL-compatible edition tracks MySQL (5.7/8.0 compatibility), not MariaDB — there is no Aurora MariaDB. Google Cloud SQL offers MySQL but not MariaDB. If the roadmap includes Aurora or Cloud SQL, that alone is a reason to standardize on MySQL semantics.

Performance

Both projects publish improvements each release, and third-party benchmarks disagree with each other depending on workload, version, and configuration. The honest summary: the optimizers have diverged enough that the same query can plan differently on each engine, MariaDB's built-in thread pool helps high-connection-count workloads that would need MySQL Enterprise to match, and MySQL 8.x hash joins help large analytical joins. Neither is categorically faster. Benchmark your own workload on the versions you would actually run.

Migration direction matters

MySQL to MariaDB is the supported, documented direction — MariaDB publishes upgrade paths from each MySQL version and the server reads MySQL data files of the corresponding vintage. The reverse is harder and gets harder with every release: MariaDB features with no MySQL equivalent (sequences, system-versioned tables, Aria/MyRocks tables, MariaDB-specific collations, MariaDB GTID state) do not transfer, and past the early 10.x series there is no in-place downgrade path. Moving MariaDB 10.x/11.x to MySQL means a logical dump and restore (mysqldump or mydumper), schema fixes for unsupported features, and application retesting. Budget it as a migration project, not a package swap.

Which one to run

SituationPickReason
Oracle-centric stack, MySQL Enterprise support contractMySQLSingle vendor, commercial features and support already paid for
InnoDB Cluster / Group Replication HA designMySQLMariaDB cannot participate; Galera is the MariaDB path
Long support horizon on a stable releaseMySQL 8.4 LTS or MariaDB 11.8 LTSBoth projects now publish LTS series; pick within the engine you standardize on
Aurora, Cloud SQL, or MySQL-compatible serverless targetsMySQLManaged MySQL-compatible services track MySQL, not MariaDB
Linux distribution default, minimal licensing exposureMariaDBDefault in RHEL, Debian, SUSE repositories; no commercial edition split
Galera multi-primary clusteringMariaDBGalera ships in the server since 10.1
Need thread pool, audit, or TDE without a commercial licenseMariaDBIncluded in the GPL build
Heavy native JSON usage or X Protocol document storeMySQLBinary JSON type and X Plugin have no MariaDB equivalent

FAQ

Is MariaDB still a drop-in replacement for MySQL?

No. That held through the 5.5 era and partially through MariaDB 10.4 versus MySQL 5.7. Against MySQL 8.x there are binary log, GTID, JSON storage, authentication, and collation differences that require planned migration in either direction.

Can MariaDB and MySQL replicate to each other?

Within limits. MariaDB can be a replica of MySQL 5.7 (10.2+) or MySQL 8.0 (10.6.21+/11.4.5+ with JSON, binlog-option, and authentication caveats). MariaDB as a primary for MySQL requires disabling GTID auto-positioning, binlog compression, and binlog encryption, and avoiding MariaDB-only collations. GTID-based replication never works across the two.

Which is faster, MySQL or MariaDB?

Workload-dependent. The optimizers, thread handling, and storage engines have diverged; published benchmarks favor each engine depending on the test. Measure with your own schema and query mix.

For version-by-version MySQL release detail see our MySQL versions guide, and for the fork's release history see the MariaDB overview.

Running either engine in production? Our MySQL support covers both MySQL and MariaDB: version upgrades, replication design, cross-engine migrations, performance tuning, and ongoing administration.

Our Microsoft-certified team delivers seamless migrations with zero downtime.

Seamless Cloud Migration

Topics

mysqlmariadbcomparison
Sreenivasa Reddy G
Written by

Sreenivasa Reddy G

Founder & CEO15+ years

Sreenivasa Reddy is the Founder and CEO of Medha Cloud, recognized as "Startup of the Year 2024" by The CEO Magazine. With over 15 years of experience in cloud infrastructure and IT services, he leads the company's vision to deliver enterprise-grade cloud solutions to businesses worldwide.

Managed IT SupportCloud InfrastructureDigital Transformation
Follow on LinkedIn

Need Expert Help?

Our certified cloud and IT engineers are ready to tackle your toughest challenges — from migrations to managed services.