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
Implement SHA2 support for file_key_management.so plugin (TDE) (MDEV-34712)
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)
Add support for subquery optimizer hints (MDEV-34888)
Do not use non-stable (non-GA) releases in production!
is a . It is an evolution of with several entirely new features.
MariaDB 12.0.1 is a release.
For an overview of MariaDB 12.0 see thepage.
Thanks, and enjoy MariaDB!
Notable Items
Security
Support for passphrase protected keys ()
New SET SESSION AUTHORIZATION ()
Implement SHA2 support for file_key_management.so plugin (TDE) ()
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. ()
Stored Routines
Add support for the pre-defined weak SYS_REFCURSOR ()
Server
TO_CHAR FM format not recognized in SQL_MODE=Oracle ()
Support mariadb-check and CHECK TABLE with SEQUENCE ()
Optimizer
find_order_in_list mismatch when order item needs fixing() ()
If the join_condition is specified via USING (column_list), the query plan depends on the sequence of tables in the query ()
Add support for optimizer hints ()
GIS
New GIS functions. These functions improve compatibility with MySQL 8.
()
()
()
Trigger
Add support for TRIGGERS that fire on multiple events ()
Replication
Server now displays if it was started with option ()
Galera
Skip FK checks in Galera during applying in IST ()
Audit Plugin
Log HOST:PORT of incoming connection instead of just the host ()
Add tls_version field for connection audit plugins ()
Configuration
Get option group suffix from $MARIADB_GROUP_SUFFIX in addition to $MYSQL_GROUP_SUFFIX ()
Clients and Scripts
Can set an alternative directory path for searching scripts invoked via the source command, with the --script-dir mariadb client option ()
Changelog
For a complete list of changes made in MariaDB 12.0.1, with links to detailed information on each push, see the .
Contributors
For a full list of contributors to MariaDB 12.0.1, 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
QB_NAME()
NO_RANGE_OPTIMIZATION()
NO_ICP()
MRR(), NO_MRR()
BKA(), NO_BKA()
BNL(), NO_BNL()
Add support for subquery optimizer hints (MDEV-34888)
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 12.0.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 Distributions which Include MariaDB page.