// OSSeva Blog
MigrationMariaDB vs MySQL: Licensing, Compatibility, Support Lifecycles and When to Choose Each
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
| MySQL | MariaDB | |
|---|---|---|
| Owner and governance | Oracle; Community Edition under the GPL, Enterprise Edition sold by Oracle | MariaDB Foundation, a non-profit, stewards the GPLv2 server; MariaDB Corporation is the primary code contributor and sells enterprise products |
| Long-term releases | LTS 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 releases | Innovation releases, now numbered YY.M (26.7) | Rolling releases each quarter (13.0, 13.1) |
| Support length | Each LTS: 5 years of Premier and 3 of Extended Support from Oracle | Each 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 |
| JSON | Native binary type, compared by value | Alias for LONGTEXT, compared as strings |
| GTID | UUID-based | Domain, server and sequence; not compatible with MySQL's |
| Clustering | Group Replication and InnoDB Cluster | Galera 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
| Area | MySQL | MariaDB |
|---|---|---|
| JSON path shorthand | col->'$.a' and col->>'$.a' | Not supported; use JSON_EXTRACT and JSON_UNQUOTE |
| Returning changed rows | No RETURNING clause | INSERT ... RETURNING, DELETE ... RETURNING |
| Sequences | AUTO_INCREMENT only | CREATE SEQUENCE as well |
| Replace an object | For tables, DROP then CREATE | CREATE OR REPLACE TABLE and similar |
| Statement time limit | /*+ MAX_EXECUTION_TIME(n) */ hint, SELECT only | Hint not supported; its own timeout can stop any query |
| Persisted settings | SET PERSIST | Not supported; edit the configuration file |
| Lateral derived tables | Supported | Not supported |
| Temporal tables | Not built in | System-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
Related articles
How to Consolidate Open Source Database Support Contracts Without Migrating Anything
October 7, 2026OperationsWho Supports PostgreSQL, MySQL, MariaDB, Valkey and RabbitMQ Under One Contract?
October 7, 2026OperationsMySQL 8.0 End of Life: Dates, Consequences, and Your Options on AWS, Azure and Self-Managed
October 7, 2026Ready to get your open source under control?
Talk to an OSSeva engineer about CVE coverage, compliance, and migration support for your stack.