Back to blog

// OSSeva Blog

Migration

MariaDB vs MySQL: Licensing, Compatibility, Support Lifecycles and When to Choose Each

Matt Reynolds9 min read

The short answer

MariaDB and MySQL are close relatives, not interchangeable parts. MariaDB's own documentation says most applications that use MySQL will work with MariaDB, and everyday SQL looks the same on both. The differences sit in places that matter during a migration: MariaDB stores JSON as text while MySQL stores it in a binary format, their GTID replication is incompatible, authentication defaults differ, and each has features the other lacks. Choose MySQL when you want Oracle's LTS calendar, InnoDB Cluster or MySQL-specific tooling. Choose MariaDB when you want a foundation-governed server with features such as system-versioned tables, sequences and Galera built in. Choose PostgreSQL when you are consolidating engines or leaving Oracle or SQL Server as well.

MariaDB vs MySQL at a glance

MySQLMariaDB
Owner and governanceOracle; Community Edition under the GPL, Enterprise Edition sold by OracleMariaDB Foundation, a non-profit, stewards the GPLv2 server; MariaDB Corporation is the primary code contributor and sells enterprise products
Long-term releasesLTS series: 8.4 (to April 2032), 9.7 (to April 2034)One LTS a year: 10.11, 11.4, 11.8, 12.3
Short-lived releasesInnovation releases, now numbered YY.M (26.7)Rolling releases each quarter (13.0, 13.1)
Support lengthEach LTS: 5 years of Premier and 3 of Extended Support from OracleEach LTS: 3 years of community binaries from 11.8 on (5 up to 11.4), 2 more years of source-only critical fixes, enterprise options of 5 or 8 years
JSONNative binary type, compared by valueAlias for LONGTEXT, compared as strings
GTIDUUID-basedDomain, server and sequence; not compatible with MySQL's
ClusteringGroup Replication and InnoDB ClusterGalera as a standard part of the server

Licensing and governance

MySQL Community Edition is freely downloadable under the GPL. Oracle owns MySQL, decides its direction and sells MySQL Enterprise Edition, which adds tools such as Enterprise Backup, audit and the firewall, with Oracle support. Our MySQL Enterprise comparison covers that route.

MariaDB Server is GPLv2, and the MariaDB Foundation states that it "will remain Free and Open Source Software licensed under GPLv2, independent of any commercial entities". The Foundation is a non-profit funded by sponsors. MariaDB Corporation, a founding member, is the primary code contributor and sells enterprise builds, longer maintenance and services.

Release and support policies

Oracle's Lifetime Support Policy gives each MySQL LTS series five years of Premier Support and three of Extended Support. 8.4 runs to April 2032 and 9.7 to April 2034. Within an LTS series, Oracle makes no removals and ships only necessary fixes. Innovation releases are supported until the next one ships. See MySQL 8.4 end of life for the details.

The MariaDB Foundation names a new LTS every year. From 11.8, community LTS binaries are published for three years after GA, with critical and security fixes in source releases for two more; releases up to 11.4 get five years of binaries. Current community end dates are 16 February 2028 for 10.11, 29 May 2029 for 11.4, 4 June 2028 for 11.8 and 12 June 2029 for 12.3. Longer maintenance, five or eight years, comes from enterprise subscriptions through mariadb.com. Rolling releases ship quarterly and are maintained only briefly.

The practical difference: a MySQL LTS gives a long, single calendar from one vendor, while MariaDB gives a new LTS each year with shorter community windows for recent lines.

Compatibility: where MySQL and MariaDB diverge

MariaDB publishes its own list of incompatibilities with MySQL 8.0. The ones that most often break a move:

  • JSON. MariaDB's JSON type is an alias for LONGTEXT and is compared as a string; MySQL stores binary JSON and compares by value. Moving data from MySQL means converting JSON columns, with the mysql_json plugin or a dump and load. MariaDB's list also notes that it does not support MySQL's -> and ->> JSON operators.
  • GTID replication. MariaDB's GTID is not compatible with MySQL's, and the system variables differ. A MariaDB replica of a MySQL source uses binary log file and position. Recent MariaDB releases (10.6.21, 10.11.11, 11.4.5, 11.7.2 and later) can replicate from MySQL 8.0, with conditions: no JSON columns, partial row updates and binlog transaction compression turned off.
  • Authentication. From MariaDB 10.4, unix_socket authentication is the default on Unix-like systems. Users created with MySQL's SHA256 password algorithm cannot be used in MariaDB, and MariaDB only gained support for MySQL's default caching_sha2_password for replication users in 11.4.9, 11.8.4 and 12.1.1. MySQL 8.4, for its part, no longer enables mysql_native_password by default.
  • Upgrade path from MySQL 8.0. MariaDB's upgrade tool handles data files from MySQL releases before 8.0. From MySQL 8.0 or 8.4, moving to MariaDB is a logical dump and load with testing, not an in-place switch.
  • Operational defaults. MySQL enables the performance schema by default; MariaDB disables it for performance reasons. MariaDB does not support SET PERSIST, the MySQL X plugin or CIDR notation in user accounts.

Syntax differences worth knowing

AreaMySQLMariaDB
JSON path shorthandcol->'$.a' and col->>'$.a'Not supported; use JSON_EXTRACT and JSON_UNQUOTE
Returning changed rowsNo RETURNING clauseINSERT ... RETURNING, DELETE ... RETURNING
SequencesAUTO_INCREMENT onlyCREATE SEQUENCE as well
Replace an objectFor tables, DROP then CREATECREATE OR REPLACE TABLE and similar
Statement time limit/*+ MAX_EXECUTION_TIME(n) */ hint, SELECT onlyHint not supported; its own timeout can stop any query
Persisted settingsSET PERSISTNot supported; edit the configuration file
Lateral derived tablesSupportedNot supported
Temporal tablesNot built inSystem-versioned and application-time period tables

MariaDB also offers an Oracle compatibility mode, UUID, INET4 and INET6 data types, and storage engines such as ColumnStore, MyRocks, Spider and S3. For clustering, MySQL has Group Replication and InnoDB Cluster, while MariaDB ships Galera as a standard part of the server.

Which is better, MariaDB or MySQL?

Neither, in general. It depends on what you run around it.

  • Choose MySQL if you run InnoDB Cluster or Group Replication, use a managed service built on MySQL such as Amazon RDS for MySQL or Aurora MySQL, depend on binary JSON behaviour, or want one long LTS calendar per version.
  • Choose MariaDB if you want Galera multi-primary clustering in the server, temporal tables, sequences or RETURNING, prefer a project governed by a non-profit foundation, or already run MariaDB from your Linux distribution.
  • Stay where you are if the only reason to switch is the other engine's reputation. A move between them is still a migration, with its own test cycle.

MariaDB vs PostgreSQL, and MySQL vs PostgreSQL

PostgreSQL is the better answer when the decision is bigger than one database. If you are also planning an exit from Oracle or SQL Server, standardising on PostgreSQL gives one engine, one skill set and one set of operational tools. It is also the natural target when you need features neither MySQL nor MariaDB offers in the same form, such as its extension ecosystem. The cost is a real migration: SQL dialect, stored procedures and application queries all need conversion. For a stable MySQL or MariaDB application with no wider consolidation plan, that effort is rarely worth it. Our guides to Oracle to PostgreSQL and SQL Server to PostgreSQL cover the larger moves.

Where OSSeva fits

OSSeva supports both engines, so the choice does not have to follow the support contract. OSSeva for MySQL covers 8.4 and 9.7 LTS and ships patched, signed builds of 5.7 and 8.0 after Oracle's end of life. OSSeva for MariaDB covers the 10.11, 11.4, 11.8 and 12.3 LTS lines and ships patched builds of 10.4, 10.5 and 10.6 after community end of life. OSSeva Assure includes a MySQL-to-MariaDB and MariaDB-to-MySQL compatibility assessment, so a move in either direction is tested before it is scheduled. Both sit under one contract with PostgreSQL, Redis, Valkey and Kafka, priced per cluster. Book a discovery call for a quote.

Frequently asked questions

Is MariaDB a drop-in replacement for MySQL?

For many applications on older MySQL versions, close to it. From MySQL 8.0 onwards, no: JSON, GTID, authentication and the data dictionary differ, and moving needs a dump and load with testing.

Is MariaDB faster than MySQL?

It depends on the workload, configuration and version. Benchmark your own queries on both before deciding; general claims either way do not transfer well.

What is the syntax difference between MariaDB and MySQL?

Everyday SQL is the same. The differences show up in JSON operators, RETURNING clauses, sequences, CREATE OR REPLACE, optimizer hints such as MAX_EXECUTION_TIME, and SET PERSIST. MariaDB publishes the full list.

Can MariaDB replicate from MySQL?

Yes, with conditions. MariaDB uses binary log file and position because the GTID formats differ, and replicating from MySQL 8.0 needs MariaDB 10.6.21, 10.11.11, 11.4.5, 11.7.2 or later, no JSON columns, and some MySQL binlog options turned off.

MariaDB vs PostgreSQL: which should we choose?

MariaDB if your applications are written for MySQL-family SQL and you want to keep them that way. PostgreSQL if you are consolidating engines or moving off Oracle or SQL Server at the same time.

Is MariaDB still open source?

Yes. MariaDB Server is licensed under GPLv2, and the MariaDB Foundation states it will stay free and open source software.

Tags

MariaDBMySQLPostgreSQLComparisonMigration

Ready to get your open source under control?

Talk to an OSSeva engineer about CVE coverage, compliance, and migration support for your stack.