Information about MariaDB Community Server and our Release Model
Community Server Release Notes
Complete MariaDB Community Server release notes. Complete version history with features, bug fixes, and upgrade compatibility details for production use.
This section contains release notes for MariaDB Server releases divided into the major MariaDB series. The latest long-term stable series is MariaDB 11.8 (maintained for three years), the current rolling release is MariaDB 12.1, and the current development releases are MariaDB 12.2 and MariaDB 12.3.
Project commitments for the maturity stages of MariaDB Releases
The MariaDB development release policy has the following project commitments for the maturity stages:
Commitment for Alpha Releases
New features are being added. Some old features may be removed. Users can start trying Alpha versions out, but should not expect feature stability yet. Still, should show no regressions and should have no open level bugs for this release.
Commitment for Beta Releases
Features can not be removed anymore. Users can start building applications using MariaDB Beta releases. Any application that works with MariaDB Beta release will continue to work with a RC and GA release. The syntax that was valid in Beta will stay valid, tables created in Beta will stay readable, Beta clients will be able to connect to GA servers, and so on.
Commitment for Gamma/RC Releases
The server is feature complete. No new features, no changes in default settings are possible. From this point only bug fixes are accepted into the server.
Commitment for Stable/GA Releases
We believe the code is ready for general usage (based on bug inflow).
Plugins
Plugins generally follow the same rules, but they have . That is, a plugin is declared Gamma when it becomes feature complete. This happens independently from the server being Alpha, Beta, RC, or GA.
Security Releases
See our page for information of how and when emergency security releases are done.
This page is licensed: CC BY-SA / Gnu FDL
Compatibility and Differences
This section provides information on the compatibility of MariaDB software with similar, competing software, as well as the differences
System Variable Differences between MariaDB and MySQL
Explore system variable differences between MariaDB Rolling Release and MySQL 8.0. This section details how configuration options vary, aiding in compatibility and migration planning.
Function Differences Between MariaDB and MySQL
Functions in MariaDB that are not present in MySQL, or vice-versa
System Variable Differences Between MariaDB and MySQL - Unmaintained Series
The following articles list the differences between the system variables available in MariaDB and in MySQL for each of the major MariaDB series that are no longer maintained.
Release Notes - MariaDB 12.2 Rolling Releases
Release Notes for the MariaDB Community Server 12.2 Series
Incompatibilities and Feature Differences Between MariaDB and MySQL - Unmaintained Series
The following articles list the incompatibilities and feature differences between MariaDB and MySQL for series that are no longer maintained
Function Differences Between MariaDB and MySQL - Unmaintained Series
The following articles list the differences between functions in MariaDB and in MySQL for each of the major MariaDB series that are no longer maintained
Release Notes - MariaDB 12.3 Series
Release notes for MariaDB Community Server 12.3 series
Release Notes - MariaDB 12.0 Rolling Releases
Release notes for MariaDB Community Server 12.0 Rolling Release series
Release Notes - MariaDB 12.1 Rolling Releases
Overview and release notes for MariaDB Community Server 12.1 Rolling Release series
Release Notes - MariaDB 11.8 Series
Release notes for MariaDB Community Server 11.8 series
Maintenance Policy
About the maintenance policy for MariaDB Community Server
The MariaDB project is a community project governed by the MariaDB Foundation. Please see the Maintenance Policy on the MariaDB Foundation website.
The MariaDB project is as active as the community around it and the MariaDB Foundation members actively working on and enhancing MariaDB. Therefore, from the MariaDB project perspective, the aspiration is for each major version of MariaDB to be maintained for quite a while after its initial stable (GA) version. For specific dates related to each version and more details, see the MariaDB Deprecation Policy. You may also want to review the MariaDB plc Engineering Policies.
Additional Technical Support
MariaDB plc can of course offer additional Technical Support and Services to their customers that cover the versions even longer and provide SLA commitments for additional feeds. Please for more details.
This page is licensed: CC BY-SA / Gnu FDL
SQL_MODE=MSSQL
Documentation for the `MSSQL` SQL mode, which enables a subset of Microsoft SQL Server syntax and behavior compatibility in MariaDB, such as using brackets `[]` for quoting.
SET SQL_MODE=MSSQL implies all the following flags:
Setting the system variable to MSSQL allows the server to understand a small subset of Microsoft SQL Server's language. For the moment MSSQL mode only has limited functionality, but we plan to add more later according to demand.
Supported Syntax in MSSQL Mode
Using [] for Quoting
One can use [] instead of "" or `` for quoting :
You can use '[' in identifiers. If you want to use ']' in identifiers
you have to specify it twice.
From time to time some features in MariaDB will be marked something as deprecated. This is done to warn MariaDB users that the feature is likely to disappear in some upcoming major version and give them time to adapt to the change.
The policy is that "It is unacceptable for a user to upgrade from a supported version A where a feature works normally to a version B where a feature doesn't exist without an advanced warning."
Thus, when a feature is removed for some reason, the sequence of steps is as follows:
the feature is marked as deprecated.
we wait until all releases where the feature is not deprecated have reached EOL.
now the feature can be removed in the next major version before GA. It will not be removed in a minor update!
With an LTS lifetime of 5 years, step 2 normally means that a feature cannot be removed until it's marked deprecated for 5 years.
Typical things that are deprecated:
Variables, options or status variables that have lost their meaning or have been renamed.
Features/behavior that have been replaced with better functionality.
Features that conflicts with the SQL standard.
We do our best to ensure that upgrading to a new major version of MariaDB is as smooth and uneventful as possible. This means that we go to great lengths to keep things compatibility, even when removing deprecated features:
MariaDB server will keep old startup variables around even after they are removed (deprecation has taken effect). Assigning a value to a removed variable will produce a warning in the error log.
Some removed features/behavior that we know is still important for some users, we still keep available behind a dedicated option, which will give it at least 5 more years until disappearance.
This page is licensed: CC BY-SA / Gnu FDL
Differences Between the MySQL and MariaDB Query Optimizer
This is an overview of query optimizer feature development in recent versions of MariaDB (5.5, 10.0) and MySQL (5.6).
To make things easier to understand, let's first partition the optimizer into areas:
Let's look at things in historical order. There is no known evidence of the use of SQL query optimization by ancient Egyptians. In April 2012, and became stable. (5.5 was a merge of 5.3 with MySQL 5.5). The 5.3/5.5 release included a number of major new query optimizer features:
The size of the bubble roughly corresponds to the impact of the feature (in the opinion of the author of this article). "Hash join" is in quotes, because is not what is generally meant by hash join in the world of databases. Smaller features and bug fixes are not shown.
MariaDB 11.8.5 Release Notes
MariaDB 11.8.5 is a Stable (GA) release of MariaDB Community Server 11.8, released on 2025-11-14
The most recent release of MariaDB 11.8 is:
Stable (GA)
SET SQL_MODE="MSSQL";
CREATE TABLE [t 1] ([a b] INT);
SHOW CREATE TABLE [t 1];
Table Create Table
t 1 CREATE TABLE "t 1" (
"a b" INT(11) DEFAULT NULL
)
Features that are depending on outside contributors that are not active anymore and no new developers have stepped in to take over and that the MariaDB team is not able to keep developing or keeping up to date.
This includes storage engines and plugins that are not being used or developed.
Features that depend on libraries that are no longer available in newer OS versions.
In February 2013, MySQL 5.6 had its first stable release. It had a number of new major optimizer features. Some of them had common ancestry with MariaDB's features, and some of them were new developments:
optimizer-areas-mysql-56-r2
In April 2014, MariaDB 10.0 became stable. As compared to MariaDB 5.5 had some features that were backported from MySQL 5.6, and also some new features were implemented:
optimizer-areas-mariadb-100-r2
One can see that
MariaDB has features that MySQL doesn't have
However, some MySQL 5.6 features were not ported into MariaDB 10.0.
The MariaDB team is frequently asked if all features (or feature X) from MySQL 5.6 are available in MariaDB, so here's our position on the features that have not [yet] been backported:
EXPLAIN FORMAT=JSON - This is available in MariaDB Server 10.1. Please read the to know more.
Optimizer trace - we have doubts whether the feature is usable in its current form. For simple queries, it's easier to analyze using other means; for complex queries, the size of the trace grows beyond any limit. We're looking for input re. how optimizer trace was (or could be) useful to somebody in a real-world setting.
Faster optimization for eq_ref - we believe that the optimization is useful, but its implementation in MySQL uses a wrong approach.
MDEV-38068: This issue caused a partial data deletion when using the DELETE statement on MyISAM or Aria tables under specific conditions. InnoDB tables are not affected by this issue. Specifically, when a DELETE statement included a WHERE clause with a non-unique indexed column compared for equality with a literal (col=const) and the execution plan showed a "range" operation on that index, the query could fail to delete all matching rows. Users of MariaDB Community Server 11.8.4 are strongly advised to upgrade immediately to 11.8.5.
Changelog
For a complete list of changes made in MariaDB 11.8.5, with links to detailed information on each push, see the changelog.
Be notified of new MariaDB Server releases automatically by subscribing to the MariaDB Foundation community announce 'at' lists.mariadb.org announcement list (this is a low traffic, announce-only list). MariaDB plc customers will be notified for all new releases, security issues and critical bug fixes for all MariaDB plc products thanks to the Notification Services.
MariaDB may already be included in your favorite OS distribution. More information can be found on the page.
There is a new innovation release with new features every time. It is a Release Candidate (RC) release.
Additionally, all maintained release series get a new patch version maintenance release, a release that was RC last time, becomes Generally Available (GA).
There are no patch version releases of an innovation release after GA (except for emergency releases), instead users are supposed to upgrade to the next minor innovation release. In other words, innovation releases are rolling releases, one upgrades 11.3.2→11.4.2→11.5.2→11.6.2→11.7.2
Approximately every fourth innovation release is a long-term support (LTS) release, after the GA release, with additional Enterprise and Extended support available.
Between two innovation releases there is a preview, it is feature-complete, but has alpha maturity, its purpose is to showcase new upcoming features. Every feature that will be in a release must have been in a preview at some point
The opposite is not true, the feature from a preview will not necessarily be in the upcoming RC innovation release — this depends on whether the feature itself can be considered RC. If it isn't stable enough, it'll stay on internal testing and bug fixing until it is ready.
The release schedule looks about the same every year:
Every third month there's a new minor innovation release, and a new patch version for the previous innovation release to bring it to GA, and also a patch version for currently maintained LTS releases:
early February, early May, early August, early November
Previews happen between innovation releases:
References:
Historical Release Models
From to
Almost the same as above, except that
An innovation release is maintained for one year after its first GA release (see, for example, ), they are not rolling, but on short-term support.
Approximately every eighth innovation release (+-1, aligned around Debian release schedules) is a long-term support (LTS) release, maintained for five years after its first GA release.
An LTS release concludes a major release series, the next innovation release will have a new major version number
From to
There is a new release series every year
It's maintained for five years after the first GA release
A release is going through conventional alpha, beta, RC maturity phases until reaching GA
From to
It is a feature based model
A new release series is planned to have a specific set of features
It is released when they are ready
This page is licensed: CC BY-SA / Gnu FDL
MariaDB 12.3 Changes & Improvements
An overview of changes, improvements, and what's new in MariaDB Community Server 12.3
Do not use non-stable (non-GA) releases in production!
is a . It is an evolution of with several entirely new features.
MariaDB 12.2.1 is a release.
For an overview of MariaDB 12.2 see thepage.
Thanks, and enjoy MariaDB!
New Features
Compatibility features
: [NO_]ROWID_FILTER (),
: [NO_]INDEX_MERGE ()
: Implicit query block names ()
Miscellaneous
Remove depth limit of 32 from JSON functions ()
Indexes on derived tables with GROUP BY produce wrong out_rows estimates ()
Add ()
Changelog
For a complete list of changes made in MariaDB 12.2.1, with links to detailed information on each push, see the .
Be notified of new MariaDB Server releases automatically by to the MariaDB Foundation community announce 'at' lists.mariadb.org announcement list (this is a low traffic, announce-only list). MariaDB plc customers will be notified for all new releases, security issues and critical bug fixes for all MariaDB plc products thanks to the Notification Services.
MariaDB may already be included in your favorite OS distribution. More information can be found on the page.
This page is licensed: CC BY-SA / Gnu FDL
MariaDB 12.2 Changes & Improvements
An overview of changes, improvements, and what's new in MariaDB Community Server 12.2
Do not use non-stable (non-GA) releases in production!
MariaDB 12.3 is a long term release, maintained until June 2029. It is an evolution of MariaDB 12.2 with several entirely new features.
MariaDB 12.3.1 is a release.
For an overview of MariaDB 12.3 see thepage.
Thanks, and enjoy MariaDB!
New Features
Compatibility Features
Oracle TO_DATE() function ()
Support for cursors on prepared statements ()
SQL Standard SET PATH statement ()
Replication
Configurable defaults for MASTER_SSL_* settings for CHANGE MASTER ()
Fragment ROW replication events larger than max_packet_size ()
Miscellaneous
Hashicorp Plugin: Implement cache flush for forced key rotation ()
New hash algorithms for PARTITION BY KEY ()
Optimize reorderable LEFT JOIN statements ()
Notable Items
Galera
The Galera package dependency has been removed from server packages and the Galera package is no longer included in the MariaDB repositories ()
Data Definition - Create Table
On an error in CREATE TEMPORARY TABLE ... SELECT, InnoDB internally aborted a transaction, while the server thought the transaction still existed. This caused various inconsistencies in the binary log, disappearing savepoints, and more. The issue was fixed differently in different versions. In 10.11.16, 11.4.10, 11.8.6, and 12.2.2, the transaction is consistently and completely rolled back if CREATE TEMPORARY TABLE ... SELECT fails with an error. In 12.3.1, there is no rollback at all. ()
Changelog
For a complete list of changes made in MariaDB 12.3.1, with links to detailed information on each push, see the .
Be notified of new MariaDB Server releases automatically by to the MariaDB Foundation community announce 'at' lists.mariadb.org announcement list (this is a low traffic, announce-only list). MariaDB plc customers will be notified for all new releases, security issues and critical bug fixes for all MariaDB plc products thanks to the Notification Services.
MariaDB may already be included in your favorite OS distribution. More information can be found on the page.
This page is licensed: CC BY-SA / Gnu FDL
Replication Compatibility Between MariaDB and MySQL
This page describes replication compatibility between MariaDB and MySQL. For replication compatibility details between different MariaDB versions, see .
Replication Compatibility
compatibility depends on:
Function Differences Between MariaDB 10.2 and MySQL 5.7
The following is a list of all function differences between and MySQL 5.7. It is based on functions available in the stable versions MySQL 5.7.18 and .
For a description of all differences, see .
Present in MariaDB Only
MariaDB 12.1.1 Release Notes
MariaDB 12.1.1 is a Release Candidate (RC) release of MariaDB Community Server 12.1, released on 2025-08-07
The most recent release of MariaDB 12.1 is:
GA
MariaDB 12.2.2 Release Notes
MariaDB 12.2.2 is a Stable (GA) release of MariaDB Community Server 12.2, released on 2026-02-12
Release date: 12 Feb 2026
is a . It is an evolution of with several entirely new features.
MariaDB 12.2.2 is a release.
mid-March, mid-June, mid-September, mid-December
New major release every year
GA is early February (so, RC in November, preview in mid-September)
The first GA is planned to happen in May
it didn't quite work, 10.2 and 10.3 were in May, 10.4 and 10.5 — in June, 10.6 — in July.
Conventional alpha/beta/RC/GA maturity phases.
No fixed or predictable schedule
10.0 took 2.75 years (first commit was in August 2011, GA in May 2014)
10.1 took 1.83 years (first commit was in December 2013, GA in October 2015)
MariaDB 10.2 and later can replicate from a MySQL 5.7 primary server.
MariaDB does not support the MySQL implementation of Global Transaction IDs (GTIDs), so the MariaDB replica server must use the binary log file and position for replication. If GTID mode is enabled on the MySQL primary server, the MariaDB replica server will remove the MySQL GTID events and replace them with MariaDB GTID events.
You can disable GTID and use logfile name and position in MariaDB by executing on the slave:
Although MariaDB and MySQL 5.7 are compatible at the replication level, they may have some incompatibilities at the SQL level. Those differences can cause replication failures in some cases. To decrease the risk of compatibility issues, it is recommended to set to ROW in MySQL. When you want to replicate from MySQL 5.7 to MariaDB, it is recommended to test your application, so that any compatibility issues can be found and fixed. See Incompatibilities and Feature Differences between the specific versions.
MySQL 8.0 to MariaDB
Prior to MariaDB 10.6.21, MariaDB 10.11.11, MariaDB 11.4.5 and MariaDB 11.7.2, MariaDB Server could not replicate from a MySQL 8.0 primary server, because MySQL 8.0 has a binary log format that includes new events which makes it incompatible.
Prior to MariaDB 11.4.9, MariaDB 11.8.4 and MariaDB 12.1.1, MariaDB does not support the MySQL default authentication caching_sha2_password, so one has to add another replication user using the mysql_native_password protocol and use this with in MariaDB when using an older version.
Columns of type JSON are not supported. One should change these to TEXT in MySQL. MySQL will work fine with JSON as TEXT, except for a minor performance degradation when using JSON expressions.
binlog-row-value-options should be set to "" should be set. This disables the incompatible PARTIAL_UPDATE_ROWS_EVENT event.
binlog_transaction_compression should be set to 0. This disables binlog compression and the incompatible TRANSACTION_PAYLOAD_EVENT event.
MySQL 8.0 utf8mb4_ja_0900_ collations can not be used when replicating to - . and above will support .
For differences at the SQL level that may cause replication failures, see between the specific versions. When using this almost exclusively affects DDL'sm, where MariaDB is very compatible with MySQL.
Here are the changes one should do in the config files for MySQL 8.0:
Replicating from MariaDB to MySQL
Here are some issues to be aware of when replicating from MariaDB to MySQL.
On the MySQL side, one should:
Not use binlog with (CHANGE SOURCE_AUTO_POSITION=no)
On the MariaDB side, one should:
Not use ( should be 0)
Not use ( should be 0)
Ensure that one uses a and that MySQL supports. The MariaDB default collations for utf8mb4 is not supported by MySQL. Note that if you just have upgraded from MySQL to MariaDB then you are probably already using the MySQL character sets and collations for your old tables! If you want replication to also work for new tables, the best option is to set the character set and collation in the MariaDB config file.
Example of changes to add to the MariaDB config file:
Add option to not collect statistics for long char/varchars (MDEV-36536)
Retry applying of write sets on galera nodes (MDEV-36077)
now supports wildcards with the -L or --wildcards option (MDEV-21376)
Per-table unique FOREIGN KEY constraint names ()
Support for functional indexes in GROUP/ORDER BY ()
Include definitions of tables and views in the optimizer trace ()
Changelog
For a complete list of changes made in MariaDB 12.1.1, with links to detailed information on each push, see the changelog.
Be notified of new MariaDB Server releases automatically by subscribing to the MariaDB Foundation community announce 'at' lists.mariadb.org announcement list (this is a low traffic, announce-only list). MariaDB plc customers will be notified for all new releases, security issues and critical bug fixes for all MariaDB plc products thanks to the Notification Services.
MariaDB may already be included in your favorite OS distribution. More information can be found on the page.
On an error in CREATE TEMPORARY TABLE ... SELECT, InnoDB internally aborted a transaction, while the server thought the transaction still existed. This caused various inconsistencies in the binary log, disappearing savepoints, and more. The issue was fixed differently in different versions. In 10.11.16, 11.4.10, 11.8.6, and 12.2.2, the transaction is consistently and completely rolled back if CREATE TEMPORARY TABLE ... SELECT fails with an error. In 12.3.1, there is no rollback at all. (MDEV-36787)
Changelog
For a complete list of changes made in MariaDB 12.2.2, with links to detailed information on each push, see the changelog.
Be notified of new MariaDB Server releases automatically by subscribing to the MariaDB Foundation community announce 'at' lists.mariadb.org announcement list (this is a low traffic, announce-only list). MariaDB plc customers will be notified for all new releases, security issues and critical bug fixes for all MariaDB plc products thanks to the Notification Services.
MariaDB may already be included in your favorite OS distribution. More information can be found on the page.
Function Differences Between MariaDB 10.3 and MySQL 5.7
The following is a list of all function differences between MariaDB 10.3 and MySQL 5.7. It is based on functions available in the stable versions MySQL 5.7.18 and MariaDB 10.3.29.
Function Differences Between MariaDB 10.2 and MySQL 5.6
The following is a list of all function differences between MariaDB 10.2 and MySQL 5.6. It is based on functions available in the stable version MariaDB 10.2.25.
Present in MariaDB Only
Dynamic Columns
JSON
Regular Expressions
Window Functions
Present in MySQL Only
GTID
MariaDB and MySQL have differing implementations.
GTID_SUBSET
GTID_SUBTRACT
SQL_THREAD_WAIT_AFTER_GTIDS()
WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS()
Miscellaneous
RANDOM_BYTES
VALIDATE_PASSWORD_STRENGTH
See Also
MariaDB 12.1 Changes & Improvements
An overview of changes, improvements, and what's new in MariaDB Community Server 12.1
The most recent release of MariaDB 12.1 is:
GA
MariaDB 12.1.2 Release Notes
MariaDB 12.1.2 is a Stable (GA) release of MariaDB Community Server 12.1, released on 2025-11-18
Release date: 18 Nov 2025
is a . It is an evolution of with several entirely new features.
binlog-row-value-options=""
binlog_transaction_compression=0
# Not required, but recommended for cross-replication
binlog_format=row
encrypt-binlog=0
log-bin-compress=0
# Not required, but recommended for cross-replication
binlog_format=row
# Character set to be able to replicate new tables to MySQL 8.0
character-set-server=utf8mb4
collation-server=utf8mb4_0900_ai_ci
(Synonym for IFNULL)
- the VALUES() function was renamed after MariaDB introduced Table Value Constructors.
For a complete list of changes made in MariaDB 12.1.2, with links to detailed information on each push, see the changelog.
Be notified of new MariaDB Server releases automatically by subscribing to the MariaDB Foundation community announce 'at' lists.mariadb.org announcement list (this is a low traffic, announce-only list). MariaDB plc customers will be notified for all new releases, security issues and critical bug fixes for all MariaDB plc products thanks to the Notification Services.
MariaDB may already be included in your favorite OS distribution. More information can be found on the page.
Implement SHA2 support for file_key_management.so plugin (TDE) (MDEV-34712)
Data types
Comparison ROW(stored_func(),1)=ROW(1,1) erroneously called stored_func() twice per row. It led to a performance degradation, as well as to a double execution of the possible stored function side effects. (MDEV-36322)
Stored Routines
Add support for the pre-defined weak SYS_REFCURSOR (MDEV-20034)
Server
TO_CHAR FM format not recognized in SQL_MODE=Oracle (MDEV-36216)
Support mariadb-check and CHECK TABLE with SEQUENCE (MDEV-22491)
Optimizer
find_order_in_list mismatch when order item needs fixing() (MDEV-36607)
If the join_condition is specified via USING (column_list), the query plan depends on the sequence of tables in the query (MDEV-36592)
Be notified of new MariaDB Server releases automatically by subscribing to the MariaDB Foundation community announce 'at' lists.mariadb.org announcement list (this is a low traffic, announce-only list). MariaDB plc customers will be notified for all new releases, security issues and critical bug fixes for all MariaDB plc products thanks to the Notification Services.
MariaDB may already be included in your favorite OS distribution. More information can be found on the page.
MariaDB 12.0.2 is a Stable (GA) release. It is an evolution of MariaDB 11.8 with several entirely new features.
MariaDB 12.0 is a rolling release. One is expected to upgrade to MariaDB 12.1.2, there will be no 12.0.3.
Thanks, and enjoy MariaDB!
For an overview of MariaDB 12.0 see thepage.
Thanks, and enjoy MariaDB!
Notable Items
Storage Engines
InnoDB
After SET GLOBAL innodb_buffer_pool_size was aborted while attempting to shrink the buffer pool, executing SET GLOBAL innodb_adaptive_hash_index=ON could lead to corruption of the adaptive hash index. ()
When innodb_buffer_pool_size is being shrunk while there are no data pages cached, InnoDB could hang or crash. ()
Aria
Assertion when adding FK to MyISAM/Aria table with a vector index ()
Data Definition - Alter Table
Adding (with ALTER TABLE) a UNIQUE constraint that is USING HASH to a table with foreign keys could've caused the table to become corrupted. ()
DROP DEFAULT makes SHOW CREATE non-idempotent ()
Partitioning
Server crashes in do_mark_index_columns instead of ER_DUP_ENTRY on partitioned table ()
A replica would crash while replicating UPDATE and DELETE DML statements that target a table which previously had a partition that was converted to a separate table via ALTER TABLE .. CONVERT PARTITION .. TO TABLE. For example, if the command looked like ALTER TABLE t1 CONVERT PARTITION p1 TO TABLE t_new; the replica would crash when trying to update/deleterows in table t1 after running the command. ()
Data Definition - Create Table
CREATE OR REPLACE with self-referencing CHECK hangs forever, cannot be killed ()
Server
Segfault on INTERSECT ALL with UNION in Oracle mode ()
In certain cases privileges on sequences were too restrictive, for example, SELECT on a table might've erroneously required INSERT privilege on a sequences ()
mariabackup
This commit fixes a bug where Aria tables are used in (master->slave1->slave2) and a backup is taken on slave2. In this case it is possible that the replication position in the backup, stored in mysql.gtid_slave_pos, will be wrong. This will lead to replication errors if one is trying to use the backup as a new slave. ()
Maria-backup would crash during the 'maria_recovery' part. This could happen if server was doing repair or creating indexes while the backup was running. ()
Optimizer
MariaDB server crash when a query includes a derived table containing unnamed column. ()
Crash in add_keyuses_for_splitting() when joining with a derived table ()
Split Materialized code: last_refills is never set in 11.0+ ()
JSON
Starting from 10.11.12, Incorrect handling of UTF-8 characters (and other character sets requiring more than a single byte representation) in the minimum/maximum positions of a table during the execution of ANALYZE TABLE tbl PERSISTENT FOR ALL resulted in an endless loop consuming more memory and prevented the server from terminating. ()
Galera
updated to 26.4.23
galera_3nodes.inconsistency_shutdown test occasionally hangs ()
Galera-26.4.23 corrects an incompatibility with OpenZFS >= 2.3.0 enabling the use of galera on this filesystem.
Replication
semi sync makes the master unresponsive when a replica is stopped ()
parallel slave ALTER-SEQUNCE attempted to binlog out-of-order ()
Crash when calling stored function in FOR loop argument ()
Authentication and Privilege System
ALTER TABLE require ALTER privilege on sequence from DEFAULT value expression ()
Locking
Deadlock does not rollback transaction fully ()
Data Manipulation - Insert
UNIQUE constraint that was USING HASH and UNIQUE constrant WITHOUT OVERLAPS could be violated under heavy load in READ COMMITTED transaction isolation mode. ()
Character Sets
Changing the server character set in my.cnf could cause debian-start script to fail with "Illegal mix of collations" ().
Plugin - AWS key management
aws_key_management compilation was previously broken, is now fixed. plugin can be compiled again. As before, -DNOT_FOR_DISTRIBUTION=ON is necessary to build it. ()
Packaging
mariadb systemd mult-instance service was changed to not attempt changes to the permissions on its pam helper server. This prevented unconstructive behaviour and errors in the systemd journal when starting the mariadb@.service. ()
Sequences
Remove the error codes added to 10.11 by the MDEV-36032 patch ()
XA
DML committed within XA transaction block after deadlock error and implicit rollback ()
General
Add option to not collect statistics for long char/varchars ()
Packages for RHEL8 no longer depend on liburing. The RHEL8 kernel had insufficient kernel support so linking was an unneeded dependency. libaio was sufficient ()
SLES 15 SP6 and SLES 15 SP7 are new packages in this release. Because of incompatibilities of packages between SLES service pack versions there are now separate packages for 15sp6 and 15sp7. An upgradeable repo file should include "sles/$releasever/$basearch" rather than the "sles15-amd64" or "sles/15/x86_64" path that may exist currently. (, )
Changelog
For a complete list of changes made in MariaDB 12.0.1, with links to detailed information on each push, see the .
Be notified of new MariaDB Server releases automatically by to the MariaDB Foundation community announce 'at' lists.mariadb.org announcement list (this is a low traffic, announce-only list). MariaDB plc customers will be notified for all new releases, security issues and critical bug fixes for all MariaDB plc products thanks to the Notification Services.
MariaDB may already be included in your favorite OS distribution. More information can be found on the page.
This page is licensed: CC BY-SA / Gnu FDL
Optimizer Feature Comparison Matrix
The below is a table view. For a more graphical view of the differences see .
MariaDB 11.8.3 Release Notes
MariaDB 11.8.3 is a Stable (GA) release of MariaDB Community Server 11.8, released on 2025-08-06
The most recent release of MariaDB 11.8 is:
Stable (GA)
JOIN_PREFIX to hint what tables should be first in the join
JOIN_SUFFIX to hint what tables should be last in the join
After a successful shrinking of innodb_buffer_pool_size, there will be no message about it in the server error log.
After a failed shrinking of innodb_buffer_pool_size, the adaptive hash index will not be re-enabled if innodb_adaptive_hash_index was ON when SET GLOBAL innodb_buffer_pool_size=... started to execute. (MDEV-36868)
AUTO_INCREMENT leads to non-serializable on results (MDEV-36330)
Vector index was corrupted if one statement was rolled back (e.g. insert violating a unique constraint) in the middle of a larger transaction. (MDEV-37068)
The new parameter innodb_linux_aio controls which Linux implementation to use for innodb_use_native_aio=ON. (MDEV-36234)
innodb_linux_aio=auto is equivalent to innodb_linux_aio=io_uring when it is available, and falling back to innodb_linux_aio=aio when not.
Previously, only one implementation (libaio or io_uring) was available. Currently, if io_uring is disabled in the environment, we will fall back to the older libaio interface.
Don't generate index_merge plans, if a column is present in both Secondary Key and Primary Key indexes and either of the indexes include it with DESC order (as the scan itself is not a ROR scan). (MDEV-36410)
Incorrect handling of null values on join conditions. (MDEV-37057)
Optimize Rows_log_event Reporting of Process Info (MDEV-36839)
Seconds_Behind_Master Spike at Log Rotation on Parallel Replication (MDEV-36840)
Fedora 42 is a new release version and x86_64 and aarch64 packages are available (MDBF-1060)
Red Hat Enterprise Linux 10 packages are available for x86_64, aarch64, ppc64le, and s390x hardware platforms (MDBF-995)
Centos Stream 9 previously missed building a MariaDB-provider-lzo package and this has been corrected (MDBF-1038)
This is the last release of the interim Ubuntu 24.10 which ended its standard support in July 2025 (MDBF-1090)
Ubuntu 25.04 (Plucky Puffin) packages are available for amd64 and arm64 (MDBF-849)
Debian 13 (Trixie) packages are available for amd64, arm64, ppc64le and i386 (MDBF-848)
After SET GLOBAL innodb_buffer_pool_size was aborted while attempting to shrink the buffer pool, executing SET GLOBAL innodb_adaptive_hash_index=ON could lead to corruption of the adaptive hash index. (MDEV-36863)
When innodb_buffer_pool_size is being shrunk while there are no data pages cached, InnoDB could hang or crash. (MDEV-37263)
After a successful shrinking of innodb_buffer_pool_size, there will be no message about it in the server error log.
After a failed shrinking of innodb_buffer_pool_size, the adaptive hash index will not be re-enabled if innodb_adaptive_hash_index was ON when SET GLOBAL innodb_buffer_pool_size=... started to execute. ()
AUTO_INCREMENT leads to non-serializable on results ()
Vector index was corrupted if one statement was rolled back (e.g. insert violating a unique constraint) in the middle of a larger transaction. ()
The new parameter innodb_linux_aio controls which Linux implementation to use for innodb_use_native_aio=ON. ()
innodb_linux_aio=auto is equivalent to innodb_linux_aio=io_uring when it is available, and falling back to innodb_linux_aio=aio when not.
Previously, only one implementation (libaio or io_uring) was available. Currently, if io_uring is disabled in the environment, we will fall back to the older libaio interface.
Aria
Assertion when adding FK to MyISAM/Aria table with a vector index (MDEV-37022)
Data Definition - Alter Table
Adding (with ALTER TABLE) a UNIQUE constraint that is USING HASH to a table with foreign keys could've caused the table to become corrupted. (MDEV-36852)
DROP DEFAULT makes SHOW CREATE non-idempotent (MDEV-29001)
Partitioning
Server crashes in do_mark_index_columns instead of ER_DUP_ENTRY on partitioned table (MDEV-36817)
A replica would crash while replicating UPDATE and DELETE DML statements that target a table which previously had a partition that was converted to a separate table via ALTER TABLE .. CONVERT PARTITION .. TO TABLE. For example, if the command looked like ALTER TABLE t1 CONVERT PARTITION p1 TO TABLE t_new; the replica would crash when trying to update/deleterows in table t1 after running the command. (MDEV-36906)
Data Definition - Create Table
CREATE OR REPLACE with self-referencing CHECK hangs forever, cannot be killed (MDEV-29155)
Server
Segfault on INTERSECT ALL with UNION in Oracle mode (MDEV-25158)
In certain cases privileges on sequences were too restrictive, for example, SELECT on a table might've erroneously required INSERT privilege on a sequences (MDEV-36870)
mariabackup
This commit fixes a bug where Aria tables are used in (master->slave1->slave2) and a backup is taken on slave2. In this case it is possible that the replication position in the backup, stored in mysql.gtid_slave_pos, will be wrong. This will lead to replication errors if one is trying to use the backup as a new slave. (MDEV-36143)
Maria-backup would crash during the 'maria_recovery' part. This could happen if server was doing repair or creating indexes while the backup was running. (MDEV-36860)
Optimizer
MariaDB server crash when a query includes a derived table containing unnamed column. (MDEV-24588)
Crash in add_keyuses_for_splitting() when joining with a derived table (MDEV-30711)
Split Materialized code: last_refills is never set in 11.0+ (MDEV-36323)
Don't generate index_merge plans, if a column is present in both Secondary Key and Primary Key indexes and either of the indexes include it with DESC order (as the scan itself is not a ROR scan). ()
Incorrect handling of null values on join conditions. ()
JSON
Starting from 10.11.12, Incorrect handling of UTF-8 characters (and other character sets requiring more than a single byte representation) in the minimum/maximum positions of a table during the execution of ANALYZE TABLE tbl PERSISTENT FOR ALL resulted in an endless loop consuming more memory and prevented the server from terminating. (MDEV-36765)
Optimize Rows_log_event Reporting of Process Info ()
Seconds_Behind_Master Spike at Log Rotation on Parallel Replication ()
Stored routines
Crash when calling stored function in FOR loop argument (MDEV-26115)
Authentication and Privilege System
ALTER TABLE require ALTER privilege on sequence from DEFAULT value expression (MDEV-36280)
Locking
Deadlock does not rollback transaction fully (MDEV-36959)
Data Manipulation - Insert
UNIQUE constraint that was USING HASH and UNIQUE constrant WITHOUT OVERLAPS could be violated under heavy load in READ COMMITTED transaction isolation mode. (MDEV-37199)
Character Sets
Changing the server character set in my.cnf could cause debian-start script to fail with "Illegal mix of collations" (MDEV-36815).
Plugin - AWS key management
aws_key_management compilation was previously broken, is now fixed. plugin can be compiled again. As before, -DNOT_FOR_DISTRIBUTION=ON is necessary to build it. (MDEV-30831)
Packaging
mariadb systemd mult-instance service was changed to not attempt changes to the permissions on its pam helper server. This prevented unconstructive behaviour and errors in the systemd journal when starting the mariadb@.service. (MDEV-36738)
Sequences
Remove the error codes added to 10.11 by the MDEV-36032 patch (MDEV-36856)
XA
DML committed within XA transaction block after deadlock error and implicit rollback (MDEV-37141)
General
Add option to not collect statistics for long char/varchars (MDEV-36536)
Packages for RHEL8 no longer depend on liburing. The RHEL8 kernel had insufficient kernel support so linking was an unneeded dependency. libaio was sufficient (MDBF-1042)
SLES 15 SP6 and SLES 15 SP7 are new packages in this release. Because of incompatibilities of packages between SLES service pack versions there are now separate packages for 15sp6 and 15sp7. An upgradeable repo file should include "sles/$releasever/$basearch" rather than the "sles15-amd64" or "sles/15/x86_64" path that may exist currently. (MDBF-1067, MDEV-36945)
Fedora 42 is a new release version and x86_64 and aarch64 packages are available ()
Red Hat Enterprise Linux 10 packages are available for x86_64, aarch64, ppc64le, and s390x hardware platforms ()
Centos Stream 9 previously missed building a MariaDB-provider-lzo package and this has been corrected ()
This is the last release of the interim Ubuntu 24.10 which ended its standard support in July 2025 ()
Ubuntu 25.04 (Plucky Puffin) packages are available for amd64 and arm64 ()
Debian 13 (Trixie) packages are available for amd64, arm64, ppc64le and i386 ()
Changelog
For a complete list of changes made in MariaDB 11.8.3, with links to detailed information on each push, see the changelog.
Be notified of new MariaDB Server releases automatically by subscribing to the MariaDB Foundation community announce 'at' lists.mariadb.org announcement list (this is a low traffic, announce-only list). MariaDB plc customers will be notified for all new releases, security issues and critical bug fixes for all MariaDB plc products thanks to the Notification Services.
MariaDB may already be included in your favorite OS distribution. More information can be found on the page.
MariaDB 12.0 is a . It is an evolution of with several entirely new features.
New Features
Security
Support for passphrase protected keys ()
variable
New statement for performing actions as another user ()
Data types
Comparison (stored_func(),1)=ROW(1,1) erroneously called stored_func() twice per row. It led to a performance degradation, as well as to a double execution of the possible stored function side effects. ()
Stored Routines
Add support for the pre-defined weak SYS_REFCURSOR ()
system variable limits the number of opened at the same time
Server
Add the FM format to , which suppresses following padding ()
and now support ()
Optimizer
optimization can now be applied for reverse-ordered scans ()
optimization can now applied for reverse-ordered scans ()
Loose Index Scan ("Use index for group-by") optimization can now use indexes with DESC key parts ()
Optimizer hints
Add support for ()
GIS
New functions. These functions improve compatibility with MySQL 8.
()
()
()
Trigger
Add support for TRIGGERS that fire on multiple events ()
Replication
Server displays if it was started with the option ()
has been added as a system variable (previously it was just an option). It determines whether to show the user and password in (SHOW SLAVE HOSTS) on the primary.
system variable added (previously it was just an option), which permits not skipping events having our server id.
Galera
In , needless foreign key checks during Incremental State Transfers are now avoided ()
Audit Plugin
The now logs HOST:PORT of incoming connections instead of just the host ()
Added tls_version field for connection audit plugins ()
Configuration
Get option group suffix from $MARIADB_GROUP_SUFFIX in addition to $MYSQL_GROUP_SUFFIX ()
mariadb Client
Can set an alternative directory path for searching scripts invoked via the source command, with the mariadb client option ()
Variables
For a list of all new variables, see .
Removed
, deprecated in
, deprecated in
, deprecated in .
List of All MariaDB 12.0 Releases
Date
Release
Status
Release Notes
Changelog
This page is licensed: CC BY-SA / Gnu FDL
Function Differences Between MariaDB 11.2 and MySQL 8.0
The following is a list of all function differences between and MySQL 8.0. It is based on functions available in the MySQL 8.0.34 and the releases. For a more complete list of differences, see