All pages
Powered by GitBook
1 of 20

MariaDB Enterprise Server 10.6

Release notes for MariaDB Enterprise Server 10.6 series releases

What's New in MariaDB Enterprise Server 10.6?

MariaDB Enterprise Server 10.6 introduces the new features listed below.

Atomic DDL

DDL (Data Definition Language) statements are now atomic operations. If the DDL statement is not fully successful, the operation will be rolled back. When the server crashes or is killed in the middle of a DDL statement, the operation is rolled back during crash recovery when the server is restarted.

During crash recovery, the server uses the DDL log to determine if an operation needs to be rolled back. When the binary log is enabled, the crash recovery process ensures that the successful operations are written to the binary log and that the unsuccessful operations are not.

By default, the DDL log is at ddl-recovery.log in the datadir. When DDL statements are being executed, the DDL log is synchronized to disk very frequently. If you want to configure a custom path for the DDL log, the log-ddl-recovery option can be used.

As of this release, the following storage engines fully support atomic DDL:

  • Aria

  • InnoDB

  • MyISAM

  • MyRocks

SKIP LOCKED

SELECT [ FOR UPDATE | LOCK IN SHARED MODE ] .. SKIP LOCKED ignores already-locked rows.

One use case for this feature is within applications that sell a limited resource, such as ticketing, rentals, or seat-based sales. In these applications, you need a way to display only the available inventory. This can be accomplished by querying available inventory and skipping locked rows.

SELECT *
FROM ticketing
WHERE claimed = 0 AND section = 'B'
ORDER BY row DESC
LIMIT 10
FOR UPDATE SKIP LOCKED;

Enterprise Audit Object Filters

MariaDB Enterprise Audit allows database-specific and table-specific filters.

For example:

{
  "connect_event" : "ALL",
  "table_event" : ["READ","WRITE",{"ignore_tables" : "mysql.*"}],
  "query_event" : ["DDL",{"tables" : "test.t2"}]
}

JSON_TABLE

JSON_TABLE() returns a table from JSON data.

Queryable rows and columns are produced based on the JSON input, but are not stored in a table on disk. Column mappings are defined in a JSON path expression.

Prior to this release, the JSON_VALUE() and JSON_QUERY() functions could be used to retrieve values from JSON data on a per-column basis.

With JSON_TABLE():

  • JSON data can JOIN with existing tables.

  • A table can be created from JSON data using CREATE TABLE .. AS SELECT against a JSON_TABLE().

  • NESTED PATH enables extraction of nested data from JSON arrays and objects.

Sys Schema

sys schema provides a set of views, functions, and stored procedures to aid DBA analysis of the Performance Schema.

OFFSET Syntax

Additional syntax is supported for SELECT .. OFFSET

OFFSET start { ROW | ROWS } FETCH { FIRST | NEXT } [ count ] { ROW | ROWS } { ONLY | WITH TIES } is an alternative to LIMIT .. OFFSET

The WITH TIES option requires the use of ORDER BY and allows the number of rows to exceed the FETCH count to ensure that the final row in the chunk includes any additional rows that have the same values in the ORDER BY fields (eliminating the need to fetch the next chunk to check for spill-over).

  • For example, the following query can return more than 10 rows if there are more username rows that match the username in the 10th row (the order of the purchase values within the complete set of each username's records is non-deterministic):

SELECT username, purchase
FROM user_purchases
ORDER BY username
OFFSET 305 ROWS
FETCH NEXT 10 ROW WITH TIES;
  • For example, the following query specifies ONLY instead of WITH TIES, so the query can't return more than 10 rows:

SELECT username, purchase
FROM user_purchases
ORDER BY username, purchase
OFFSET 0 ROWS
FETCH NEXT 10 ROWS ONLY;

Enhanced Consistency for Semi-sync Replication

When rpl_semi_sync_slave_enabled=ON, consistency is guaranteed for a Primary server in an HA (Primary/Replica) topology when using semi-synchronous replication.

Prior to this release, when using semi-synchronous replication, if a Primary crashed before sending a transaction to the Replica, on restart the Primary could recover incomplete InnoDB transactions when rejoining as a Replica.

With this release, when using semi-synchronous replication and with rpl_semi_sync_slave_enabled=ON, incomplete transactions will be rolled-back on the Replica, ensuring the new Primary (former Replica) and new Replica (former Primary) remain in sync.

Enhanced Compatibility with Oracle

Expanded compatibility with Oracle through new functions:

  • Added function ADD_MONTHS()

  • Added function ROWNUM()

  • Added function SYS_GUID()

  • Added function TO_CHAR()

Expanded compatibility with Oracle through sql_mode=ORACLE enhancements:

  • With sql_mode=ORACLE added MINUS as an alias to EXCEPT

  • With sql_mode=ORACLE improved SYSDATE to allow use without parenthesis.

  • With sql_mode=ORACLE supports a rownum pseudo-column name as an alias for the ROWNUM() function.

  • With sql_mode=ORACLE subqueries in a FROM clause do not require the AS clause.

Enhanced Compatibility with Sybase SQL Anywhere

Enhanced compatibility with Sybase SQL Anywhere through [sql_mode=EXTENDED_ALIASES]

  • With sql_mode=EXTENDED_ALIASES, alias resolution and use of column aliases in the SQL SELECT list and WHERE clause.

  • With sql_mode=EXTENDED_ALIASES, support use of an alias in the SELECT list before the alias is defined.

  • With sql_mode=EXTENDED_ALIASES, if the same label is used for an alias and a column, the alias is used.

Backported Features

MariaDB Enterprise Server 10.6.9-5

  • The UUID data type has been backported for more efficient storage of UUID values.

MariaDB Enterprise Server 10.6.11-6

  • The new slave_max_statement_time system variable is available to set the maximum execution time for queries on replica nodes.

  • To simplify maintenance, the ALTER TABLE statement supports new clauses to convert tables to partitions, and partitions to tables

MariaDB Enterprise Server 10.6.12-7

  • In previous releases, the number of undo logs was configurable before InnoDB was initialized. With this release, the number of undo logs can also be configured after install

MariaDB Enterprise Server 10.6.15-10

  • JSON_OVERLAPS() has been backported

  • JSON_SCHEMA_VALID() has been backported

MariaDB Enterprise Server 10.6.16-11

  • A new view sys.privileges_by_table_by_level in the sys schema, to show privileges granted to a table on a global, schema, or table level

  • Option s3_debug can now be changed without the need to restart the server

  • New Time Zone Options %Z and %z for DATE_FORMAT

  • Server Audit Log with Milliseconds Precision Timestamps

Available Versions

  • MariaDB Enterprise Server 10.6.20-16

  • MariaDB Enterprise Server 10.6.19-15

  • MariaDB Enterprise Server 10.6.18-14

  • MariaDB Enterprise Server 10.6.17-13

  • MariaDB Enterprise Server 10.6.17-12

  • MariaDB Enterprise Server 10.6.16-11

  • MariaDB Enterprise Server 10.6.15-10

  • MariaDB Enterprise Server 10.6.14-9

  • MariaDB Enterprise Server 10.6.12-8

  • MariaDB Enterprise Server 10.6.12-7

  • MariaDB Enterprise Server 10.6.11-6

  • MariaDB Enterprise Server 10.6.9-5

  • MariaDB Enterprise Server 10.6.8-4

  • MariaDB Enterprise Server 10.6.7-3

  • MariaDB Enterprise Server 10.6.5-2

  • MariaDB Enterprise Server 10.6.4-1

Installation Instructions

  • MariaDB Enterprise Server 10.6

  • Enterprise Cluster Topology with MariaDB Enterprise Server 10.6

  • Primary/Replica Topology with MariaDB Enterprise Server 10.6

  • ColumnStore Object Storage Topology with MariaDB Enterprise Server 10.6 and MariaDB Enterprise ColumnStore 23.02

  • ColumnStore Shared Local Storage Topology with MariaDB Enterprise Server 10.6 and MariaDB Enterprise ColumnStore 23.02

  • HTAP Topology with MariaDB Enterprise Server 10.6 and MariaDB Enterprise ColumnStore 23.02

  • Single-Node Enterprise ColumnStore 23.02 with MariaDB Enterprise Server 10.6 and Object Storage

  • Single-Node Enterprise ColumnStore 23.02 with MariaDB Enterprise Server 10.6

  • Enterprise Spider Sharded Topology with MariaDB Enterprise Server 10.6

  • Enterprise Spider Federated Topology with MariaDB Enterprise Server 10.6

Upgrade Instructions

  • Upgrade to MariaDB Enterprise Server 10.6

  • Upgrade from MariaDB Community Server to MariaDB Enterprise Server 10.6

This page is: Copyright © 2025 MariaDB. All rights reserved.

Release Notes for MariaDB Enterprise Server 10.6.22-18

MariaDB Enterprise Server 10.6.22-18 is a maintenance release of MariaDB Enterprise Server 10.6. This release includes a variety of fixes.

MariaDB Enterprise Server 10.6.22-18 was released on 11 Jun 2025.

Fixed Security Vulnerabilities

CVE (with cve.org link)

CVSS base score

CVE-2025-30693

5.5

CVE-2023-52969

4.9

CVE-2023-52970

4.9

Changes in Storage Engines

  • This release incorporates MariaDB ColumnStore engine version 23.10.4.

Notable changes

  • New user variable, analyze_max_length, default value 4G. Any field that is bigger than this value in bytes will be ignored by ANALYZE TABLE PERSISTENT to not collect statistics for long char/varchars unless it is specified in FOR COLUMNS(). (MENT-2301)

  • SBOM now includes 'license' and 'copyright' information, improving security compliance and dependency tracking. (MENT-2311)

  • MariaDB effectively running as root CAP_DAC_OVERRIDE (MDEV-36229)

  • my_getopt compares option names case sensitively (MDEV-27126)

  • Galera updated to 26.4.22

  • Support has been added for Oracle Linux 8 and 9

Issues Fixed

Can result in data loss

  • Assertion InnoDB searching row in wrong partition for multiple system versioned DELETE with same timestamp and same multistatement transaction (MDEV-36115)

Can result in hang or crash

  • Incorrect error handling on DDL with FULLTEXT INDEX (MDEV-36061)

  • ALTER TABLE…SEQUENCE does not work correctly with InnoDB (MDEV-36038)

  • Race conditions between ALTER TABLE or OPTIMIZE TABLE and the purge of transaction history were fixed. (MDEV-36122)

  • Server aborts while deleting the record in spatial index (MDEV-35420)

  • The server could crash when an UPDATE is about to commit concurrently with a CREATE INDEX that includes VIRTUAL columns (MDEV-36281)

  • Upgrades fail on Windows (MDEV-36128)

  • ASAN errors in dict_sys_t::load_table / get_foreign_key_info after failing to load a table (MDEV-33167)

  • ALTER TABLE…DROP COLUMN after a failed ALTER TABLE…DROP COLUMN could lead to a server crash (MDEV-36236)

  • Field pointer may be uninitialized in fill_record (MDEV-36181)

  • A primary server could crash when a semi-sync connection is stopped, if the primary previously disabled semi-sync replication while the connection was already up (and `rpl_semi_sync_master_wait_no_slave=0`). (MDEV-36359)

  • Incorrect undo logging for indexes on virtual columns whose index ID does not fit in 32 bits (MDEV-36613)

  • With wsrep_ignore_apply_errors = 0, the node crashes due to assertion thd->is_error() failed in Sql_cmd_dml::prepare(), shown in the logs (MDEV-35946)

  • In some cases, if there are MDL locks (for example, when LOCK TABLE is executed), a node could get stuck in the system thread due to incorrect handling of metadata locks (MDL) in server code when a transaction was BF aborted. (MDEV-35941)

  • Regression after the fix for MDEV-31413 - sometimes the server crashes with an assertion in wsrep::transaction::before_rollback(), for example when using OPTIMIZE TABLE on an ARIA table with wsrep_osu_method=RSU. (MDEV-32631)

  • SST failure occurs when gtid_strict_mode is enabled under high load, such as OLTP load is active on the primary node. A typical symptom of this error is the presence of the diagnostic "[ERROR] mariadbd: Error writing file 'binlog'", in the debug version it is also possible to crash on assertion in the wsrep::transaction::before_rollback() function with the message "Assertion `state() == s_executing || state() == s_preparing || state() == s_prepared || state() == s_must_abort || state() == s_aborting || state() == s_cert_failed || state() == s_must_replay' failed". (MDEV-34891)

  • In Galera, creating sequence with a small cache leads to signal 6 error: [ERROR] WSREP: FSM: no such a transition REPLICATING -> COMMITTED. (MDEV-33850)

  • Under high load wsrep internal thread may terminate due to memory pressure conditions, but this is not a crash, however in debug version user may encounter assertion in wsrep_to_isolation_begin() function with following message: "int wsrep_to_isolation_begin(THD*, const char*, const char*, const TABLE_LIST*, const Alter_info*, const key_array*, const HA_CREATE_INFO*): Assertion `(0)' failed." (MDEV-36116)

  • Assertion `commit_trx' failed in innobase_commit() (ha_innodb.cc). An INSERT with sql_log_bin=0 is still replicated in Galera (per MDEV-7205), despite binary logging being disabled. This results in a partial binlog bypass, requiring a two-phase commit (2PC). During 2PC, the INSERT is first prepared (entering the PREPARED state in InnoDB), and on commit, the new assertion from MDEV-24035 fails, causing a crash with "Assertion 'commit_trx' failed" in logs. (MDEV-35658)

  • When a sequence is used and inserts run in parallel on multiple Galera nodes, a transaction may be aborted after passing certification. If it then attempts to roll back, the binlog statement cache—which includes reserved sequence values—may be written prematurely. This causes a crash with the diagnostic "WSREP: FSM: no such a transition REPLICATING -> COMMITTED" in the logs, as the transaction is supposed to replay and only write to the binlog during the final commit. (MDEV-33589)

  • A Galera node may hang due to improper mutex handling: a thread held lock_sys.wait_mutex while triggering a streaming replication rollback, which also tried to acquire THD::LOCK_thd_kill, leading to incorrect mutex usage. In debug versions, this leads to diagnostics like "safe_mutex: Found wrong usage of mutex 'wait_mutex' and 'LOCK_thd_data'", but in both debug and release versions, there is some probability that the node may hang. (MDEV-36509)

  • corruption when query cache cannot allocate block (MDEV-34075)

  • Stack looping and SIGSEGV in Item_args::walk_args on UPDATE (MDEV-31647)

  • Server crash in find_field_in_tables, Assertion `name' failed in find_field_in_table_ref (MDEV-25012)

  • Long server_audit_file_path causes buffer overflow (MDEV-36245)

  • Server crash when inserting from derived table containing insert target table (MDEV-32086)

Can result in unexpected behaviour

  • CREATE INDEX fails to heal a FOREIGN KEY constraint (MDEV-35962)

  • Doublewrite recovery of innodb_checksum_algorithm=full_crc32 page_compressed pages does not work (MDEV-36180)

  • Segfault on concurrent ALTER and SELECT for partitioned table (MDEV-31122)

  • ST_PointFromWKB ignores SRID argument and always creates the POINT with 0 for it's SRID (MDEV-32619)

  • mariadb-dump used wrong quoting character (MDEV-36268)

  • After a corrupted table on one node triggers the cluster to vote to evict a node that failed a transaction, the current master can’t commit any more and hangs. (MDEV-34998, MENT-2081)

  • MDEV-32157 intended to fix spider wrapper so that it is case insensitive, among other things. However that fix was incomplete, as the udf spider_direct_sql may still require case sensitivity. MDEV-35807 fixes this. (MDEV-35807)

  • Creating partitioned tables is disallowed when wsrep_osu_method=TOI and wsrep_strict_ddl=ON, preventing alteration or deletion of partitioned tables. (MDEV-27861)

  • Attempting to create a CONNECT engine table results in "non-InnoDB sequences in Galera cluster" error message in logs due to an incorrect engine check. (MDEV-35748)

  • innodb_snapshot_isolation=1 gives error for not committed row changes (MDEV-36639)

  • Aria engine: log initialization failed (MENT-2235)

  • MariaDB Backup returns with an error like "Error on file ./test/t1#P#p513.MYD open during `test`.`t1` table copy for partitioned MyISAM tables when running out of file handles (MENT-2089)

  • User without any privileges to a sequence can read from it and modify it via column default (MDEV-36413)

  • User has unauthorized access to a sequence through a view with security invoker (MDEV-36380)

Unexpected results

  • The untested ha_spider::index_first_internal constructs broken queries (MDEV-36324)

  • Wrong results from tables with a single record and an aggregate (MDEV-35238)

  • Unexpected error 1264 'Out of Range Value for Column' when inserting into ... select ... from a spider table (MDEV-35874)

  • group by handler missing constant fields when selecting from a view (MDEV-36307)

  • Tests calling the udf spider_copy_tables fail with --view-protocol (MDEV-36335)

Related to performance

  • dict_stats_fetch_from_ps() unnecessarily holds exclusive dict_sys.latch (MDEV-35436)

  • Stall and crash when page cleaner fails to generate free pages during Async flush (MDEV-36226)

Changelog

For the complete list of changes in this release, see the changelog.

Platforms

In alignment to the enterprise lifecycle, MariaDB Enterprise Server 10.6.22-18 is provided for:

  • AlmaLinux 8 (x86_64, ARM64)

  • AlmaLinux 9 (x86_64, ARM64)

  • Debian 11 (x86_64, ARM64)

  • Debian 12 (x86_64, ARM64)

  • Microsoft Windows (x86_64) (MariaDB Enterprise Cluster excluded)

  • Oracle Linux 8 (x86_64, ARM64)

  • Oracle Linux 9 (x86_64, ARM64)

  • Red Hat Enterprise Linux 8 (x86_64, ARM64)

  • Red Hat Enterprise Linux 9 (x86_64, ARM64, PPC64LE)

  • Rocky Linux 8 (x86_64, ARM64)

  • Rocky Linux 9 (x86_64, ARM64)

  • SUSE Linux Enterprise Server 12 (x86_64)

  • SUSE Linux Enterprise Server 15 (x86_64, ARM64)

  • Ubuntu 20.04 (x86_64, ARM64)

  • Ubuntu 22.04 (x86_64, ARM64)

  • Ubuntu 24.04 (x86_64, ARM64)

  • Red Hat UBI 8 (x86_64, ARM64)

    • Red Hat UBI 8 is part of the Enterprise Server Docker Image. It does not support MariaDB Enterprise Cluster (Galera) or MariaDB ColumnStore.

Some components of MariaDB Enterprise Server are supported on a subset of platforms. See MariaDB Engineering Policies for details.

This page is: Copyright © 2025 MariaDB. All rights reserved.

Release Notes for MariaDB Enterprise Server 10.6.21-17

MariaDB Enterprise Server 10.6.21-17 is a maintenance release of MariaDB Enterprise Server 10.4. This release includes a variety of fixes.

MariaDB Enterprise Server 10.6.21-17 was released on 19 Mar 2025.

Fixed Security Vulnerabilities

CVE (with cve.org link)

CVSS base score

CVE-2025-21490

4.9

Changes in Storage Engines

  • This release incorporates MariaDB ColumnStore engine version 23.10.3.

Notable changes

  • Starting with this release we generate a Software Bill of Materials (SBOM) JSON file provided in the downloads archive, which can be reached from the "All Files" link on the MariaDB Enterprise Server downloads page (MENT-2200)

  • New parameter --skip-freed-pages for Innochecksum. Use this parameter to not get freed undo logs reported as existing undo log pages. (MDEV-35394)

  • Galera protocol versions are now shown by show status - change available with installation of galera library 26.4.21+ (MDEV-35505)

  • MariaDB now supports MySQL 8.0 binlog events, including PARTIAL_UPDATE_ROWS_EVENT, TRANSACTION_PAYLOAD_EVENT, and HEARTBEAT_LOG_EVENT_V2. (MDEV-35643)

  • InnoDB deadlock output query length increased to improve visibility of deadlocked statements. (MDEV-32576)

  • Galera updated to 26.4.21

    • NOTE: Includes increasing the GCS protocol version, which prevents downgrades of individual nodes in the cluster as soon as all nodes have been updated

Issues Fixed

Can result in data loss

  • Fix incorrect writing of timestamp into binary log, causing discrepancy upon binlog replaying (MDEV-31761)

  • Fix trigger created with "CREATE TRIGGER table1_after_insert AFTER INSERT" which is adding rows to another table using "FOR EACH ROW insert into table2(id, name) values (NEW.id, NEW.name);" that did not work correctly when if bulk inserts are used by the application. Only the first row of the bulk insert would be added to the table (MDEV-34958)

  • History is now stored on the same partitions on different Galera nodes when system versioning is enabled (MDEV-35096)

  • Fix assertion falilure and possible index corruption with unique key and nopad collation without DESC or HASH keys (MDEV-30111)

Can result in hang or crash

  • Fix client crash the command after client sets character set to utf32 (MDEV-34090)

  • Fix possible crash where server could not construct a geomery object from the input (MDEV-33987)

  • Fix possible InnoDB hang while running out of buffer pool (MDEV-35409)

  • Fix possible Spider thread hang in 'Update' state on 2nd INSERT (MDEV-35064)

  • After changing the table definition for the system table 'mysql.servers', a following execution of CREATE SERVER would previously lead to a server crash. (MDEV-33783)

    • NOTE: System tables should never be modified by a user anyhow

  • FIx streaming replication transaction crash with innodb_snapshot_isolation (MDEV-35281)

  • Fix sporadic failure of async replication on Galera async replica nodes with parallel replication enabled (MDEV-35465)

  • Fix failing assertion causing disruption and replication failure (MDEV-24035)

  • Fix possible failure of wsrep_sst_rsync SST script if user specified aria_log_dir_path different from default data directory (MDEV-35387)

  • Fix connection hang after query on a partitioned table with UNION and LIMIT ROWS EXAMINED (MDEV-35571)

  • Fix server crash in get_sort_by_table/make_join_statistics after INSERT into a view with ORDER BY (MDEV-29935)

  • Fix possible hang during CREATE TABLE...SELECT error handling, especially with innodb_snapshot_isolation enabled (MDEV-35647)

  • Fix incorrect locking order of LOCK_log/LOCK_commit_ordered, and LOCK_global_system_variables (MDEV-29744)

  • Fix possible memory leak on SHUTDOWN (MDEV-35326)

  • Fix possible memory leak while shutting down server after installing the auth_gssapi plugin (MDEV-35575)

  • Fix possible crash on DELETE from a HEAP table (MDEV-22695)

  • Fix possible server crash when using INSERT DELAYED on tables with virtual columns. (MDEV-26891)

  • Fix possible crash during index traversal using tree_search_next. (MDEV-28130)

  • Fix possible hang or crash during InnoDB purge with HASH indexes during ALTER TABLE (MDEV-25654)

  • Fix possible hang or crash where zero offset applied to null pointer (MDEV-35864)

  • Fix possible crash on bootup in spider_sys_open_table «ext-issue»«MDEV-32822», «ext-issue»«MDEV-34302» (MDEV-34925)

  • Fix possible Spider crash or hang when the first byte of a connection key is changed (MDEV-34849)

  • Fix possible runtime error caused by XA RECOVER applying a zero offset to a null pointer (MDEV-35549)

  • Fix assertion failure on cascading foreign key update of table with vcol index in parent (MDEV-29182)

  • Fix assertion failure where CURRENT_USER was not correctly copied during condition pushdown (MDEV-35090)

  • Fix cluster node hang during shutdown if threadpool is used (MDEV-35710)

  • Calling a stored routine that executes a join on three or more tables and referencing not-existent column name in the USING clause could previously result in a crash on its second invocation. (MDEV-24935)

  • Fix possible assertion failure when Galera cluster is in 'split-brain' state due to loss of communication between nodes (fix requires Galera library 26.4.21+) (MENT-2175)

  • Fix assertion failure when executing XA PREPARE (and possibly other XA statements) on Galera cluster nodes (MENT-2212)

  • Fix assertion failure when executing XA statements on Galera cluster nodes (MENT-2214)

  • In rare cases, an ALTER TABLE or other operation could previously hang when using NBO mode on a cluster with very low network latencies (for example, when both nodes are running on the same physical machine) (MENT-2215)

  • MariaDB Cluster and ALTER INPLACE running in Total Order Isolation (wsrep_OSU_method=TOI) now correctly abort a DML INSERT operation in InnoDB (MDEV-33064)

  • Fix possible crash in wsrep_check_sequence (MDEV-33245)

Can result in unexpected behaviour

  • Fix sporadic reporting of success when a deadlock error occurs under --ps-protocol BF aborted transaction (MDEV-35446)

  • Fix rare cases where binlog entries could receive incorrect timestamps on secondary nodes of a Galera cluster, potentially impacting replication accuracy (MDEV-35157)

  • For an authentication with the ed25519 authentication plugin the password of the CREATE USER statement is now masked in the audit log (MDEV-35507)

  • MariaDB Audit now detects all DCLs forms for masking a password (MDEV-35522)

  • Fix potential issue in secondary Index with ROW_FORMAT=COMPRESSED and Change buffering enabled (MDEV-35679)

  • sql_mode='NO_UNSIGNED_SUBTRACTION' now works for multiple unsigned integers (MDEV-35651)

  • Fix doublewrite recovery of innodb_checksum_algorithm=full_crc32 encrypted pages (MDEV-34898)

  • START TRANSACTION, when triggering an implicit commit as a COMMIT or ROLLBACK has not been executed before, now resets optional characteristics added to the last START TRANSACTION command (MDEV-35335)

  • mariadb-binlog can now correctly process more than one logfile when --stop-datetime is specified (MDEV-35528)

  • Rows in table mysql.gtid_slave_pos are now correctly deleted on Galera nodes when wsrep_gtid_mode = 1 is used, which previously lead to wrong information about replica delays (MDEV-34924)

  • EXCHANGE PARTITION now works for tables with unique blobs (MDEV-35612)

  • Fix issue where functions in default values in tables with certain character sets could break SHOW CREATE and mariadb-dump (MDEV-29968)

  • Setting pseudo_thread_id to a value exceeding 4 bytes previously resulted in truncation when written to the binary log (MDEV-35646)

  • A BEFORE INSERT Trigger previously returned with error "Field 'xxx' doesn't have a default value", if a NULL value was added for a column defined NOT NULL without explicit value and no DEFAULT specified (MDEV-19761)

  • Undefined behavior could occur when attempting to perform INSERT DELAYED on a Galera cluster node. (MDEV-35852)

  • Fix issue where ON UPDATE SET NULL could not be specified on a NOT NULL column (MDEV-35445)

  • algorithm = instant can now correctly be used if a table has partitions and one tries to change a column with an index which is not the partitions key. This previously gave error "ERROR 1846 (0A000): ALGORITHM=INSTANT is not supported. Reason: ADD INDEX. Try ALGORITHM=NOCOPY" (MDEV-34813)

  • Fix issue where DROP TABLE on child and UPDATE of parent table can cause a metadata lock BF-BF conflict when applied concurrently. (MDEV-35018)

  • Can now correctly add a foreign key on a table with a long UNIQUE multi-column index that contains a foreign key as a prefix (MDEV-33658)

  • Fix possibly wrong result using a degenerated subquery (SELECT <expr>) with window function (MDEV-35869)

  • The "Failed to write to mysql.slow_log" error no longer shown without a detailed reason for the error (MDEV-20281)

  • Fix debian-start script failure when using non-standard socket path (MDEV-35907)

  • wsrep_sst_mariadb-backup.sh no longer uses --use-memory default (100MB) resulting in prepare stage which could take hours (MDEV-35749)

  • Replicate_* fields in Show-Slave-Status may be truncated, impacting replication monitoring. (MENT-2238)

Related to performance

  • Conditions with SP local variables are now pushed into derived table. Previous behaviour caused slow performance and table scans instead of using the pushed down condition (MDEV-35910)

  • NULL-aware materialization with IN predicate and single column no longer skips building sorted Ordered_key structures (MDEV-34665)

  • Cloning of table statistics while saving the InnoDB table stats is now avoided (MDEV-35363)

Changelog

For the complete list of changes in this release, see the changelog.

Platforms

In alignment to the enterprise lifecycle, MariaDB Enterprise Server 10.6.21-17 is provided for:

  • AlmaLinux 8 (x86_64, ARM64)

  • AlmaLinux 9 (x86_64, ARM64)

  • Debian 11 (x86_64, ARM64)

  • Debian 12 (x86_64, ARM64)

  • Microsoft Windows (x86_64) (MariaDB Enterprise Cluster excluded)

  • Red Hat Enterprise Linux 8 (x86_64, ARM64)

  • Red Hat Enterprise Linux 9 (x86_64, ARM64, PPC64LE)

  • Rocky Linux 8 (x86_64, ARM64)

  • Rocky Linux 9 (x86_64, ARM64)

  • SUSE Linux Enterprise Server 12 (x86_64)

  • SUSE Linux Enterprise Server 15 (x86_64, ARM64)

  • Ubuntu 20.04 (x86_64, ARM64)

  • Ubuntu 22.04 (x86_64, ARM64)

  • Ubuntu 24.04 (x86_64, ARM64)

  • Red Hat UBI 8 (x86_64, ARM64)

    • Red Hat UBI 8 is part of the Enterprise Server Docker Image. It does not support MariaDB Enterprise Cluster (Galera) or MariaDB ColumnStore.

Some components of MariaDB Enterprise Server are supported on a subset of platforms. See MariaDB Engineering Policies for details.

Installation Instructions

  • MariaDB Enterprise Server 10.6

  • Enterprise Cluster Topology with MariaDB Enterprise Server 10.6

  • Primary/Replica Topology with MariaDB Enterprise Server 10.6

  • ColumnStore Object Storage Topology with MariaDB Enterprise Server 10.6 and MariaDB Enterprise ColumnStore 23.02

  • ColumnStore Shared Local Storage Topology with MariaDB Enterprise Server 10.6 and MariaDB Enterprise ColumnStore 23.02

  • HTAP Topology with MariaDB Enterprise Server 10.6 and MariaDB Enterprise ColumnStore 23.02

  • Single-Node Enterprise ColumnStore 23.02 with MariaDB Enterprise Server 10.6 and Object Storage

  • Single-Node Enterprise ColumnStore 23.02 with MariaDB Enterprise Server 10.6

  • Enterprise Spider Sharded Topology with MariaDB Enterprise Server 10.6

  • Enterprise Spider Federated Topology with MariaDB Enterprise Server 10.6

Upgrade Instructions

  • Upgrade to MariaDB Enterprise Server 10.6

  • Upgrade from MariaDB Community Server to MariaDB Enterprise Server 10.6

This page is: Copyright © 2025 MariaDB. All rights reserved.

Release Notes for MariaDB Enterprise Server 10.6.20-16

MariaDB Enterprise Server 10.6.20-16 is a maintenance release of MariaDB Enterprise Server 10.6.

MariaDB Enterprise Server 10.6.20-16 was released on 2024-12-10.

Backports

  • New, Detailed Replication Lag Representation (MENT-2095)

    • The Seconds_Behind_Master field of SHOW REPLICA STATUS can be complex and confusing, especially when parallel replication, delayed replication, or the option sql_slave_skip_counter is used. To help provide a consistent view of replication lag, three new fields have been added to the statement's output to provide specific timing information about the state of the IO and SQL threads.

    • Three new values have been added to the replica status:

      • Master_last_event_time

        • Timestamp of the last event read from the primary by the IO thread

      • Slave_last_event_time

        • Timestamp from the primary of the last event committed on the replica

      • Master_Slave_time_diff

        • The difference of the above two timestamps

  • New Information Schema Table For Password Related Data (MENT-2145) A new information Schema view, USERS, has been added, which DBAs can use to get insights about password related information for a user. This information can be used:

    • by an application to inform a user about a password about to expire or an account which is at risk of being blocked due to the number of wrong passwords entered

    • by DBAs to query users which have been blocked because of too many invalid passwords entered

    • The new view includes the fields:

      • USER – A string including user name and host

      • PASSWORD_ERRORS – A counter with the current number of wrong passwords entered

        • Reset to 0 when a correct password has been entered

        • An account is blocked, if max_password_errors is reached

        • NULL for accounts with privilege CONNECTION ADMIN

      • PASSWORD_EXPIRATION_TIME – The date and time when the password expires or NULL, if the password never expires

  • GTID binlog events now include the thread ID (MENT-2180)

    • The thread ID and the corresponding statement can now be retrieved from binary logs

    • The output of mariadb-binlog also includes the thread ID

Notable Changes

  • A new parameter --quick-max-column-width is now available in the mariadb client to limit the field width when used with the --quick mode (MDEV-34704)

  • JSON_TABLE allows to specify default column values, but they had to be specified as string constants (MDEV-25822)

    • With this patch, one can specify default values as any literals (string, integer, decimal number, date literal, etc) Example:

SELECT *
 FROM
json_table('{"a": "123"}',
 '$' columns(col1 INT path '$.a' DEFAULT 1 ON empty)) AS T;
SELECT *
 FROM
json_table('{"a": "123"}',
 '$' columns(col1 DATE path '$.DATE' DEFAULT DATE '2020-01-01' ON empty)) AS T;
  • A new option --skip-freed-pages has been added to the innochecksum tool (MENT-2183)

    • This option can be used to skip reporting freed undo logs as existing undo log pages

Changes in Storage Engines

  • This release originally incorporated MariaDB ColumnStore engine version 23.10.2

  • This release now incorporates MariaDB ColumnStore engine version 23.10.3

Issues Fixed

Can result in data loss

  • Possible corruption due to a rare race condition between page creation and eviction (MDEV-34453)

    • An error like "[ERROR] InnoDB: Trying to read ... bytes at ... outside the bounds of the file" will be shown in the error log

  • Using group_concat with a compressed or GIS column can lead to a server crash and potential data corruption for users performing group_concat operations on tables containing these data types (MDEV-16699)

  • Unique hash index corruption for system-versioned tables after DML including a DELETE HISTORY statement, causing data corruption and error 'Record in index not found on update' (MDEV-33470)

Can result in hang or crash

  • When using Total Order Isolation (TOI) executing ALTER TABLE while a SR transaction is in progress, the user encounters a freeze and a server error "InnoDB: WSREP: BF lock wait long for trx" (MDEV-34836)

  • A query could cause a crash if it has a HAVING clause with a construct tblX.column=column_or_constant and the optimizer was able to infer that table tblX is a constant table. Note that the HAVING clause may be from the original query or may come from Condition Pushdown optimization) (MDEV-23983)

  • Calling a UDF for the engine SPIDER results in a crash if the SPIDER storage engine plugin could not be loaded (MDEV-34682)

  • The use of XA PREPARE may cause InnoDB to hang (MDEV-34690)

  • Under Windows Subsystem for Linux, InnoDB crashes on ALTER TABLE or OPTIMIZE TABLE (MDEV-34938)

  • Server crashes when setting wsrep_cluster_address after adding invalid value to wsrep_allowlist table (MDEV-31173)

  • mariadbd hangs on startup when --init-file target does not exist (MDEV-34814)

  • Possible server crash in cases where the function DEFAULT() is part of a query (MDEV-35276)

  • Primary stalling when a DDL is executed using semi-sync replication with wait point = AFTER_SYNC (MENT-2162)

  • Deadlock on Replica during BACKUP STAGE BLOCK_COMMIT on XA transactions (MENT-2152)

  • In some situations, where a MariaDB Enterprise cluster (Galera) node crashes, some threads are still working. This is visible via the error log, which is still getting errors written by the node. As the node stops interacting correctly with other cluster nodes and is blocking them from taking over the primary state, the whole cluster hangs (MDEV-32363)

  • When switching to the SQL Mode EXTENDED_ALIASES and selecting from a table of type SPIDER, the server can crash (MENT-2108)

Can result in unexpected behavior

  • When a user runs mariadb-binlog with --stop-position, they would expect the output to contain events up to that event. If the output did not contain events up to that event, this may result in various unexpected behaviors, e.g., an incomplete database state if they piped the output to the mariadb client and expected certain transactions to have executed in the database, yet never were run (MDEV-27037)

  • A table name can not be reused when the table was changed using "ALTER TABLE...STATS_PERSISTENT=0" and was dropped afterwards. This also results in the error "Can't write; duplicate key in table 'mysql.innodb_table_stats" in tsing ALTER TABLE...STATS_PERSISTENT=0 fails to drop statistics" (MDEV-34207)

  • Changing a data type of a field used in a foreign key constraint fails with Error "Cannot change column '...': used in a foreign key constraint '...'" (MDEV-34392)

    • This ALTER only fails if the type of field is changed in a multi-ALTER statement, where types of other fields are changed with the ALTER

  • Creation of a view with UNION and SELECT ... FOR UPDATE in the definition fails with error "ER_PARSE_ERROR (1064): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near..." (MDEV-29537)

  • In some contexts text strings containing numbers with the integer part equal to zero and the fractional part not equal to zero were erroneously evaluated as FALSE in WHERE condition (MDEV-34123)

  • INSERT...SELECT on MyISAM or ARIA tables are replicated by MariaDB Enterprise Cluster (Galera) (MDEV-34647)

  • Storage Engine S3 causes 500 error when using Huawai Cloud S3 and possibly other S3 providers (MDEV-34867)

    • A new option S3-provider has been added. S3-provider=Huawai needs to be set for Huawai Cloud S3

  • JSON_TABLE doesn't properly unquote strings (MDEV-27412)

  • SELECT MIN on Spider table returns more rows than expected (MDEV-26345)

  • Can't selectively restore sequences using innodb tables from backup (MDEV-32350)

  • LOAD DATA INFILE with geometry data fails (MDEV-34883)

  • Executing an UPDATE statement in prepared statement mode having positional parameter bound with an array can result in an incorrect number of updated rows in case there is a BEFORE UPDATE trigger that executes yet another UPDATE statement to change a table (MDEV-34718)

  • Recovery fails to note some log corruption, resulting in "log sequence number in the future" error messages, and possibly adds more corruption (MDEV-34802)

    • When log corruption is noted, the server can now only be started when using the option innodb_force_recovery

  • When SET GLOBAL innodb_adaptive_hash_index=ON is set, ALTER TABLE...IMPORT TABLESPACE with FULLTEXT SEARCH may corrupt the adaptive hash index (MDEV-35059)

  • InnoDB fails to merge the change buffer to ROW_FORMAT=COMPRESSED tables. This can result in secondary indexes in ROW_FORMAT=COMPRESSED tables becoming corrupted, which in turn would lead to wrong results for queries that use those secondary indexes (MDEV-34879)

  • CHECK TABLE would notice the corruption

  • OPTIMIZE TABLE would fix the corruption

  • No error/warning returned when a transaction is executed, which includes transactional and non-transactional engines (MDEV-30653)

    • When using the experimental option wsrep_mode=REPLICATE_ARIA a transaction can possibly include changes to tables using transactional and non-transactional engines. But only the changes of the transactional engine will be rolled back in case of a conflict

    • NOTE: Experimental features should not be used on production

  • Unexpected error "Row size too large (> 8123)..." for a correct INSERT after a instantly dropped BLOB column (MDEV-35122)

  • Wrong binlog timestamps on secondary nodes of MariaDB Enterprise Cluster (MENT-2164)

  • InnoDB fails to shrink the system tablespace when it contains leaked undo log pages. It fails to free the unused segment if a XA PREPARE transaction exist or if the previous shutdown was not done with innodb_fast_shutdown=0 (MENT-2148)

    • The :autoshrink attribute needs to be set for the system tablespace to free disk space on startup

  • When the MariaDB Enterprise Audit Plugin is configured to log ACL queries, a statement CREATE USER .. IDENTIFIED VIA ed25519 USING PASSWORD(...) is logged including the password (MENT-2181)

  • When the MariaDB Enterprise Audit Plugin is configured to log ACL queries, passwords are masked for CREATE USER .. IDENTIFIED BY, but not for CREATE OR REPLACE USER, or SET STATEMENT ... FOR CREATE USER (MENT-2188)

Related to performance

  • Bug that causes blocking issues when other transactions attempt to acquire locks on records held by an XA transaction in the prepared state, even if those records haven't been modified (MDEV-34466)

    • This affects InnoDB storage engine, XA transactions, and non-blocking mode

  • Unnecessary copying of log records by MariaDB Enterprise Backup when further transaction commits are blocked by BACKUP STAGE BLOCK_COMMIT (MENT-2133)

    • It also would cause further effort of rolling back incomplete transactions after the backup is restored

  • Aria internal temporary tables unnecessarily write all changed blocks to disk when the table is closed at end of query (MENT-2182)

Changelog

For the complete list of changes in this release, see the changelog.

Platforms

In alignment to the enterprise lifecycle, MariaDB Enterprise Server 10.6.20-16 is provided for:

  • AlmaLinux 8 (x86_64, ARM64)

  • AlmaLinux 9 (x86_64, ARM64)

  • Debian 11 (x86_64, ARM64)

  • Debian 12 (x86_64, ARM64)

  • Microsoft Windows (x86_64) (MariaDB Enterprise Cluster excluded)

  • Red Hat Enterprise Linux 8 (x86_64, ARM64)

  • Red Hat Enterprise Linux 9 (x86_64, ARM64, PPC64LE)

  • Rocky Linux 8 (x86_64, ARM64)

  • Rocky Linux 9 (x86_64, ARM64)

  • SUSE Linux Enterprise Server 12 (x86_64)

  • SUSE Linux Enterprise Server 15 (x86_64, ARM64)

  • Ubuntu 20.04 (x86_64, ARM64)

  • Ubuntu 22.04 (x86_64, ARM64)

  • Ubuntu 24.04 (x86_64, ARM64)

Some components of MariaDB Enterprise Server might not support all platforms. For additional information, see MariaDB Corporation Engineering Policies".

  • MariaDB Enterprise Server 10.6.4-1

Installation Instructions

  • MariaDB Enterprise Server 10.6

  • Enterprise Cluster Topology with MariaDB Enterprise Server 10.6

  • Primary/Replica Topology with MariaDB Enterprise Server 10.6

  • ColumnStore Object Storage Topology with MariaDB Enterprise Server 10.6 and MariaDB Enterprise ColumnStore 23.02

  • ColumnStore Shared Local Storage Topology with MariaDB Enterprise Server 10.6 and MariaDB Enterprise ColumnStore 23.02

  • HTAP Topology with MariaDB Enterprise Server 10.6 and MariaDB Enterprise ColumnStore 23.02

  • Single-Node Enterprise ColumnStore 23.02 with MariaDB Enterprise Server 10.6 and Object Storage

  • Single-Node Enterprise ColumnStore 23.02 with MariaDB Enterprise Server 10.6

  • Enterprise Spider Sharded Topology with MariaDB Enterprise Server 10.6

  • Enterprise Spider Federated Topology with MariaDB Enterprise Server 10.6

Upgrade Instructions

  • Upgrade to MariaDB Enterprise Server 10.6

  • Upgrade from MariaDB Community Server to MariaDB Enterprise Server 10.6

This page is: Copyright © 2025 MariaDB. All rights reserved.

Release Notes for MariaDB Enterprise Server 10.6.19-15

MariaDB Enterprise Server 10.6.19-15 is a maintenance release of MariaDB Enterprise Server 10.6.

MariaDB Enterprise Server 10.6.19-15 was released on 2024-09-09.

Backports

  • Starting with MariaDB Enterprise Server 10.6.19-15, the space occupied by freed pages within the InnoDB system tablespace can be reclaimed by adding an :autoshrink attribute to innodb_data_file_path, like: (MENT-1304)

[mariadb]
...
innodb_data_file_path=ibdata1:12M;ibdata2:50M:autoextend:autoshrink

This allows the system tablespace to be truncated after the last allocated page within it, all the way to the specified minimum size (here: 12MiB).

In older release series InnoDB data files never shrink in size during normal operation. One could shrink .ibd files by rebuilding tables with OPTIMIZE TABLE, or the undo tablespace files by SET GLOBAL innodb_undo_log_truncate=ON

  • The function CONV() , which converts a number between numeric base systems, now supports conversions up to base 62. This allows conversions to encodings to capital letters A-Z, lower case letters a-z, and numbers 0-9. The old limit was 36, not including lower case letters. (MENT-2031)

Example:

SELECT CONV(61,10,36);
+----------------+
| CONV(61,10,36) |
+----------------+
| 1P             |
+----------------+
SELECT CONV(61,10,62);
+----------------+
| CONV(61,10,62) |
+----------------+
| z              |
+----------------+
  • The JSON functions JSON_ARRAY_INTERSECT, JSON_OBJECT_TO ARRAY, and JSON_FILTER_KEYS have been backported from later MariaDB Community Server Release Series to enhance the JSON function coverage in this MariaDB Enterprise Server release series. (MENT-1897)

  • The new JSON function JSON_ARRAY_INTERSECT(, ) is used to find the intersection between two JSON arrays.

Example:

SET @array1= '[1,2,3]';
SET @array2= '[1,2,4]';
SELECT json_array_intersect(@array1, @array2) AS result;
+--------+
| result |
+--------+
| [1, 2] |
+--------+
SET @json1= '[[1,2,3],[4,5,6],[1,1,1]]';
SET @json2= '[[1,2,3],[4,5,6],[1,3,2]]';
SELECT json_array_intersect(@json1, @json2) AS result;
+------------------------+
| result                 |
+------------------------+
| [[1, 2, 3], [4, 5, 6]] |
+------------------------+
  • The new JSON function JSON_OBJECT_TO_ARRAY(<json_doc>) is used to convert all JSON objects found in a JSON document to JSON arrays where each item in the outer array represents a single key-value pair from the object. Example:

SET @json1= '{ "a" : [1,2,3] , "b": {"key1": "val1", "key2": {"key3": "val3"}} }';
SELECT JSON_OBJECT_TO_ARRAY(@json1) AS result;
+-----------------------------------------------------------------------+
| result                                                                |
+-----------------------------------------------------------------------+
| [["a", [1, 2, 3]], ["b", {"key1": "val1", "key2": {"key3": "val3"}}]] |
+-----------------------------------------------------------------------+

Resulting arrays can be compared using JSON_ARRAY_INTERSECT():

SET @json1='{"a":[1,2,3],"b":{"key1":"val1","key2":{"key3":"val3"}}}';
SET @json2='{"a":[1,2,3]}';
SELECT JSON_OBJECT_TO_ARRAY(@json1) INTO @array1;
SELECT JSON_OBJECT_TO_ARRAY(@json2) INTO @array2;
SELECT JSON_ARRAY_INTERSECT(@array1,@array2) AS result;
+--------------------+
| result             |
+--------------------+
| [["a", [1, 2, 3]]] |
+--------------------+
  • The new JSON function JSON_OBJECT_FILTER_KEYS(<json_doc>,<array_keys>) returns key/value pairs from a JSON string for keys defined in <array_keys>. Example:

SET @json1= '{ "a": 1, "b": 2, "c": 3}';
SELECT JSON_OBJECT_FILTER_KEYS (@json1, ' ["b", "c"] ') AS result;
+------------------+
| result           |
+------------------+
| {"b": 2, "c": 3} |
+------------------+

By using JSON_ARRAY_INTERSECT() and JSON_KEY() as arguments for JSON_OBJECT_FILTER_KEYS(), a comparison of two JSON strings is possible where only the same keys are compared, not the key/value pairs. Example (only show key/value pairs of json1 where the key exists in json2):

SET @json1= '{ "a": 1, "b": 2, "c": 3}';
SET @json2= '{"b" : 10, "c": 20, "d": 30}';
SELECT JSON_OBJECT_FILTER_KEYS (@json1, json_array_intersect(json_keys(@json1), json_keys(@json2))) AS result;
+------------------+
| result           |
+------------------+
| {"b": 2, "c": 3} |
+------------------+
  • The new JSON function JSON_KEY_VALUE(<json_doc>,<json_path>) extracts key/value pairs from a JSON object. The JSON path parameter is used to only return key/value pairs for matching JSON objects. (MENT-1896)

Example:

SELECT JSON_KEY_VALUE('[[1, {"key1":"val1", "key2":"val2"}, 3], 2, 3]', '$[0][1]');
+-----------------------------------------------------------------------------+
| JSON_KEY_VALUE('[[1, {"key1":"val1", "key2":"val2"}, 3], 2, 3]', '$[0][1]') |
+-----------------------------------------------------------------------------+
| [{"key": "key1", "value": "val1"}, {"key": "key2", "value": "val2"}]        |
+-----------------------------------------------------------------------------+

The function JSON_KEY_VALUE() can be used as an argument to JSON_TABLE(), which allows adding the key to a result set. Example:

SELECT jt.* FROM JSON_TABLE(
JSON_KEY_VALUE('[[1, {"key1":"val1", "key2":"val2"}, 3], 2, 3]', '$[0][1]'),'$[*]'
COLUMNS (
k VARCHAR(20) PATH '$.KEY',
v VARCHAR(20) PATH '$.value',
id FOR ORDINALITY )) AS jt;
+------+------+------+
| k    | v    | id   |
+------+------+------+
| key1 | val1 |    1 |
| key2 | val2 |    2 |
+------+------+------+

Notable Changes

  • It is now possible to unblock an account which reached the --max-password-errors limit by ALTER USER <user> ACCOUNT UNLOCK instead of executing a FLUSH PRIVILEGES command (MDEV-34311)

    • Before this change ALTER USER <user> ACCOUNT UNLOCK only unlocked accounts which have been locked explicitly via ALTER USER <user> ACCOUNT LOCK

    • FLUSH PRIVILEGES was the only way to reset account limit counters, like accounts blocked by reaching --max-password-errors. Using FLUSH PRIVILEGES causes a full reload of the ACL tables, which can cause heavy disk reads

  • A new global variable server_uid can be used to identify a server instance. This Server ID is also logged in the error log file on startup (MDEV-34311)

  • A new optimizer_join_limit_pref_ratio optimization had been added which allows to efficiently handle queries using JOIN and ORDER BY ... LIMIT construct. The new system variable optimizer_join_limit_pref_ratio is set to 0 by default for disabling the optimization. Set the value of optimizer_join_limit_pref_ratio to a non-zero value to enable this option (higher values are more conservative, recommended value is 100)

  • Galera has been updated to 26.4.19

    • The GCS protocol version has been changed, preventing a downgrade of individual nodes of a MariaDB Enterprise Cluster

Changes in Storage Engines

  • This release incorporates MariaDB ColumnStore engine version 23.10.2.

Issues Fixed

Can result in data loss

  • An ALTER TABLE, OPTIMIZE TABLE, or REPAIR TABLE on an Aria table of ROW_FORMAT=PAGE (default) can fail or possibly corrupt the table, if the data file is bigger than 4GB. (MDEV-34522)

  • When executing an ALTER TABLE

    CHECK PARTITION FOR UPGRADE on a table, which was created by the same server version, and therefore does not need an upgrade, a following ALTER TABLE for the same table will result in a server crash. (MDEV-32155)

    Can result in hang or crash

    • When using SHOW CREATE DATABASE statement crashes the server with a database name containing Unicode characters, the server can crash (MDEV-32376)

    • For a partitioned table of type SPIDER where the remote connection is configured via CREATE SERVER, the server can crash if the server definition was removed via DROP SERVER (MDEV-31475)

    • When multiple threads try to load spider and to create a spider table, MariaDB can crash (MDEV-32487)

    • When enabling the PAGE_COMPRESSED option for an InnoDB table created with INNODB_DEFAULT_ROW_FORMAT=redundant, the server crashes. (MDEV-34222)

    • A query that plans to use the Rowid Filter optimization could crash the server if some factor causes it to terminate abnormally at a certain specific point in query optimization. Examples of such causes of termination are: (MDEV-30651)

      • Query being killed with KILL statement

      • Statement execution exceeding @@max_statement_time limit

    • When running a query with HAVING NOT column clause where the "column" is also used in the GROUP BY {{ ... SELECT ... GROUP BY column ... HAVING NOT column}}, the server can crash. Other forms of HAVING clause were not affected (MDEV-19520)

    • An Auto-generated DELETE statement is added to the binary log for MEMORY tables, which can break replication. The DELETE cannot be executed in cases like missing triggers, which results in the replication being stopped. (MDEV-25607)

    • Replication fails when XA transactions are used where the replica has replicate_do_db set and the client has touched a different database when running DML such as inserts (MDEV-33921)

    • Replication fails in chain configurations if an XA transaction is replicated which results in an empty transaction on a replica. The XA START through XA PREPARE first phase of the transaction is not binlogged, yet the XA COMMIT is binlogged, which results in errors due to executing standalone XA COMMIT queries on replicas further in the chain. (MDEV-33921)

    • The server can crash for a query with a HAVING clause such that: (MDEV-32293) (MDEV-32424) (MDEV-32304) (MDEV-29363)

    • It has several references to the same non-trivial constant (e.g., a subquery),

    • Condition pushdown optimization would try to move at least one of the references from HAVING clause into WHERE

    • If a query used a derived table (a CTE or a mergeable VIEW would work as well) and the WHERE clause compared columns of the derived table with the value of CHARSET() or COERCIBILITY() function, the query could produce wrong result, or crash. The cause was incorrect processing of these functions by derived condition pushdown optimization (MDEV-33010)

    • With MariaDB Enterprise Custer a node can hang with the error: (MDEV-31658)

    "Deadlock found when trying to get lock; try restarting transaction, Error_code: 1213; handler error HA_ERR_LOCK_DEADLOCK; the event's master log FIRST, end_log_pos 1583, Internal MariaDB error code: 1213"

    Can result in unexpected behavior

    • Replicas only read the first 41 characters of MASTER_PASSWORD from the master.info file. This leads to an access denied error for a replica on a server restart, if the password is > 41 characters long. (MDEV-23857)

    • Adding a partition in a spider table can lead to memory violation (MDEV-29027)

    • MariaDB Server still can allow new connections to be created when the Server got a fatal signal (MDEV-34475)

    • Slow warm-up for InnoDB as long as there are free pages in the buffer pool (MDEV-34458)

      • An InnoDB warm-up is not needed when using innodb_buffer_pool_dump_at_shutdown=ON and innodb_buffer_pool_load_at_startup=ON

      • A slowdown at run time has not been observed

    • mariadb-backup stores the password into the tool_command setting in the file xtrabackup_info, if the password is provided as command-line option (MDEV-34434)

    • The semi-sync binlog fail-over recovery process uses rpl_semi_sync_slave_enabled==TRUE as its condition to truncate a primary server's binlog, as it is anticipating the server to re-join a replication topology as a replica. However, for servers configured with both rpl_semi_sync_master_enabled=1, and rpl_semi_sync_slave_enabled=1, if a primary is just re-started (i.e., retaining its role as master), it can truncate its binlog to drop transactions which its replica(s) has already received, and executed. (MENT-2122)

      • If this happens, when the replica reconnects, its gtid_slave_pos can be ahead of the recovered primary's gtid_binlog_pos, resulting in an error state where the replica's state is ahead of the primary's.

      • Option --init-rpl-role will be used to define the initial role a server has. Possible options are MASTER and SLAVE, default MASTER . Setting it to SLAVE is now the condition for semi-sync recovery to truncate the binlog, This allows for both rpl_semi_sync_master_enabled, and rpl_semi_sync_slave_enabled to be set for a primary that is restarted, and no transactions will be lost, so long as --init-rpl-role is not set to SLAVE

    • Grouping operators referring to column aliases in unions inside derived tables can cause name resolution problems with prepared statements. (MDEV-34506)

    • Table mysql.gtid_slave_pos is replicated between two MariaDB Enterprise Cluster although wsrep_gtid_mode=OFF is set. (MDEV-34170)

    • wsrep_sst_mariadb-backup is using /tmp dir during SST instead of an user defined tmpdir (MDEV-32158)

    • The following misleading error message is shown with MariaDB Enterprise Cluster. Galera can mark user threads as high priority and so they can't be killed: (MDEV-12008)

    You are not the owner of the thread ....
    • Now the following error message is shown:

    This is a high priority thread/query and cannot be killed without compromising the consistency of the cluster
    • Executing an INSERT statement in PS mode having positional parameters bound with an array can result in an incorrect number of inserted rows in case there is a BEFORE INSERT trigger that executes yet another INSERT statement to put a copy of the row being inserted into some table. (MDEV-24411)

    • When using the asynchronous replication between two MariaDB Enterprise Cluster (Galera) environments, the domain id of the GTID can be wrongly set, or changed by Galera (MDEV-32633)

    Related to performance

    • Performance improvements for queries using a secondary indexes. (MENT-2126)

    • Slower query performance on some Linux systems because of a performance difference of the system call ftruncate'() to truncate data files, as ftruncate() causes a flush. MariaDB used "ftruncate" to periodically empty its temporary tables. Query plans with Split Materialized optimization are affected the most. (MENT-2125)

    • Using NAME_CONST(), or executing query from the stored procedure and referring to a local variable, changes the plan, and may make execution slower (MDEV-33971)

    • ALTER TABLE ... IMPORT TABLESPACE can take unnecessarily long if a database uses a large number of tablespaces and the value inndb_open_files is lower than the number of existing table_spaces (MDEV-34670)

    • Rowid Filter optimization cannot work with backward index scans. An attempt to run such a query plan will make the query perform very slowly. Fixed by disabling use of Rowid Filter if the optimizer decides to use a backward index scan. (MDEV-33875)

    Changelog

    • For the complete list of changes in this release, see the changelog.

    Platforms

    In alignment to the enterprise lifecycle, MariaDB Enterprise Server 10.6.19-15 is provided for:

    • AlmaLinux 8 (x86_64, ARM64)

    • AlmaLinux 9 (x86_64, ARM64)

    • Debian 11 (x86_64, ARM64)

    • Debian 12 (x86_64, ARM64)

    • Microsoft Windows (x86_64) (MariaDB Enterprise Cluster excluded)

    • Red Hat Enterprise Linux 8 (x86_64, ARM64)

    • Red Hat Enterprise Linux 9 (x86_64, ARM64, PPC64LE)

    • Rocky Linux 8 (x86_64, ARM64)

    • Rocky Linux 9 (x86_64, ARM64)

    • SUSE Linux Enterprise Server 12 (x86_64)

    • SUSE Linux Enterprise Server 15 (x86_64, ARM64)

    • Ubuntu 20.04 (x86_64, ARM64)

    • Ubuntu 22.04 (x86_64, ARM64)

    • Ubuntu 24.04 (x86_64, ARM64)

    Some components of MariaDB Enterprise Server might not support all platforms. For additional information, see MariaDB Corporation Engineering Policies".

I

Installation Instructions

  • MariaDB Enterprise Server 10.6

  • Enterprise Cluster Topology with MariaDB Enterprise Server 10.6

  • Primary/Replica Topology with MariaDB Enterprise Server 10.6

  • ColumnStore Object Storage Topology with MariaDB Enterprise Server 10.6 and MariaDB Enterprise ColumnStore 23.02

  • ColumnStore Shared Local Storage Topology with MariaDB Enterprise Server 10.6 and MariaDB Enterprise ColumnStore 23.02

  • HTAP Topology with MariaDB Enterprise Server 10.6 and MariaDB Enterprise ColumnStore 23.02

  • Single-Node Enterprise ColumnStore 23.02 with MariaDB Enterprise Server 10.6 and Object Storage

  • Single-Node Enterprise ColumnStore 23.02 with MariaDB Enterprise Server 10.6

  • Enterprise Spider Sharded Topology with MariaDB Enterprise Server 10.6

  • Enterprise Spider Federated Topology with MariaDB Enterprise Server 10.6

Upgrade Instructions

  • Upgrade to MariaDB Enterprise Server 10.6

  • Upgrade from MariaDB Community Server to MariaDB Enterprise Server 10.6

This page is: Copyright © 2025 MariaDB. All rights reserved.

Release Notes for MariaDB Enterprise Server 10.6.18-14

MariaDB Enterprise Server 10.6.18-14 is a maintenance release of MariaDB Enterprise Server 10.6.

MariaDB Enterprise Server 10.6.18-14 was released on 2024-06-11.

Fixed Security Vulnerabilities

CVE (with cve.org link)

CVSS base score

CVE-2024-21096

4.9

Notable Changes

  • Galera has been updated to 26.4.18

    • The GCS protocol version has been changed, preventing a downgrade of individual nodes of a MariaDB Enterprise Cluster

  • Changes to the use of the variable optimizer_adjust_secondary_index_costs (MDEV-33306)

    • The default of the variable optimizer_adjust_secondary_index_costs changed from "0" to "" and is now of type ENUM

    • The variable can now be set to a combination of the following values separated by a ',':

      • adjust_secondary_key_cost: Update secondary key costs for ranges to be at least 5x of clustered primary key costs.

      • disable_max_seek: Disable 'max_seek optimization' for secondary keys and slight adjustment of filter cost.

      • disable_forced_index_in_group_by: Disable automatic forced index in GROUP BY and make GROUP BY cost based instead of rule based. ALL Sets all of the above values.

    • Without changes in configuration or using the old integer values 0, 1, 2 for optimizer_adjust_secondary_key_costs this system variable works as before. This is to ensure that we do not break any existing applications.

Changes in Storage Engines

  • This release originally incorporated MariaDB ColumnStore engine version 23.10.1.

  • This release now incorporates MariaDB ColumnStore engine version 23.10.2.

Issues Fixed

Can result in data loss

  • With --gtid-ignore-duplicate set a transaction can be double-applied from another replication source if at applying the transaction from the initial source required retrying in parallel execution. (MDEV-33475)

  • Backups of server with innodb_encrypt_tables=1 can become corrupted in mariadb-backup --prepare (MDEV-33334)

  • With multiple GTID domains, optimistic parallel slave conflicts involving XA-PREPARE event group could not be resolved correctly which might cause unnecessary stop of the slave serve. (MDEV-34042)

  • The TIMESTAMP value of '1970-01-01 00:00:00' can be inserted via a INSERT ...FROM ... SELECT in strict mode although it should result in an error (MDEV-34088)

  • Galera-replicated events can in some cases contain the wrong time when versioning is used (MDEV-18590)

  • wrong row targeted with insert ... on duplicate and replace, leading to data corruption (MDEV-30046)

Can result in hang or crash

  • Using current MariaDB Enterprise Backup against an older server can result in a crash, as the system variable @@aria_log_dir_path does not exist (MDEV-31251)

  • When using a non-default setting for innodb_change_buffering, the server can crash (MDEV-33332)

  • When a fulltext search query with more than 4G inserted or updated rows is executed, the server can crash (MDEV-33383)

  • InnoDB is holding shared dict_sys.latch while waiting for FOREIGN KEY child table lock on DDL (MDEV-32899)

  • InnoDB may hang when temporarily running out of buffer pool (MDEV-33613)

  • For encrypted table spaces an ALTER operation can hang when an encryption thread works on the same tablespace (MDEV-33770)

  • EXPLAIN statement that uses a subquery which has a query plan that A) will examine less than @@expensive_subquery_limit rows and B) will use join buffer could cause a crash. (MDEV-21102)

  • For a SPIDER table, when deleting partitions from a table, the server can crash (MDEV-33731)

  • After an unsuccessful ALTER TABLE on an ARIA table due to a full temp space, any subsequent query results in the following error if it involves using temp: (MDEV-33813)

ERROR 1021 (HY000): Disk full (./org/test1.MAI); waiting for someone to free some space... (errno: 28 "No space left on device")
  • When replaying a binary log with mariadb-binlog, the tool can crash if the binary log includes statements related to sequences, like SELECT NEXTVAL(s) (MDEV-31779)

  • MariaDB Enterprise Backup fails with the following error message if the prepare step of the backup encounters a data directory which happens to store wsrep xid position in TRX SYS page: (MDEV-33540)

InnoDB: Crash recovery is broken due to insufficient innodb_log_file_size
  • Assertion failure when a client disconnected during transaction that is in the XA PREPARE state or when incomplete transaction was recovered from undo logs on server startup and not yet rolled back (MDEV-33278)

  • Failure with the following error message when streaming transaction in idle state is BF aborted: (MDEV-33509)

WSREP: Failed to apply write set with flags = (rollback | pa_unsafe)
  • Assertion when user commits an empty transaction for DDL that was killed during certification: (MDEV-32787)

!wsrep_has_changes(thd) || (thd->lex->sql_command == SQLCOM_CREATE_TABLE && !thd->is_current_stmt_binlog_format_row()) || thd->wsrep_cs().transaction().state() == wsrep::transaction::s_aborted
  • MDL lock conflict can occur if the transactions acquire explicit MDL locks from the InnoDB level when persistent statistics is re-read for a table and such a transaction is subject to BF-abort (MDEV-33136)

  • Graceful node shutdown can crash garbd and MariaDB Enterprise Cluster can go non-primary when SSL is used (MDEV-33495)

Can result in unexpected behavior

  • Wrong result sets are returned by the second execution of prepared statements from selects using mergeable derived tables pushed into external engine (MDEV-31361)

  • IMPORT TABLESPACE fails with column count or index count mismatch: (MDEV-30655)

ERROR 1808 (HY000): Schema mismatch (Number of columns don't match, table has x columns but the tablespace meta-data file has y columns)
  • A query that uses a derived table that employs constructs with side-effects, like (SELECT @var:=... ) as derived_tbl, could produce wrong results (MDEV-30975)

  • ORDER BY COLLATE improperly applied to non-character columns which is resulting in an unordered result set (MDEV-33318)

  • Inconsistent behaviors of UPDATE under Read Uncommitted & Read Committed isolation level (MDEV-26643)

  • When two transactions modify the data at the same time with isolation level REPEATABLE-READ, the latter transaction does take the change from the first transaction into account (MDEV-26642)

  • Spider/ODBC passed double quotes for names, in ANSI style (MENT-958)

  • Default charset doesn't work with PHP MySQLi extension (MDEV-32975)

  • Bad SEPARATOR value in GROUP_CONCAT on character set conversion can lead to a wrong result (MDEV-33772)

  • Spider returns parsing failure on valid left join select by translating the on expression to () (MDEV-33679)

  • When creating a temporary InnoDB table with CREATE TEMPORARY TABLE ... AS SELECT ... from an InnoDB table as a non SUPER / READ ONLY ADMIN user, the following error is shown instead of creating the table: (MDEV-33889)

ERROR 1290 (HY000): The MariaDB server is running with the --read-only option so it cannot execute this statement
  • CREATE TEMPORARY TABLE (without SELECT), INSERT ... SELECT, and CREATE ... LIKE are not affected by this bug

  • Phantom rows caused by UPDATE of PRIMARY KEY (MDEV-32898)

  • Mariadb-dump trusts the server and does not validate the data. A modified dump file can include system commands used by the mariadb-client. Dumps are now loaded in the sandbox mode by default, a system call will result in an error (MDEV-33727)

  • Updating a case insensitive large unique key with an insensitive change of the value can result in a duplicate key error (MDEV-29345)

  • When setting binlog_annotate_row_events=1, an event of binlog file can be truncated (MDEV-9179)

  • Wrong result with semi-join and split-table derived table from queries with an IN subquery predicate in the WHERE clause and a derived table in the FROM clause to which split materialized optimization could be applied. (MDEV-23878)

  • With galera, correct transactions could not be committed with the following error when accessing system tables for read, and write to innodb tables in the same transaction: (MDEV-33828)

Transactional commit not supported by involved engine
  • A wrong result on 2-nd execution of a prepared statement is possible when selecting from a view using a merged derived table (MDEV-31277)

  • Original IP not shown in network related error messages when proxy_protocol is in use (MDEV-33506)

  • Incorrect DEFAULT expression evaluated in UPDATE (MDEV-33790)

  • group by optimization incorrectly removing subquery where subject buried in a function (MDEV-28621)

Related to performance

  • Replication with XA events can show decreased performance. Adapt parallel slave's round-robin scheduling to XA events (MDEV-33668)

  • Row locks for non-modified rows are not released at XA PREPARE (MDEV-33454)

  • Optimizer is sometimes choosing an index for queries with GROUP BY when it shouldn't, resulting in decreased performance. To protect compatibility to the current behavior @@optimizer_adjust_secondary_key_costs="disable_forced_index_in_group_by" has to be set to enable the fix (MDEV-33306)

  • Table is getting rebuild with ALTER TABLE ADD COLUMN although it should be an instant operation not requiring a rebuild (MDEV-33214)

  • Semi-sync Wait Point AFTER_COMMIT Slow on Workloads with Heavy Concurrency (MDEV-33551)

  • Aggregation functions fail to leverage uniqueness property (MDEV-30660)

    • Generally, computing aggregate function with DISTINCT argument: aggregate_func(DISTINCT col1, col2, ...) requires producing a de-duplicated set of its arguments, which can be CPU-intensive

    • When we select from one table the argument list includes the table's PRIMARY (or UNIQUE) key:

SELECT aggregate_func(DISTINCT t1.primary_key, ...) FROM t1;

then the arguments are guaranteed not to have duplicates. Such cases are now detected allowing the optimizer to skip de-duplication.

Changelog

For the complete list of changes in this release, see the changelog.

Platforms

In alignment to the enterprise lifecycle, MariaDB Enterprise Server 10.6.18-14 is provided for:

  • AlmaLinux 8 (x86_64, ARM64)

  • AlmaLinux 9 (x86_64, ARM64)

  • CentOS 7 (x86_64)

  • Debian 10 (x86_64)

  • Debian 11 (x86_64, ARM64)

  • Debian 12 (x86_64, ARM64)

  • Microsoft Windows (x86_64) (MariaDB Enterprise Cluster excluded)

  • Red Hat Enterprise Linux 7 (x86_64)

  • Red Hat Enterprise Linux 8 (x86_64, ARM64)

  • Red Hat Enterprise Linux 9 (x86_64, ARM64, PPC64LE)

  • Rocky Linux 8 (x86_64, ARM64)

  • Rocky Linux 9 (x86_64, ARM64)

  • SUSE Linux Enterprise Server 12 (x86_64)

  • SUSE Linux Enterprise Server 15 (x86_64, ARM64)

  • Ubuntu 20.04 (x86_64, ARM64)

  • Ubuntu 22.04 (x86_64, ARM64)

Some components of MariaDB Enterprise Server might not support all platforms. For additional information, see MariaDB Corporation Engineering Policies".

Installation Instructions

  • MariaDB Enterprise Server 10.6

  • Enterprise Cluster Topology with MariaDB Enterprise Server 10.6

  • Primary/Replica Topology with MariaDB Enterprise Server 10.6

  • ColumnStore Object Storage Topology with MariaDB Enterprise Server 10.6 and MariaDB Enterprise ColumnStore 23.02

  • ColumnStore Shared Local Storage Topology with MariaDB Enterprise Server 10.6 and MariaDB Enterprise ColumnStore 23.02

  • HTAP Topology with MariaDB Enterprise Server 10.6 and MariaDB Enterprise ColumnStore 23.02

  • Single-Node Enterprise ColumnStore 23.02 with MariaDB Enterprise Server 10.6 and Object Storage

  • Single-Node Enterprise ColumnStore 23.02 with MariaDB Enterprise Server 10.6

  • Enterprise Spider Sharded Topology with MariaDB Enterprise Server 10.6

  • Enterprise Spider Federated Topology with MariaDB Enterprise Server 10.6

Upgrade Instructions

  • Upgrade to MariaDB Enterprise Server 10.6

  • Upgrade from MariaDB Community Server to MariaDB Enterprise Server 10.6

This page is: Copyright © 2025 MariaDB. All rights reserved.

Release Notes for MariaDB Enterprise Server 10.6.17-13

MariaDB Enterprise Server 10.6.17-13 is a maintenance release of MariaDB Enterprise Server 10.6. This release includes a fix for a regression introduced with MariaDB Enterprise Server 10.6.17-12. Users of MariaDB Enterprise Server 10.6.17-12 are encouraged to upgrade to the latest version 10.6.17-13.

MariaDB Enterprise Server 10.6.17-13 was released on 2024-04-24.

Changes in Storage Engines

  • This release incorporates MariaDB ColumnStore engine version 23.10.1.

Issues Fixed

Can result in hang or crash

  • An UPDATE to a unique/primary key field can result in a server crash, if the update results in a duplicate key error message. The crash is more likely to happen for a server configuration with a lower setting than the default (299008) for --thread_stack, or when the UPDATE is executed inside of a stored function (MENT-2065)

    • For MariaDB Enterprise Server 10.6.17-12, if an update is not possible, a workaround is to increase the current setting of --thread_stack by 100k

Platforms

In alignment to the enterprise lifecycle, MariaDB Enterprise Server 10.6.17-13 is provided for:

  • AlmaLinux 8 (x86_64, ARM64)

  • AlmaLinux 9 (x86_64, ARM64)

  • CentOS 7 (x86_64)

  • Debian 10 (x86_64, ARM64)

  • Debian 11 (x86_64, ARM64)

  • Debian 12 (x86_64, ARM64)

  • Microsoft Windows (x86_64) (MariaDB Enterprise Cluster excluded)

  • Red Hat Enterprise Linux 7 (x86_64)

  • Red Hat Enterprise Linux 8 (x86_64, ARM64)

  • Red Hat Enterprise Linux 9 (x86_64, ARM64)

  • Rocky Linux 8 (x86_64, ARM64)

  • Rocky Linux 9 (x86_64, ARM64)

  • SUSE Linux Enterprise Server 12 (x86_64)

  • SUSE Linux Enterprise Server 15 (x86_64, ARM64)

  • Ubuntu 20.04 (x86_64, ARM64)

  • Ubuntu 22.04 (x86_64, ARM64)

Some components of MariaDB Enterprise Server might not support all platforms. For additional information, see MariaDB Corporation Engineering Policies".

Installation Instructions

  • MariaDB Enterprise Server 10.6

  • Enterprise Cluster Topology with MariaDB Enterprise Server 10.6

  • Primary/Replica Topology with MariaDB Enterprise Server 10.6

  • ColumnStore Object Storage Topology with MariaDB Enterprise Server 10.6 and MariaDB Enterprise ColumnStore 23.02

  • ColumnStore Shared Local Storage Topology with MariaDB Enterprise Server 10.6 and MariaDB Enterprise ColumnStore 23.02

  • HTAP Topology with MariaDB Enterprise Server 10.6 and MariaDB Enterprise ColumnStore 23.02

  • Single-Node Enterprise ColumnStore 23.02 with MariaDB Enterprise Server 10.6 and Object Storage

  • Single-Node Enterprise ColumnStore 23.02 with MariaDB Enterprise Server 10.6

  • Enterprise Spider Sharded Topology with MariaDB Enterprise Server 10.6

  • Enterprise Spider Federated Topology with MariaDB Enterprise Server 10.6

Upgrade Instructions

  • Upgrade to MariaDB Enterprise Server 10.6

  • Upgrade from MariaDB Community Server to MariaDB Enterprise Server 10.6

This page is: Copyright © 2025 MariaDB. All rights reserved.

Release Notes for MariaDB Enterprise Server 10.6.17-12

MariaDB Enterprise Server 10.6.17-12 is a maintenance release of MariaDB Enterprise Server 10.6. This release includes a variety of fixes.

MariaDB Enterprise Server 10.6.17-12 was released on 2024-03-11.

Note

MariaDB Enterprise Server 10.6.17-12 introduced a regression which can result in a server crash. Users are encouraged to update to MariaDB Enterprise Server 10.6.17-13. If an update not possible we recommend to increase your current setting for --thread_stack by 100k. Please see the Release Notes for MariaDB Enterprise Server 10.6.17-13 for details.

Changes in Storage Engines

  • This release incorporates MariaDB ColumnStore engine version 23.10.1.

Notable Changes

  • Galera has been updated to 26.4.17

  • AlmaLinux 8 and 9 are now officially supported. RHEL 8 and 9 packages are used for AlmaLinux

  • Deprecation of secure_auth=0 with this release (MDEV-32617)

  • New variable optimizer_adjust_secondary_key_costs (MDEV-33118)

    • This variable changes the optimizer behavior in the case where the optimizer wrongly uses a secondary key instead of a clustered primary key for InnoDB.

    • The different values for the new variable:

      • optimizer_adjust_secondary_key_costs=0 (default)

        • No changes to current model

      • optimizer_adjust_secondary_key_costs=1

        • Ensures that the cost of secondary indexes has a cost of at least 5x times the cost of a primary key

      • optimizer_adjust_secondary_key_costs=2

        • Disable worst_seek optimization and slightly adjust filter cost (add cost of 1 if filter is used)

  • Users with ALL PRIVILEGES on a db will now also see all routine bodies in that db (MENT-1983)

  • More detailed logging for network related errors has been added. Use --log-warnings=4 or higher to enable it. (MENT-2054)

  • Thread ID and database are now added to the log of the SQL error plugin, if sql_error_log_with_db_and_thread_info=ON is set : (MDEV-27087)

Issues Fixed

Can result in data loss

  • BLOB corruption on UPDATE of PRIMARY KEY with FOREIGN KEY (MDEV-31441)

  • Corrupted table after instant ADD COLUMN failed due to attempting to exceed the maximum record length (MDEV-18322)

  • If tables are frequently created, renamed, dropped, a backup cannot be restored. mariadb-backup --prepare might fail or finish OK, but some data files of recently created tables would be corrupted (MDEV-32939)

  • ALTER command, before entering TOI, tries to collect foreign keys of a table. For this it opens the main table with SHARED_HIGH_PRIO MDL lock which disregards any waiting queued lock requests. If there is a DML operation running on the same table, and a real TOI operation as well, this TOI operation tries to BF-abort DML operation. At the same time, because ALTER is not yet TOI, and it runs with HIGH_PRIO MDL lock, it disregards waiting TOI operation, and gets the lock and immediately gets BF-aborted either by TOI directly or by aborted DML operation. Since there is no wsrep transaction for ALTER, it gets BF-aborted by setting killed state for the tread. But before entering TOI, ALTER doesn't check killed state, so it replicates, and applies on the other nodes successfully, but then it rolls back on the local node, causing inconsistency (MDEV-32938)

  • If Galera is enabled with binlog emulation, attempting to set a SAVEPOINT when one of the involved storage engines does not support savepoints, can result in cluster wide inconsistency. A part of a transaction could be replicated to other notes, but a local statement rollback could be triggered. (MDEV-32549)

  • InnoDB after issuing ALTER TABLE...IMPORT TABLESPACE may not be crash safe anymore (MDEV-32269)

  • When a table is created with a virtual column while using sql_mode=ORACLE, the server can crash when the table is changed while using a different setting for sql_mode (MDEV-27744)

    • The virtual column must have been created using:

      • DECODE()

      • LTRIM()

      • RTRIM()

      • LPAD()

      • RPAD()

      • REPLACE()

      • SUBSTR()

Can result in hang or crash

  • Possible deadlock when accessing BLOBs in a corrupted InnoDB table with ROW_FORMAT=COMPRESSED (MDEV-32371)

  • An INSERT .. FROM SELECT with an empty result set crashes with innodb_force_recovery=6 or innodb_read_only=ON (MDEV-31861)

  • A shutdown of the server with innodb_fast_shutdown=0 can hang after the server failed to start up (MDEV-32798)

  • Crash while trying to complain "unsupported meta-data version" on ALTER TABLE...IMPORT TABLESPACE with MySQL 8.0 files (MDEV-29972)

  • Wrong table attribute PAGE_COMPRESSED=1 shown for tables in the InnoDB system tablespace (MDEV-31000)

  • MariaDB crashes with foreign_key_checks=0 when changing a column and adding a foreign key at the same time (MDEV-32638)

  • Sometimes node has been dropped from the cluster on startup Shutdown with async replica (MDEV-31413) with diagnostics like:

[ERROR] Slave SQL: Error 'WSREP has not yet prepared node for application use' on query

and

[ERROR] Slave SQL: Node has dropped from cluster, Gtid 1-1-1, Internal MariaDB error code: 1047" in the server log
  • GTIDs may diverge in Galera cluster after CREATE TABLE AS (MDEV-27806) This can subsequently lead to diagnostics like:

[ERROR] mariadbd: Error writing file '/opt/maria10.1/binlog/BINLOG' (errno: 1950 "Unknown error 1950")"

and node crash:

wsrep::transaction::before_rollback(): Assertion state() == s_executing || state() == s_preparing || state() == s_prepared || state() == s_must_abort || state() == s_aborting || state() == s_cert_failed || state() == s_must_replay` failed
  • SHOW SLAVE STATUS can deadlock an errored replica when a parallel replica worker gets killed at about when SHOW is issued (MDEV-10653)

  • When executing SELECT BINLOG_GTID_POS(@binlog_file...) with the user variable being NULL, the server can crash (MDEV-33045)

  • A Query that uses a specific SQL construct can cause a server crash. The construct is an equality comparison of table-less row subquery and a subquery that has a UNION operation at the top level: (SELECT 'foo', 'bar') = (SELECT col1, col2 FROM t1 ... UNION ...) (MDEV-29070)

  • A DELETE with ORDER BY and semijoin optimization can cause a crash (MDEV-32212)

  • Possible crash when lateral derived in a query is guaranteed to return no rows (MDEV-31279)

  • When using EXCHANGE PARTITION to replace a partition with a table, the server can crash if the to be exchanged table is using a virtual column which is not matching the partitioning key (MDEV-28127)

  • When using INSERT DELAYED with a table using virtual columns, the server can crash (MDEV-29932)

  • When using SELECT from a derived table with using AS OF, the server can crash (MDEV-32082)

  • When using JSON_CONTAINS_PATH in a comparison in a prepared statement, the server can crash on execution of the statement (MDEV-32867)

  • mariadbd --bootstrap / mariadb_install_db hangs when Spider is installed (MDEV-32903)

  • Binlog Checksum of replication user variable events is zeroed by Zlib if part of event data is empty. The bug is a regression of other fixes on a server build with the zlib library. It can show up as a checksum verification error of a user variable event at its reading from binlog, (MDEV-33283)

  • When adding a second semi-sync replica to a primary, it can hang at connect time without receiving any events, until the primary receives an ACK from the first existing replica. This can be indefinite if no new transactions occur on the primary (MDEV-32792)

  • Server hangs on DROP DATABASE after a failing LOCK TABLES on Spider table (MDEV-29667)

  • When a prepared statement with subqueries and window function is executed with sql_mode = ONLY_FULL_GROUP_BY, the server can crash (MDEV-31296)

  • When using two temporary tables in OPTIMIZE TABLE, executed as a prepared statement, the server can crash (MDEV-31523)

  • When calling SP invoking another SP with a parameter requiring a type conversion, the server can crash (MDEV-33270)

  • Possible hang when changing the InnoDB log file size using SET GLOBAL innodb_log_file_size (MENT-1271)

  • If a query's WHERE clause has conditions over more than 128 columns of the same table, optimizer_use_condition_selectivity is 3, or higher, use_stats_tables is not set to NEVER, and statistics for the columns have been collected via ANALYZE TABLE, the server could crash (MENT-2036)

Can result in unexpected behavior

  • SHOW WARNINGS can show wrong foreign key related warnings/errors from an earlier transaction for InnoDB (MDEV-32833)

  • LeakSanitizer errors in mem_heap_create_block_func upon query from I_S.INNODB_SYS_TABLES with LIMIT ROWS EXAMINED (MDEV-32890)

  • Query from I_S.INNODB_SYS_INDEXES exceeding LIMIT ROWS EXAMINED causes ER_UNKNOWN_ERROR and LeakSanitizer errors in rec_copy_prefix_to_buf_old (MDEV-28613)

  • Unexpected ER_ERROR_ON_RENAME upon DROP non-existing FOREIGN KEY with ALGORITHM=COPY (MDEV-22230)

  • FOREIGN_KEY_CHECKS does not prevent non-copy alter from creating invalid FK structure (MDEV-29092)

  • Secondary indexes on VARCHAR columns may be corrupted when the VARCHAR is extended so much that a column prefix index must be used (MDEV-21245)

  • Spider: Valid LEFT JOIN results in ERROR 1064 (MDEV-26247)

  • Syntax error upon query with subquery from Spider table (MDEV-30392)

  • Spider doesn't recognize SEMI-JOIN (MDEV-31645)

  • wsrep_provider_options can be truncated on deep and long directory paths with diagnostics like: "Warning 1265 Data truncated for column 'VARIABLE_VALUE' at row 1" in the server log (MDEV-32634)

  • Mariadb-dump option --delete-master-logs is ignored (MDEV-32953)

  • multi source replication filters breaking GTID semantic (MDEV-26632)

  • If wsrep_gtid_mode=ON is used and wsrep_gtid_domain_id is non-zero, after SST using mariadb-backup GTIDs will become inconsistent both at the domain level, and at the seq_no level (MDEV-31905)

  • wsrep_gtid_domain_id is ignored on any node other than bootstrapped node when the wsrep_gtid_mode is set to ON (MDEV-32740)

  • LONG UNIQUE ... USING HASH can result in an error when used with REPLACE (MDEV-32839)

  • JSON_ARRAYAGG() doesn't evaluate correct charset which can lead to an unexpected result (MDEV-24784)

  • Performance_schema.status_by_thread is missing SSL related entries, which also leads to an empty result set for select * from sys.session_ssl_status; (MDEV-32751)

  • A connection can control RAND() in following connection if used in conjunction with set rand_seed1, rand_seed2 (MDEV-33148)

  • REGEXP_REPLACE converts utf8mb4 supplementary characters to '?' (MDEV-11777)

  • An UPDATE of a column of a FEDERATED table fails with "ERROR 1296 (HY000): Got error 10000 'Error on remote system: 1143: UPDATE command denied to user 'xxx'@'x.x.x.x' for column 'id' in table 'x'' from FEDERATED"

if the table includes an AUTO_INCREMENT column (MDEV-32984)

  • "Read semi-sync reply magic number error" warnings are shown on the primary, if, first, the replica disables semi-synchronous mode (i.e., sets the variable rpl_semi_sync_slave_enabled=OFF) while an existing semi-sync connection is active, and then, the replica IO Thread stops (e.g., due to STOP SLAVE, or an error occurring) (MDEV-32551)

  • CHECK TABLE shows a MyISAM/Aria table as corrupted, as a unique hash key on column prefix is computed incorrectly (MDEV-29954)

  • mysql.slow_log reports time when the query finished, not the start time (MDEV-11628)

  • mariadb-upgrade does not remove mysql.plugin entries for plugins that became bundled. Error message "[ERROR] mariadbd: Plugin 'unix_socket' is already installed." is shown when upgrading (MDEV-32043)

  • If storage engine Spider is loaded upon server startup, Spider related system, and status variables are not available (MENT-2043)

  • Regular expressions cannot be used in queries on tables of type SPIDER (MDEV-32986)

  • Memory leak when purging history of indexed virtual columns : (MDEV-28682)

  • MariaDB Enterprise Backup sometimes shows the error Can't open shared library '/file_key_management.so' (errno: 2, cannot open shared object file: No such file, or directory) when the option --target-dir is not used with --prepare (MDEV-29110)

  • The database part is not case sensitive in Stored Procedure names. This can lead to using the wrong stored procedure, if the same database name is used as lower, and uppercase (MDEV-33019)

  • CREATE UNIQUE INDEX can fail with an incorrect "ERROR 1286 (42000): Unknown storage engine 'partition'" (MDEV-21618)

  • After successful connection, server sets SERVER_STATUS_AUTOCOMMIT in server_status in the OK packet although the global variable autocommit=0 is set (MDEV-32875)

  • In some cases it is possible to create a Spider table which is referencing to a table on the same instance although spider_same_server_link=0 is set (MDEV-29718)

  • Spider fails to auto-discover a table structure with ERROR 12500 (HY000): unknown (MDEV-33008)

  • On Windows the error "InnoDB: Cannot open 'C:\xampp\mysql\data/ib_buffer_pool' for reading: No such file or directory" could be shown (MDEV-32983)

  • REGEXP_REPLACE treats empty strings different than REPLACE in ORACLE mode (MDEV-29095)

  • REPLACE is supposed to remove all conflicting rows of a table. For UNIQUE HASH, REPLACE only removes the first conflicting row, not all conflicting rows (MDEV-32837)

  • The SQL error plugin prints (null) as database if the mariadb client is not using any database to execute the SQL (MDEV-32906)

  • The Enterprise Audit Plugin does not always report the user name (MENT-2035)

Related to performance

  • An ALTER using ALGORITHM=INPLACE or adding new indexes can increase the table space file size (MDEV-26740)

  • History list is not shrunk unless there is a pause in the workload (MDEV-33213)

  • Operations that involve extending InnoDB files can be extremely slow when the data directory resides on an NFS server that uses a smaller block size than 4096 bytes (MDEV-32268)

  • When the size of the working set exceeds innodb_buffer_pool_size, the server can stall for short periods of time (MDEV-33053)

  • Unnecessary writes of not modified undo log pages (MDEV-33137)

  • innodb_undo_log_truncate=ON is blocking page writes (MDEV-33112)

  • innodb_undo_log_truncate=ON prevents fast shutdown (MDEV-33062)

  • Some calls to buf_read_ahead_linear() seem to be useless (MDEV-32068)

  • Opening all .ibd files on InnoDB startup can be slow (MDEV-32027)

  • Adaptive flush recommendation ignores dirty ratio and checkpoint age (MDEV-31939)

  • Possible slowdown when running nested statement with many partitions (MENT-2047)

  • Performance regression due to frequent scan of full buf_pool.flush_list (MENT-2051)

Platforms

In alignment to the enterprise lifecycle, MariaDB Enterprise Server 10.6.17-12 is provided for:

  • AlmaLinux 8 (x86_64, ARM64)

  • AlmaLinux 9 (x86_64, ARM64)

  • CentOS 7 (x86_64)

  • Debian 10 (x86_64, ARM64)

  • Debian 11 (x86_64, ARM64)

  • Debian 12 (x86_64, ARM64)

  • Microsoft Windows (x86_64) (MariaDB Enterprise Cluster excluded)

  • Red Hat Enterprise Linux 7 (x86_64)

  • Red Hat Enterprise Linux 8 (x86_64, ARM64)

  • Red Hat Enterprise Linux 9 (x86_64, ARM64)

  • Rocky Linux 8 (x86_64, ARM64)

  • Rocky Linux 9 (x86_64, ARM64)

  • SUSE Linux Enterprise Server 12 (x86_64)

  • SUSE Linux Enterprise Server 15 (x86_64, ARM64)

  • Ubuntu 20.04 (x86_64, ARM64)

  • Ubuntu 22.04 (x86_64, ARM64)

Some components of MariaDB Enterprise Server might not support all platforms. For additional information, see MariaDB Corporation Engineering Policies".

Installation Instructions

  • MariaDB Enterprise Server 10.6

  • Enterprise Cluster Topology with MariaDB Enterprise Server 10.6

  • Primary/Replica Topology with MariaDB Enterprise Server 10.6

  • ColumnStore Object Storage Topology with MariaDB Enterprise Server 10.6 and MariaDB Enterprise ColumnStore 23.02

  • ColumnStore Shared Local Storage Topology with MariaDB Enterprise Server 10.6 and MariaDB Enterprise ColumnStore 23.02

  • HTAP Topology with MariaDB Enterprise Server 10.6 and MariaDB Enterprise ColumnStore 23.02

  • Single-Node Enterprise ColumnStore 23.02 with MariaDB Enterprise Server 10.6 and Object Storage

  • Single-Node Enterprise ColumnStore 23.02 with MariaDB Enterprise Server 10.6

  • Enterprise Spider Sharded Topology with MariaDB Enterprise Server 10.6

  • Enterprise Spider Federated Topology with MariaDB Enterprise Server 10.6

Upgrade Instructions

  • Upgrade to MariaDB Enterprise Server 10.6

  • Upgrade from MariaDB Community Server to MariaDB Enterprise Server 10.6

This page is: Copyright © 2025 MariaDB. All rights reserved.

Release Notes for MariaDB Enterprise Server 10.6.16-11

MariaDB Enterprise Server 10.6.16-11 is a maintenance release of MariaDB Enterprise Server 10.6. This release includes a variety of fixes.

MariaDB Enterprise Server 10.6.16-11 was released on 2023-12-12.

Fixed Security Vulnerabilities

CVE link)
CVSS base score

CVE-2023-22084

4.9

Changes in Storage Engines

  • This release incorporates MariaDB ColumnStore engine version 23.10.0.

Backports

  • A new view sys.privileges_by_table_by_level in the sys schema, to show privileges granted to a table on a global, schema, or table level. (MENT-2007)

  • Option s3_debug can now be changed without the need to restart the server (MENT-2001)

  • New Time Zone Options %Z and %z for DATE_FORMAT (MENT-1902)

  • Server Audit Log with Milliseconds Precision Timestamps (MENT-1744)

Notable Changes

  • Beginning with this release MariaDB Enterprise Server does not use Transparent Huge Pages (THP) anymore (MENT-2015)

    • Many new platforms have enabled THP by default for new release series. THP interferes with how memory is allocated and freed. THP does not work well with databases or other services that has a long uptime and constantly allocates and frees memory. THP causes excessive usage of memory which can lead to out-of-memory (OOM) crashes. To check if the OS has enabled THP use

cat /sys/kernel/mm/transparent_hugepage/enabled
[always] madvise never

'[always]' means that THP is enabled.

  • Raise notes if indexes cannot be used (MDEV-32203)

    • In case of data type or collation mismatch (different error messages).

    • In case if a table field was replaced with something else (e.g., Item_func_conv_charset) during a condition rewrite.

    • Added options to write warnings and notes to the slow query log for slow queries. New variables added/changed:

      • note_verbosity, which is a set of the options:

        • basic - All old notes

        • unusable_keys - Print warnings about keys that cannot be used for select, delete, or update.

        • explain - Print unusable_keys warnings for EXPLAIN queries.

        • The default is 'basic,explain'.

        • For old installations the notable new behavior is that one will get notes about unusable keys when one does an EXPLAIN for a query.

        • Set either note_verbosity to an empty string or setting sql_notes=0 do disable notes.

      • log_slow_verbosity has a new option 'warnings'. If this is set then warnings and notes generated are printed in the slow query log up to log_slow_max_warnings times per statement.

      • log_slow_max_warnings - Max number of warnings written to slow query log.

    • One can now use =ALL for any 'set' variable to set all options at once. (MDEV-32203)

[mariadb]
note_verbosity=ALL
SET @@note_verbosity=ALL
  • CHACHA20-POLY1305 support when WolfSSL is used (MDEV-31653)

  • The semi-synchronous replication magic number error "[ERROR] Read semi-sync reply magic number error" has been improved to show the semi-sync acknowledgment reported with printing the hex dump of the failing network packet (MDEV-32365)

  • Disable TLS v1.0 and 1.1 for MariaDB. TLSv1.1 removed from the default tls_version system variable. (MDEV-31369)

    • A warning is shown if TLSv1.0 or TLSv1.1 are selected.

Issues Fixed

Can result in data loss

  • With binary log enabled transactions that are filtered out of binlogging by any of binlog_{do,ignore}_db option may be lost in the engine. (MDEV-29989)

  • Assertion failures in log_sort_flush_list upon crash recovery. It is possible that if the server is killed and restarted right after recovery, the second recovery could fail. (MDEV-32029)

  • Race condition between page write completion and log checkpoint on crash recovery. This may break crash recovery in case of an operating system crash or abrupt loss of power or storage connectivity. (MDEV-32511)

  • Assertion fails in MDL_context::acquire_lock upon parallel replication of CREATE SEQUENCE (MDEV-31792)

Can result in hang or crash

  • A hang or crash could be observed in parallel replication of STATEMENT binlog format transactions modifying temporary tables e.g., witnessed in rpl.rpl_parallel_temptable failure. (MDEV-10356)

  • A failure that occurs due to unnecessary replication of CACHE INDEX and LOAD INDEX INTO CACHE although this is a local operation. (MDEV-24912)

  • Rowid filter does not process a storage engine error correctly. A query that's executing a locking read and is using the Rowid Filter could cause a server crash if it has encountered a Lock Wait Timeout or Deadlock or a similar error when building the Rowid Filter. (MDEV-25163)

  • Possible server crash when executing OPTIMIZE TABLE. InnoDB fails to check the overflow buffer while applying the operation to the table that was rebuilt (MDEV-28122)

  • Crash when HAVING in a correlated subquery references columns in the outer query (MDEV-29731)

  • Due to a flaw in the SST scripts, it was not possible to execute SST when datadir, or some innodb log directory points to a path that is actually a symlink to the actual data directory. (MDEV-29893)

  • A cluster node crashes, which sometimes occurs in situations where brute force (BF) thread conflicting requested lock, and was trying to kill the victim transaction, but this victim transaction was also handled by brute force thread. (MDEV-30217)

  • Possible race condition between InnoDB purge and rollback of alter operation. Alter rollback marks the index as corrupted while the purge is working on the same index (MDEV-30802)

  • Server can crash when a table of type SPIDER starts with a comment string which is not a parameter for SPIDER. (MDEV-31117)

  • Node crashes when trying to execute "CREATE TABLE ... WITH SYSTEM VERSIONING AS SELECT ..." (MDEV-31285)

  • Lock wait timeout with INSERT-SELECT, autoinc, and statement-based replication (MDEV-31482)

  • Too strict assertion which leads to a problem since with the BINLOG statement we can execute binlog events on master also (not only in applier). (MDEV-31651)

  • Galera cannot support wsrep_forced_binlog_format=[MIXED|STATEMENT] during CREATE TABLE AS SELECT. But a crash in the form of an assertion is an overreaction. Now a warning is issued instead. (MDEV-31660)

  • The MariaDB Enterprise Cluster node does not return from donor/desynced state to synced state with wsrep_mode=BF_ABORT_mariadb-backup (MDEV-31737)

  • When a MariaDB Enterprise Cluster node is a replica of another MariaDB Enterprise Cluster and optimistic replication is used, a node can hang. To support optimistic parallel replication the replication slave abort needs to be skipped if a node remains in the cluster (wsrep_ready==ON) and replication is configured for optimistic or aggressive retry logic. (MDEV-31833)

  • After crash recovery, the server crashes with error "InnoDB: Checksum mismatch in the first page of file" in the server log (MDEV-31851)

  • Possible server crash when setting SPIDER option spider_delete_all_rows to 0 and delete all rows of a spider table (MDEV-31996)

  • InnoDB may hang with a low probability under any write workload. (MDEV-32049)

  • InnoDB may hang when using a small innodb_buffer_pool_size (MDEV-32134)

  • Use of nested row constructs in the left expression of an IN subquery should produce an error. Example: (a,(b,c)) IN (SELECT ...). In some degenerate cases, the error was not detected, and this causes a crash at a further stage in query processing. (MDEV-32320)

  • A table-less subquery with a LIMIT clause with non-zero offset, like ( SELECT two LIMIT 1 OFFSET 1) can produce unexpected results. If used inside ORDER BY, it can cause a crash. (MDEV-32324)

  • InnoDB may hang when running out of buffer pool (MDEV-32588)

  • Possible crash in the full-text search plugin parser when using FULLTEXT...WITH PARSER. (MDEV-32578)

  • Intermittent crashes when using SEQUENCE in combination with Galera (MDEV-32024)

  • When two clients execute FLUSH TABLES WITH READ LOCK/UNLOCK TABLES on a Galera node, the node would sometimes get stuck in a paused state. This can cause the next requests to fail. (MDEV-32282)

  • Sometimes a node has been dropped from the cluster on startup/shutdown with async replication enabled due to inconsistency issues with the mysql.gtid_slave_pos table (between master and replica nodes), because previously this table was not previously replicated within the cluster. (MDEV-31413)

  • Server crashes in JOIN::cleanup after erroneous query with view (MDEV-32164)

  • Possible server crashes in some create table-like scenarios where some generated indexes were automatically dropped. (MDEV-32449)

  • Server crashes in check_sequence_fields upon CREATE TABLE .. SEQUENCE=1 AS SELECT .. (MDEV-29771)

  • Crash when searching for the best split of derived table (MDEV-32064)

  • InnoDB: Failing assertion purge_sys.tail.trx_no <= purge_sys.rseg->last_trx_no() could cause a crash some time after a recovered incomplete transaction was rolled back after crash recovery. This may cause a crash loop. (MDEV-30100)

  • When a new user is connecting or a user is changing the password while FLUSH PRIVILEGES is executed, the server can crash (MENT-1707)

Can result in unexpected behavior

  • When ssl-mode=CA_VERIFY is used and mariadb-backup is selected as the SST method an incremental state transfer(IST) may be rejected (MENT-2016)

    • The following error will be shown in the server log

WSREP_SST: [ERROR] Donor does not know my secret! (20231003 15:29:10.448)
  • An SST will be triggered instead, which usually takes longer to complete.

  • Prefix keys for CHAR return error "ERROR 1062 (23000): Duplicate entry 'ß' for key 'a' " for MyISAM and Aria when inserting data (MDEV-30048)

  • Possible wrong results of DISTINCT with NOPAD collations when SET big_tables=1; is set (MDEV-30050)

  • When executing a statement with "WHERE inet6_column IN ('','::1')", an empty string would also return values of "::", also they are not equal. (MDEV-31719)

  • Missed kill when the SQL thread goes to wait for parallel slave worker queues to drain. KILL query did not affect a replication thread which remained alive, unexpectedly by the user. (MDEV-29974)

  • InnoDB tries to purge non-delete-marked records of an index on a virtual column prefix. An error like "InnoDB: tried to purge non-delete-marked record in index b of table test.t is shown in the server log (MDEV-30024)

  • Corrupt index(es) on busy table when using FOREIGN KEY. Error "InnoDB: Flagged corruption of INDEX_NAME in table DBNAME.TBLNAME in purge" in the server log. (MDEV-30531)

  • lock_row_lock_current_waits counter in information_schema.innodb_metrics may become negative (MDEV-30658)

  • InnoDB Recovery doesn't display encryption message when no encryption configuration passed (MDEV-31098)

  • SHOW REPLICA STATUS Last_SQL_Errno race condition on Errored replica restart. A contradictory YES of slave_running_status and an error code in Last_SQL_Errno will be shown (MDEV-31177)

  • Wrong information about innodb_checksum_algorithm in the information_schema.SYSTEM_VARIABLES. NONE or STRICT_NONE, or STRICT_INNODB should not be shown anymore (MDEV-31473)

  • Auto-increment no longer works for explicit FTS_DOC_ID (MDEV-32017)

  • In some cases, replaying transactions on other MariaDB Enterprise Cluster nodes results in an wrong "Failed to insert streaming client" warning (MDEV-32051)

  • Wrong bit encoding using COALESCE (MDEV-32244)

  • getting error 'Illegal parameter data types row and bigint for operation '+' ' when using ITERATE in a FOR..DO (MDEV-32275)

  • While checking for altered column in foreign key constraints, InnoDB fails to ignore virtual columns (MDEV-32337)

  • Write-ahead logging is broken for freed pages (MDEV-32552)

  • seconds_behind_master is inaccurate for Delayed replication (MDEV-32265)

  • InnoDB may fail to recover after being killed in fil_delete_tablespace() with note "InnoDB: Multi-batch recovery needed at LSN 78671708" in the server log. Setting innodb_force_recovery=1 can be used as a workaround. (MDEV-31826)

  • The wsrep_sst_method variable can be set to an invalid value using the SET statement. (MDEV-31470)

  • A query over FEDERATED table that uses a Common Table Expression and is executed by pushing it down to a Federated backend could fail with "Unknown error 10000" error. (MENT-1668)

  • Misleading help text for mysqlbinlog (mariadb-binlog) -T/--table option (MDEV-25369)

  • mbstream breaks page compression on XFS (MDEV-25734)

  • MyISAM tables took transactional metadata locks although there where no active transaction. (MDEV-28820)

  • "rpm --setugids" breaks PAM authentication (MDEV-30904)

  • A multi-row Insert into an empty table fails if the table has a unique index using hash. CHECK TABLE returns with "Table 't1' is marked as crashed and should be repaired" (MDEV-32015)

  • wrong table name in InnoDB's "row too big" errors (MDEV-32128)

  • A prepared statement can return a wrong result with a missing row, if IS NULL is used in the query (MDEV-9938)

  • Slow log Rows_examined for the slow_log can be out of range. In this case, the server log includes "([ERROR] Unable to write to mysql.slow_log)" (MDEV-30820)

  • An incorrect examined rows number is used in some cases like in the slow query log, with LIMIT ROWS EXAMINED, or with ANALYZE FORMAT=JSON when a query gets executed inside of a function. Each stored function call doubles the current count during processing (MDEV-31742)

  • CONVERT TABLE TO PARTITION returns with "ER_TABLEACCESS_DENIED_ERROR (1142)" although the user has sufficient privileges to execute the statement (MENT-1993)

Related to performance

  • Create separate tpool thread for async aio (MDEV-31095)

  • Optimize is_file_on_ssd() to speedup opening tablespaces on Windows (MDEV-32228)

  • Significant slowdown for query with many outer joins (MDEV-32351)

  • An incorrect examined rows number is used in some cases like in the slow query log, with LIMIT ROWS EXAMINED, or with ANALYZE FORMAT=JSON when an executed query includes a stored function Each stored function call doubles the current count during processing (MDEV-32475)

  • UNDO logs still growing for write-intensive workloads (MDEV-32050)

  • Replication stops when there exists an exclusive lock on an InnoDB supremum record in prepared transactions on the replica. (MDEV-30165)

  • Key not used when IN clause has both signed and unsigned values (MDEV-31303)

  • Parallel replication deadlock victim preference code erroneously removed. As a result, parallel slave could retry transaction execution more times than necessary. (MDEV-31655)

  • Executing a KILL QUERY or KILL CONNECTION or an enabled parallel replication can lead to performance degradation as conflicts wait for the time of --innodb-lock-wait-timeout. This can be seen with SHOW PROCESSLIST if one worker thread is in the "killed" state and some other worker thread is stuck in a query (MDEV-32096)

  • Disable read-ahead for temporary tablespace (MDEV-32145)

Related to install and upgrade

  • mysql_install_db doesn't properly grant proxy privileges to all default root user accounts (MDEV-21194)

  • The second node cannot be started because Galera SST rsync wants to replicate snapshot directory when datadir is on an NetApp storage with NFS access (MDEV-31332)

Platforms

In alignment to the enterprise lifecycle, MariaDB Enterprise Server 10.6.16-11 is provided for:

  • CentOS 7 (x86_64)

  • Debian 10 (x86_64, ARM64)

  • Debian 11 (x86_64, ARM64)

  • Debian 12 (x86_64, ARM64)

  • Microsoft Windows (x86_64) (MariaDB Enterprise Cluster excluded)

  • Red Hat Enterprise Linux 7 (x86_64)

  • Red Hat Enterprise Linux 8 (x86_64, ARM64)

  • Red Hat Enterprise Linux 9 (x86_64, ARM64)

  • Rocky Linux 8 (x86_64, ARM64)

  • Rocky Linux 9 (x86_64, ARM64)

  • SUSE Linux Enterprise Server 12 (x86_64)

  • SUSE Linux Enterprise Server 15 (x86_64, ARM64)

  • Ubuntu 20.04 (x86_64, ARM64)

  • Ubuntu 22.04 (x86_64, ARM64)

Some components of MariaDB Enterprise Server might not support all platforms. For additional information, see MariaDB Corporation Engineering Policies".

Installation Instructions

  • MariaDB Enterprise Server 10.6

  • Enterprise Cluster Topology with MariaDB Enterprise Server 10.6

  • Primary/Replica Topology with MariaDB Enterprise Server 10.6

  • ColumnStore Object Storage Topology with MariaDB Enterprise Server 10.6 and MariaDB Enterprise ColumnStore 23.02

  • ColumnStore Shared Local Storage Topology with MariaDB Enterprise Server 10.6 and MariaDB Enterprise ColumnStore 23.02

  • HTAP Topology with MariaDB Enterprise Server 10.6 and MariaDB Enterprise ColumnStore 23.02

  • Single-Node Enterprise ColumnStore 23.02 with MariaDB Enterprise Server 10.6 and Object Storage

  • Single-Node Enterprise ColumnStore 23.02 with MariaDB Enterprise Server 10.6

  • Enterprise Spider Sharded Topology with MariaDB Enterprise Server 10.6

  • Enterprise Spider Federated Topology with MariaDB Enterprise Server 10.6

Upgrade Instructions

  • Upgrade to MariaDB Enterprise Server 10.6

  • Upgrade from MariaDB Community Server to MariaDB Enterprise Server 10.6

This page is: Copyright © 2025 MariaDB. All rights reserved.

Release Notes for MariaDB Enterprise Server 10.6.15-10

MariaDB Enterprise Server 10.6.15-10 is a maintenance release of MariaDB Enterprise Server 10.6. This release includes a variety of fixes.

MariaDB Enterprise Server 10.6.15-10 was released on 2023-09-11.

Changes in Storage Engines

  • This release originally incorporated MariaDB ColumnStore engine version 23.02.4.

  • This release now incorporates MariaDB ColumnStore engine version 23.10.0.

Backports

  • JSON_OVERLAPS() has been backported. (MENT-1853)

    • The JSON_OVERLAPS() function can be used to compare two JSON documents to determine if they have any key-value pairs or array elements in common.

SELECT JSON_OVERLAPS('{"A": 1, "B": {"C":2}}', '{"A": 2, "B": {"C":2}}') AS is_overlap;
+---------------------+
| is_overlap          |
+---------------------+
| 1                   |
+---------------------+
  • JSON_SCHEMA_VALID() has been backported. (MENT-1796)

    • The JSON_SCHEMA_VALID() function can be used to validate a JSON document against a JSON schema, as documented by the JSON Schema Draft 2020.

    • This function can also be used in a CHECK constraint to verify that JSON documents are only stored in the database if they include required items and that the values are within a given range and length.

Notable Changes

  • The package for the cracklib_password_check plugin includes an SELinux policy, allowing the plugin to work with SELinux. (MDEV-18374)

  • MariaDB Enterprise Backup reports detailed recovery progress during mariadb-backup --prepare. (MDEV-29911)

  • With Optimizer Trace, a sel_arg_alloc_limit_hit record is written when MAX_SEL_ARGS is reached. (MDEV-30964)

    • MAX_SEL_ARGS is one of the limits in the optimizer that triggers short-cut of time-intensive or memory-intensive analysis for complex WHERE clauses.

    • For example:

SELECT
 JSON_DETAILED(JSON_EXTRACT(trace, '$**.setup_range_conditions'))
 FROM information_schema.OPTIMIZER_TRACE;
[
   [
       {
           "sel_arg_alloc_limit_hit":
           {
              "alloced_sel_args": 16001
           }
       }
   ]
]
  • ANALYZE FORMAT=JSON output includes InnoDB statistics. (MDEV-31577)

    • For example:

"table": {
 "table_name": "t1",
 ...
 "r_engine_stats": {
 "pages_accessed": integer,
 "pages_updated" : integer,
 "pages_read_count" : integer,
 "pages_read_time_ms" : double_val,
 "old_rows_read" : integer,
 },
  • Slow query log output includes InnoDB engine information. (MDEV-31558)

    • InnoDB engine information output is enabled with --log-slow-verbosity=innodb

    • Sample output:

# Pages_accessed: 184 Pages_read: 95 Pages_updated: 0 Undo_rows_read: 1 

# Pages_read_tim e: 17.0204 Engine_time: 248.1297
  • Engine_time is the time in milliseconds spent inside engine calls.

  • Page_* variables are supported for the InnoDB storage engine.

    • For the Spider storage engine, the default values and behavior of some system variables has changed: (MDEV-31524)

    • Prior to this release:

      • These variables used a value of -1 (the default) to indicate that Spider would use the default table value, and this value was not user visible.

      • Spider table parameters could set values, but these values would be overridden with the system variable value if the system variable was set to a value other than -1.

    • Starting with this release:

      • The default value for these system variables has been updated to reflect the actual default table value, rather than -1.

      • Where a value is set by a table parameter, this value overrides the system default and the value set by Spider system variable.

      • If a table parameter is not set, the Spider system variable's value is used. This behavior is unchanged.

    • See "Interface Changes" for a full list of updated default values.

Issues Fixed

Can result in data loss

  • With InnoDB storage engine, when innodb_undo_log_truncate=ON, performing a recovery can result in a corrupted undo log. (MDEV-31373)

  • With InnoDB storage engine, when database encryption is enabled only on a replica, InnoDB pages can be corrupted. (MDEV-31347, MDEV-31156)

  • With InnoDB storage engine, when innodb_undo_log_truncate=ON, backup and recovery can fail. (MDEV-31487)

  • With InnoDB storage engine, if two MariaDB Server instances using InnoDB are started with the same data directory there can be data loss. (MDEV-31568)

Can result in a hang or crash

  • With InnoDB storage engine, a hang can occur with the following error: (MDEV-31353)[Note] InnoDB: Set innodb_force_recovery=1 to ignore corrupted pages.

  • With Aria storage engine, when Aria encryption is enabled and used but an encryption plugin is not loaded, the server can crash. (MDEV-26258)

  • With Galera Cluster, a Galera node can fail while aborting a transaction. (MDEV-30963)

    • Assertion failure: !lock.was_chosen_as_deadlock_victim

  • With Galera Cluster, when wsrep_sst_donor and wsrep_cluster_address are set to NULL rather than an empty string, the server can crash. (MDEV-28433)

  • When accessing information_schema.INNODB_BUFFER_PAGE or information_schema.INNODB_BUFFER_PAGE_LRU after starting the server and processing a crash recovery, the server can crash. (MDEV-31386)

  • When optimizer_switch='optimize_join_buffer_size=off' is set, the server can crash. (MDEV-31348)

  • When executing a SELECT query using an index for GROUP BY and filesort, the server can crash. (MDEV-30143)

  • With MariaDB Connector/C, when the mysql_list_fields() function is called against a view, the server can crash. (MDEV-30159)

  • With Aria storage engine, changing aria_sort_buffer_size settings to huge numbers and executing INSERT/UPDATE can result in a crash. (MDEV-28054)

  • With InnoDB storage engine, when slave_parallel_mode is optimistic and slave_parallel_threads is greater than 0, an ALTER SEQUENCE can fail with an out-of-order binlog error if the SEQUENCE uses InnoDB. (MDEV-31503)

    • Prior to this release, the following error can be raised:Last_Error: Error 'An attempt was made to binlog GTID 0-1-100 which would create an out-of-order sequence number with existing GTID 0-1-100 and gtid stric mode is enabled' on query. Default database: 'test'. Query: 'alter sequence s1 restart with 1' will be shown.

  • With replication, when binlog_format=ROW is set on the primary server and slave_run_triggers_for_rbr=1 is set on the replica server, the replica server can crash when calling a function from a different database within a TRIGGER on the replica. (MDEV-29894)

  • During a simple SELECT, a crash can occur in Type_handler_json_common::make_json_valid_expr (MENT-1875)

  • With SQL_MODE=ORACLE, a memory leak can occur on shutdown. (MDEV-26186)

  • Queries in the form SELECT DISTINCT function_returning_string(aggregate_func(...)) ... GROUP BY ... could produce an assertion failure or wrong result. (MDEV-31743)

  • With InnoDB storage engine, InnoDB can purge history too early, causing crash on undo record access in MVCC read. (MDEV-31355)

  • With InnoDB storage engine, when innodb_change_buffering=changes and innodb_file_per_table=0, the server can hang. (MDEV-31088)

  • With InnoDB storage engine, purge on partitioned table can lead to a crash. (MDEV-31264)

  • With InnoDB storage engine, when executing a statement that rebuilds an InnoDB table (such as TRUNCATE TABLE, OPTIMIZE TABLE, ALTER TABLE, or as part of executing innodb_undo_log_truncate=ON), the server can hang. (MDEV-31442)

  • With InnoDB storage engine, when a BINARY(0) or VARBINARY(0) column in an InnoDB table is indexed, the server can crash. (MDEV-19216)

  • With InnoDB storage engine, when reading or writing InnoDB data pages, asynchronous I/O errors can cause the server to crash. (MDEV-27593)

  • For a System Versioned table, when adding a key to a virtual column, the server can crash. (MDEV-31416)

  • Setting session_track_system_variables globally to an invalid value can cause the server to crash. (MDEV-25237)

  • With Galera Cluster, a cluster node can crash during IST when rolling back a transaction. (MDEV-29724)

  • Replication from an older MariaDB Server version to a newer MariaDB Server version can break, and the server may crash. (MENT-1935)

    • A mismatch in hash values was caused by use of different hash functions, causing rows in tables having explicit or implicit unique hash indexes to be treated as different rows between different versions of MariaDB Server even though the data in the rows was the same.

Can result in unexpected behavior

  • For a System Versioned table with non-versioned columns, if the initial INSERT includes a versioned column, an "on duplicate key update" for the non-versioned column generates a history record. (MDEV-23100)

    • With Spider storage engine, setting a system variable overrides the value set as a table parameter. (MDEV-31524)

  • With InnoDB storage engine, secondary indexes can be corrupted when a previously freed page is later reused. This is caused by change buffer entries being left behind when a page is freed. (MDEV-31385)

  • The "pam_user_map" module does not correctly handle usernames or group names containing the "@" character. (MDEV-31336)

  • With some Unicode collations, JSON functions can return incorrect results. (MDEV-23187)

  • With sql_mode=ORACLE, information_schema.ROUTINES.ROUTINE_DEFINITION does not correctly contain the PACKAGE or PACKAGE BODY (MDEV-30662)

  • Stored routines with ROW variables set by subselects can produce incorrect results. (MDEV-31250)

  • Integer multiplication, DIV, MOD, or ROUND/TRUNCATE could return unexpected results when an argument is evaluated as -9223372036854775808 (MDEV-30932)

  • With Galera Cluster, when using a KILL QUERY statement on a Galera node that executes user transactions, GTID sequence drift can occur between writer and appliers nodes. At the same time, data consistency is maintained and wsrep_last_committed is in sync. (MDEV-31075)

  • With Galera Cluster, creating a TEMPORARY SEQUENCE can cause inconsistency. (MDEV-31335)

  • With Galera Cluster, the state of the cluster can only be retrieved from the primary component. (MDEV-21479)

  • information_schema.PARAMETERS can include outdated data when a stored routine is changed in one session while the stored routine is being used in a second session. (MDEV-31064)

  • Queries that use multiple RANK window functions can produce the wrong result. (MDEV-20010)

  • Queries that use the < "less than" operator to compare a string with a prefixed BLOB key produce the wrong result. (MDEV-31800)

  • Recursive CTE execution is interrupted without errors or warnings when max_recursive_iterations is reached. (MDEV-31214)

    • Starting with this release, a warning occurs when max_recursive_iterations is reached:Warning 1931 Query execution was interrupted. The query exceeded max_recursive_iterations = 1000. The query result may be incomplete.

  • On Microsoft Windows, when lower_case_table_names=2, SHOW TABLES does not work properly. (MDEV-30765)

  • When the system is busy, STOP REPLICA can take a long time. (MDEV-13915)

  • With parallel replication, Seconds_Behind_Master can show a wrong value. (MDEV-30619)

  • With replication for System Versioned tables, having a parent table and a child table WITH SYSTEM VERSIONING where child table has a Foreign Key CASCADE generates orphan rows on replica. (MDEV-31313)

  • With replication, when in read-only mode, XA COMMIT/XA ROLLBACK on the replica fails to return an error. (MDEV-30978)

  • mariadb-dump --force can stop with the error Couldn't execute 'SHOW CREATE FUNCTION object': even though --force should cause the error to be ignored. (MDEV-31092)

  • A query using DISTINCT, LIMIT with offset, and subselect to join tables produces an unexpected result. (MDEV-28285)

  • The TO_CHAR() function returns an unclear error when an incorrect argument has been provided for the format string: (MDEV-29152)

ER_STD_INVALID_ARGUMENT (3047): Invalid argument error: data type of first argument must be type date/datetime/time or string in function to_char.
  • With the ColumnStore storage engine and Federated storage engine, ANALYZE can return the incorrect value 0 for r_rows (MDEV-29284)

  • With InnoDB storage engine, SET GLOBAL innodb_undo_log_truncate=ON does not free space when no undo logs exist. (MDEV-31382)

  • With InnoDB storage engine, freed data pages are not always scrubbed. (MDEV-31253)

  • With InnoDB storage engine, when setting innodb_open_files to a number lower than the number of tables used, an error can be shown in the server log and the operation will be aborted. (MDEV-31256)

  • ALTER TABLE .. MODIFY COLUMN can break foreign key constraints and lead to unrestorable dumps. (MDEV-31086)

  • With InnoDB storage engine, three concurrent DELETE by a UNIQUE key can cause an unexpected deadlock. (MDEV-10962)

  • With InnoDB storage engine, innochecksum fails with Floating point exception error. (MDEV-31641)

  • With InnoDB storage engine, server status variables Innodb_row_lock_time, Innodb_row_lock_time_avg and Innodb_row_lock_time_max are reported in seconds instead of milliseconds. (MDEV-29311)

  • With InnoDB storage engine, a duplicate entry is allowed into a UNIQUE column. (MDEV-31120)

  • With InnoDB storage engine, in some rare cases InnoDB tables are being incorrectly flagged as corrupted on an I/O bound server. (MDEV-31767)

  • With HashiCorp key management plugin, possible memory leaks. (MENT-1874)

  • Using functions MAX() or MIN() with functions ROUND(time), CEILING(time), or FLOOR(time) as an argument can return wrong results. (MDEV-23838)

  • Querying a table with a Virtual Column, when the query has a WHERE clause, can return no results. (MENT-1925)

  • For transaction precise System Versioned tables, UPDATE can return an unexpected error: ERROR 1761 (23000): Foreign key constraint for table 'xxx', record 'yyy' would lead to a duplicate entry in table 'xxx', key 'PRIMARY' (MDEV-25644)

  • Assertion const_item_cache == true failed in Item_func::fix_fields when a flow control statement (such as IF()) was used in a generated column. (MDEV-31319)

  • Creating a table with a foreign key (with a cascade action) defined on a base column of a virtual column is not rejected. (MDEV-18114, MDEV-31322)

    • Starting with this release, it is no longer possible to create STORED generated columns and CHECK constraints when values of the affected columns can be changed by foreign key constraint actions, such as SET NULL or ON UPDATE CASCADE.

      • Starting with this release, this results in an error like: ERROR 1901 (HY000): Function or expression 'f_id' cannot be used in the GENERATED ALWAYS AS clause of 'v_id'

    • Starting with this release, for existing tables with STORED generated columns, SET NULL and ON UPDATE CASCADE are ignored.

Related to performance

  • With InnoDB storage engine, performance regression vs MariaDB Enterprise Server 10.5 for full index scans when innodb_flush_method=fsync and I/O bound. (MENT-1933)

  • With InnoDB storage engine, performance regression vs MariaDB Enterprise Server 10.5 for LOAD DATA into InnoDB tables with partitions. (MENT-1938)

  • If a long-running query on one connection uses a table subject to a ANALYZE TABLE on another connection to collect statistics, all further queries on that table had to wait for the long-running query to finish. (MENT-1937)

  • With partitioning, possible slow down of queries. (MDEV-24712)

  • With InnoDB storage engine, linear read-ahead (controlled by the innodb_read_ahead_threshold system variable) does not work as expected. This can impact performance of mariadb-dump and some queries that perform a full table scan. (MDEV-29967)

  • With InnoDB storage engine, query execution is slow due to incorrect estimates for range access paths. (MDEV-30684)

    • Range access paths are constructed when a query's WHERE clause compares indexed columns with constants.

    • Having wrong estimates can cause the optimizer to pick sub-optimal query plan, which may result in a slow query execution.

Related to install and upgrade

  • mariadb-upgrade can crash with Error ""Cannot load from mysql.proc. The table is probably corrupted"" (MDEV-28915)

    • This can occur when upgrading from a release series that uses the utf8mb3 character set for utf8 to a release series that uses utf8mb4 for the utf8 character set.

Interface Changes

  • aria_sort_buffer_size system variable maximum value changed from 9223372036854775807 to 1152921504606846975 (MDEV-28054)

  • aria_sort_buffer_size system variable minimum value changed from 4096 to 16376 (MDEV-28054)

  • ER_JSON_INVALID_VALUE_FOR_KEYWORD error code added (MENT-1796)

  • ER_JSON_SCHEMA_KEYWORD_UNSUPPORTED error code added (MENT-1796)

  • ER_QUERY_EXCEEDED_ROWS_EXAMINED_LIMIT error code removed (MDEV-31214)

  • ER_QUERY_RESULT_INCOMPLETE error code added (MDEV-31214)

  • ER_QUERY_TIMEOUT error code removed

  • ER_UNUSED_1 error code added

  • JSON_OVERLAPS() function added (MENT-1853)

  • JSON_SCHEMA_VALID() function added (MENT-1796)

  • myisam_sort_buffer_size system variable maximum value changed from 18446744073709551615 to 1152921504606846975 (MDEV-28054)

Spider Storage Engine

  • spider_auto_increment_mode system variable default value changed from -1 to 0 (MDEV-31524)

  • spider_bgs_first_read system variable default value changed from -1 to 2 (MDEV-31524)

  • spider_bgs_mode system variable default value changed from -1 to 0 (MDEV-31524)

  • spider_bgs_second_read system variable default value changed from -1 to 100 (MDEV-31524)

  • spider_bka_mode system variable default value changed from -1 to 1 (MDEV-31524)

  • spider_bka_table_name_type system variable default value changed from -1 to 0 (MDEV-31524)

  • spider_buffer_size system variable default value changed from -1 to 16000 (MDEV-31524)

  • spider_bulk_size system variable default value changed from -1 to 16000 (MDEV-31524)

  • spider_bulk_update_mode system variable default value changed from -1 to 0 (MDEV-31524)

  • spider_bulk_update_size system variable default value changed from -1 to 16000 (MDEV-31524)

  • spider_casual_read system variable default value changed from -1 to 0 (MDEV-31524)

  • spider_connect_timeout system variable default value changed from -1 to 6 (MDEV-31524)

  • spider_crd_bg_mode system variable default value changed from -1 to 2 (MDEV-31524)

  • spider_crd_interval system variable default value changed from -1 to 51 (MDEV-31524)

  • spider_crd_mode system variable default value changed from -1 to 1 (MDEV-31524)

  • spider_crd_sync system variable default value changed from -1 to 0 (MDEV-31524)

  • spider_crd_type system variable default value changed from -1 to 2 (MDEV-31524)

  • spider_crd_weight system variable default value changed from -1 to 2 (MDEV-31524)

  • spider_delete_all_rows_type system variable default value changed from -1 to 1 (MDEV-31524)

  • spider_direct_dup_insert system variable default value changed from -1 to 0 (MDEV-31524)

  • spider_direct_order_limit System Variable system variable default value changed from -1 to 9223372036854775807 (MDEV-31524)

  • spider_error_read_mode system variable default value changed from -1 to 0 (MDEV-31524)

  • spider_error_write_mode system variable default value changed from -1 to 0 (MDEV-31524)

  • spider_first_read system variable default value changed from -1 to 0 (MDEV-31524)

  • spider_init_sql_alloc_size system variable default value changed from -1 to 1024 (MDEV-31524)

  • spider_internal_limit system variable default value changed from -1 to 9223372036854775807 (MDEV-31524)

  • spider_internal_offset system variable default value changed from -1 to 0 (MDEV-31524)

  • spider_internal_optimize system variable default value changed from -1 to 0 (MDEV-31524)

  • spider_internal_optimize_local system variable default value changed from -1 to 0 (MDEV-31524)

  • spider_load_crd_at_startup system variable default value changed from -1 to 1 (MDEV-31524)

  • spider_load_sts_at_startup system variable default value changed from -1 to 1 (MDEV-31524)

  • spider_low_mem_read system variable default value changed from -1 to 1 (MDEV-31524)

  • spider_max_order system variable default value changed from -1 to 32767 (MDEV-31524)

  • spider_multi_split_read system variable default value changed from -1 to 100 (MDEV-31524)

  • spider_net_read_timeout system variable default value changed from -1 to 600 (MDEV-31524)

  • spider_net_write_timeout system variable default value changed from -1 to 600 (MDEV-31524)

  • spider_quick_mode system variable default value changed from -1 to 3 (MDEV-31524)

  • spider_quick_page_byte system variable default value changed from -1 to 10485760 (MDEV-31524)

  • spider_quick_page_size system variable default value changed from -1 to 1024 (MDEV-31524)

  • spider_read_only_mode system variable default value changed from -1 to 0 (MDEV-31524)

  • spider_reset_sql_alloc system variable default value changed from -1 to 1 (MDEV-31524)

  • spider_second_read system variable default value changed from -1 to 0 (MDEV-31524)

  • spider_select_column_mode system variable default value changed from -1 to 1 (MDEV-31524)

  • spider_selupd_lock_mode system variable default value changed from -1 to 1 (MDEV-31524)

  • spider_semi_split_read system variable default value changed from -1 to 2 (MDEV-31524)

  • spider_semi_split_read_limit system variable default value changed from -1 to 9223372036854775807 (MDEV-31524)

  • spider_semi_table_lock system variable default value changed from 1 to 0 (MDEV-31524)

  • spider_semi_table_lock_connection system variable default value changed from -1 to 1 (MDEV-31524)

  • spider_skip_default_condition system variable default value changed from -1 to 0 (MDEV-31524)

  • spider_skip_parallel_search system variable default value changed from -1 to 0 (MDEV-31524)

  • spider_split_read system variable default value changed from -1 to 9223372036854775807 (MDEV-31524)

  • spider_store_last_crd system variable default value changed from -1 to 1 (MDEV-31524)

  • spider_store_last_sts system variable default value changed from -1 to 1 (MDEV-31524)

  • spider_strict_group_by system variable default value changed from -1 to 1 (MDEV-31524)

  • spider_sts_bg_mode system variable default value changed from -1 to 2 (MDEV-31524)

  • spider_sts_interval system variable default value changed from -1 to 10 (MDEV-31524)

  • spider_sts_mode system variable default value changed from -1 to 1 (MDEV-31524)

  • spider_sts_sync system variable default value changed from -1 to 0 (MDEV-31524)

  • spider_udf_ct_bulk_insert_interval system variable default value changed from -1 to 10 (MDEV-31524)

  • spider_udf_ct_bulk_insert_rows system variable default value changed from -1 to 100 (MDEV-31524)

  • spider_udf_ds_bulk_insert_rows system variable default value changed from -1 to 3000 (MDEV-31524)

  • spider_udf_ds_table_loop_mode system variable default value changed from -1 to 0 (MDEV-31524)

  • spider_udf_ds_use_real_table system variable default value changed from -1 to 0 (MDEV-31524)

  • spider_use_handler system variable default value changed from -1 to 0 (MDEV-31524)

  • spider_use_table_charset system variable default value changed from -1 to 1 (MDEV-31524)

Platforms

In alignment to the enterprise lifecycle, MariaDB Enterprise Server 10.6.15-10 is provided for:

  • CentOS 7 (x86_64)

  • Debian 10 (x86_64, ARM64)

  • Debian 11 (x86_64, ARM64)

  • Microsoft Windows (x86_64) (MariaDB Enterprise Cluster excluded)

  • Red Hat Enterprise Linux 7 (x86_64)

  • Red Hat Enterprise Linux 8 (x86_64, ARM64)

  • Red Hat Enterprise Linux 9 (x86_64, ARM64)

  • Rocky Linux 8 (x86_64, ARM64)

  • Rocky Linux 9 (x86_64, ARM64)

  • SUSE Linux Enterprise Server 12 (x86_64)

  • SUSE Linux Enterprise Server 15 (x86_64, ARM64)

  • Ubuntu 20.04 (x86_64, ARM64)

  • Ubuntu 22.04 (x86_64, ARM64)

Some components of MariaDB Enterprise Server might not support all platforms. For additional information, see MariaDB Corporation Engineering Policies".

Installation Instructions

  • MariaDB Enterprise Server 10.6

  • Enterprise Cluster Topology with MariaDB Enterprise Server 10.6

  • Primary/Replica Topology with MariaDB Enterprise Server 10.6

  • ColumnStore Object Storage Topology with MariaDB Enterprise Server 10.6 and MariaDB Enterprise ColumnStore 23.02

  • ColumnStore Shared Local Storage Topology with MariaDB Enterprise Server 10.6 and MariaDB Enterprise ColumnStore 23.02

  • HTAP Topology with MariaDB Enterprise Server 10.6 and MariaDB Enterprise ColumnStore 23.02

  • Single-Node Enterprise ColumnStore 23.02 with MariaDB Enterprise Server 10.6 and Object Storage

  • Single-Node Enterprise ColumnStore 23.02 with MariaDB Enterprise Server 10.6

  • Enterprise Spider Sharded Topology with MariaDB Enterprise Server 10.6

  • Enterprise Spider Federated Topology with MariaDB Enterprise Server 10.6

Upgrade Instructions

  • Upgrade to MariaDB Enterprise Server 10.6

  • Upgrade from MariaDB Community Server to MariaDB Enterprise Server 10.6

This page is: Copyright © 2025 MariaDB. All rights reserved.

Release Notes for MariaDB Enterprise Server 10.6.14-9

MariaDB Enterprise Server 10.6.14-9 is a maintenance release of MariaDB Enterprise Server 10.6. This release includes a variety of fixes. Users of MariaDB Enterprise Server 10.6.12-8 are encouraged to upgrade.

The next scheduled maintenance release for MariaDB Enterprise Server is 2023-09-11.

MariaDB Enterprise Server 10.6.14-9 was released on 2023-06-13.

Changes in Storage Engines

  • This release originally incorporated MariaDB ColumnStore engine version 23.02.3, and later contained 23.02.8, 23.02.9, and 23.02.10.

  • This release now incorporates MariaDB ColumnStore engine version 23.02.12.

Notable Changes

  • InnoDB's internal performance has been improved. (MDEV-30567)

  • The aria_log_dir_path system variable is added as read-only. (MDEV-30971)

  • The default value for the core_file system variable has been changed from None to OFF. (MDEV-11356)

  • Starting with this release, the innodb_buffer_pool_filename system variable is read-only and can't be changed dynamically. (MDEV-30453)

    • In previous releases, when innodb_buffer_pool_dump_at_shutdown was enabled, users with the SUPER privilege were able to dynamically change the value of the innodb_buffer_pool_filename system variable:

SET GLOBAL innodb_buffer_pool_filename='SOME_FILE_PATH';
  • Starting with this release, the innodb_buffer_pool_filename system variable must be configured in a configuration file prior to starting up the server:

[mariadb]
innodb_buffer_pool_filename=SOME_FILE_PATH
  • The aria_log_dir_path system variable is added as read-only. (MDEV-26153) The --aria-log-dir-path command-line option is added to mariadb-backup.

  • By default, mariadb-backup no longer prints messages about log scanning. (MDEV-25765)

    • In previous releases, messages like the following could be printed excessively:

>> log scanned up to (LSN)

Starting with this release, the messages about log scanning are only printed when --verbose is enabled.

  • Performance schema instruments are now available to monitor mutex contention in InnoDB's internal thread pool that is used for asynchronous data page I/O. (MDEV-31048)

    • Starting with this release, the wait/synch/mutex/innodb/tpool_cache_mutex instrument can be enabled to track contention on the internal tpool::cache::m_mtx mutex in read_slots and write_slots.

    • When performance_schema is enabled, you can enable the wait/synch/mutex/innodb/tpool_cache_mutex instrument by changing the ENABLED column for the instrument in the performance_schema.setup_instruments table:

UPDATE performance_schema.setup_instruments
 SET ENABLED='YES'
 WHERE NAME='wait/synch/mutex/innodb/tpool_cache_mutex';
  • When the instrument is enabled, details about mutex waits can be retrieved from other performance schema tables, such as performance-schema.events_waits_current, performance-schema.events_waits_history, and performance-schema.events_waits_history_long.

  • Enabling performance schema instrumentation can result in performance overhead, so extra care should be taken when enabling performance schema on production systems.

  • InnoDB page flushing speed has been improved. (MDEV-26827)

  • The Innodb_buffer_pool_pages_split status variable has been added to monitor page splits in the InnoDB buffer pool. (MDEV-26827)

  • When InnoDB's purge thread encounters a cached undo page that has not yet been re-used, the page is freed. This approach avoids some page writes and improves backup and restore performance. It also prevents the system tablespace or temporary tablespace from growing unnecessarily when they store undo log pages. (MDEV-29593)

Issues Fixed

Can result in data loss

  • When a backup is created with mariadb-backup and aria_log_dir_path is configured, the Aria logs are not copied to the backup. (MDEV-30968)

  • When system versioning is enabled for a table without a primary key, changes to the table are not properly replicated. (MDEV-30430)

  • When a partitioned table contains a prefix index on a column that uses a NOPAD collation, queries with ORDER BY can return rows in the wrong order. (MDEV-30072)

  • For some collations, when a unique constraint is defined with UNIQUE(..) USING HASH, duplicate values are accepted. (MDEV-30034)

  • When an InnoDB table with ROW_FORMAT=REDUNDANT is being rebuilt due to a DDL statement, the server can crash while trying to apply cached DML operations to the rebuilt table. (MDEV-26198)

  • Long uniques don't work correctly with Unicode collations. Equal strings (in terms of the collation) are compared as unequal if the length of the strings are different. (MDEV-27653, MDEV-28190)

  • When innodb_buffer_pool_filename is set to the empty string, the server tries to delete the datadir during shutdown. (MDEV-30453)

    • Starting with this release, the innodb_buffer_pool_filename system variable is read-only and can't be changed dynamically.

    • However, starting with MariaDB Community Server 10.9, the server rejects using numeric IDs to represent non-default character sets in binary logs. Replica servers using these newer versions would raise the following error message:

Unknown character set: '224'
  • Starting with this release, the server writes the character_set_client value to the binary log as a string instead of as a numeric ID. This change allows MariaDB Community Server 10.9 and later to connect as replica servers.

  • When a UNIQUE index includes a PERIOD in its definition, a duplicate key error can be incorrectly raised when the table uses the utf8mb4_unicode_nopad_ci collation. (MDEV-30415)

  • With Galera, when a value is retrieved from an InnoDB sequence using the NEXTVAL() function, the server can crash due to metadata lock conflicts between WSREP threads. (MDEV-30413)

    • In previous releases, the following log message would be reported in the log prior to the crash:

[Note] WSREP: MDL BF-BF conflict
[ERROR] Aborting

Can result in a hang or crash

  • When an UPDATE or DELETE is rolled back from an InnoDB table with ROW_FORMAT=COMPRESSED, the server can crash. (MDEV-30882)

  • When the LEFT() function is called on a string that has no character set defined, the server can crash. (MDEV-30351)

  • With Galera, when wsrep_sst_method=mariadb-backup is set and encrypt=4 is enabled for State Snapshot Transfers (SSTs), SSTs can fail if the version of socat installed on the donor node is 1.7.4.0 or later. (MDEV-30402)

    • In previous releases, SSTs could fail with the following error in the donor node's MariaDB error log if the version of socat installed is 1.7.4.0 or later:

E Failed to set SNI host ""
  • Starting with this release, when the SST script starts the socat listener on the donor node, the error is prevented by setting no-sni=1 if the version of socat installed is 1.7.4.0 or later.

  • When optimizer trace is enabled, if a view is part of a multi-table update, the server can crash. (MDEV-31085)

  • When a view definition contains a UNION and the view is queried using server-side prepared statements, if the optimizer pushes down a condition into the execution of the view, the server can crash during character set conversions. (MDEV-31102)

  • When a replica server connects to a primary server with MASTER_USE_GTID=slave_pos, if the primary server has encrypted binary logs that it can no longer decrypt, the primary server crashes due to a segmentation fault. (MDEV-28798)

    • In previous releases, the primary node would iterate over all of its binary logs to look for the requested GTID. When one of the binary logs could not be decrypted, the server would crash.

    • Starting with this release, when the primary node fails to decrypt a binary log in this scenario, it stops iterating over the binary logs and raises an error with the ER_MASTER_FATAL_ERROR_READING_BINLOG error code with the following error message:

Got fatal error 1236 from master when reading data from binary log: 'Could not set up decryption for binlog.'
  • With Galera, when streaming replicating is enabled by setting the wsrep_trx_fragment_size system variable, the server can crash when certain fragment sizes are specified. (MDEV-30838)

  • When EXPLAIN EXTENDED is executed for a single-table DELETE that contains an IN(..) predicand, the server can crash. (MDEV-31181)

  • When parallel replication is enabled by setting slave_parallel_threads greater than 0, the replica's parallel replication worker threads could hang after hitting an error. (MDEV-30780)

  • In previous releases, when the server was hung in this scenario, the output of SHOW SLAVE STATUS would show that an error occurred, but the output would indicate that both the I/O and SQL threads were running.

SHOW SLAVE STATUS\G
*************************** 1. row ***************************
                Slave_IO_State: Waiting for master to send event
..
              Slave_IO_Running: Yes
             Slave_SQL_Running: Yes
..
                    Last_Errno: 1062
                    Last_Error: Could not execute Write_rows_v1 event on table TABLE_NAME; Duplicate entry 'VALUE' for key 'KEY_NAME', Error_code: 1062; handler error HA_ERR_FOUND_DUPP_KEY; the event's master log LOG_FILE, end_log_pos END_LOG_POS
..
  • In this scenario, this issue causes one of the parallel replication worker threads to hang in the closing tables state, so the output of SHOW PROCESSLIST would show one worker thread in that state indefinitely:

SHOW PROCESSLIST;
+------+--------------+--------------------+------+--------------+-------+-----------------------------------------------+------------------+----------+
| Id   | User         | Host               | db   | Command      | Time  | State                                         | Info             | Progress |
+------+--------------+--------------------+------+--------------+-------+-----------------------------------------------+------------------+----------+
..
| 2394 | system user  |                    | NULL | Slave_worker | 50852 | closing tables                                | NULL             |    0.000 |
..
+------+--------------+--------------------+------+--------------+-------+-----------------------------------------------+------------------+----------+
  • When the optimizer chooses how to split a semi-join, the server can crash. (MDEV-31403)

  • With Galera, when CREATE TEMPORARY SEQUENCE is executed on a cluster node and binary logging is enabled, the server crashes. (MDEV-25045)

  • With Galera, when a write set fails certification and binary logging is enabled, the WSREP sequence numbers (cluster-wide transaction IDs) used by a WSREP applier thread can become out of sync with the node's XIDs (internal transaction IDs) due to a race condition, which can cause the node to crash. (MDEV-27317)

    • In previous releases, when a write set failed certification and binary logging was enabled, a WSREP applier thread could sync the WSREP sequence number out-of-order, because the commit order could be released too early.

  • With Galera, when streaming replicating is enabled by setting the wsrep_trx_fragment_size system variable and CREATE TABLE .. SELECT is executed, the server can crash. The following assertion is written to the MariaDB error log during the crash: (MDEV-30862)

Assertion `mode_ == m_high_priority' failed in void wsrep::client_state::after_applying()
  • Starting with this release, the server prohibits CREATE TABLE .. SELECT in this scenario and raises the ER_NOT_ALLOWED_COMMAND error code with the following error message:

ERROR 42000: CREATE TABLE AS SELECT is not supported with streaming replication
  • With Galera, when a connection uses the handler interface to start a transaction on a table, the server can crash when the client disconnects. (MDEV-30955) In previous releases, when the client disconnected, the server would rollback the transaction and release all locks, including the locks that the handler interface expected to survive after the transaction ended, which would cause the server to crash.

    • In previous releases, the following assertion is written to the MariaDB error log during the crash:

void close_thread_table(THD*, TABLE**): Assertion `thd->mdl_context.is_lock_owner(MDL_key::TABLE, table->s->db.str, table->s->table_name.str, MDL_SHARED)' failed.
  • With Galera, when an SST donor changes to the non-primary state, the SST is not terminated properly, and the donor node crashes. (MENT-1708)

    • In previous releases, the following error message and assertion is written to the MariaDB error log during the crash:

[Warning] WSREP: server: NODE_NAME unallowed state transition: connected -> joined
void wsrep::server_state::state(wsrep::unique_lock<wsrep::mutex>&, wsrep::server_state::state): Assertion `0' failed.
  • When a query is executed that uses DISTINCT and an aggregate function on a group, the server can crash. (MDEV-31113)

  • When a server-side prepared statement is used to execute a query that references views and contains a HAVING clause, the server can crash upon second execution of the query. (MDEV-31189)

  • When the InnoDB purge thread tries to use the change buffer for an uncommitted index, the server aborts with an assertion. (MDEV-30076)

  • When the rowid_filtering optimization is used with a partitioned table, the server aborts with an assertion. (MDEV-30596)

  • With Galera, a hang can occur in "starting" commit state due a deadlock between a KILL command and an abort issued by an applier. (MENT-1855)

    • Starting with this release, Total Order Isolation (TOI) is not used for the KILL command.

  • When a backup is prepared with mariadb-backup, the utility can hang due to a race condition between the thread flushing the buffer pool and the thread deleting the redo log file. (MDEV-30860)

  • With Galera, when a transaction changes multiple tables that use different storage engines, some of which support the server's internal 2-phase commit protocol and some of which don't support it, the node crashes with an assertion failure. (MDEV-30804)

    • In previous releases, the following assertion failure is written to the MariaDB error log during the crash in this scenario:

int wsrep::transaction::ordered_commit(): Assertion `state() == s_committing' failed.
  • Starting with this release, when Galera is enabled, mixed transactions are rejected in with the following error message:

ERROR HY000: Transactional commit not supported by involved engine(s)
  • When InnoDB uses a lot of memory during crash recovery, the server can hang due to a race condition between the thread flushing the buffer pool and the thread performing the recovery. (MDEV-30551)

  • With Galera, when streaming replicating is enabled by setting the wsrep_trx_fragment_size system variable, the server can crash when backup locks or user-level locks are released. (MDEV-25037)

  • With the InnoDB storage engine, when innodb_undo_log_truncate=ON is set, the server can hang. (MDEV-31343)

  • When processing a query with the ROWNUM() function, if the query uses in its FROM list a reference to a mergeable view, defined as SELECT, for more than one table that contains an ORDER BY clause, the server can crash. (MDEV-31162)

  • When an InnoDB table uses ROW_FORMAT=COMPRESSED, the server can hang when splitting a page. (MDEV-31158)

  • When processing a query executing the ROWNUM() function on a mergeable view with ORDER BY, under certain conditions checked in the preparation phase, it may be decided to materialize the view rather than merging it. In this case, the derived field of the TABLE_LIST structure created for the view remained equal to 0. As a result, the guard condition preventing range parsing for materialized views did not work as expected, causing the server to crash. (MDEV-31143)

  • When DDL is performed on an InnoDB table, the server can hang due to a deadlock between the DDL operation and the purge of InnoDB history. (MDEV-31132)

  • When processing a query executing the ROWNUM() function on a view, the server can crash. (MDEV-31073)

  • With the InnoDB storage engine, DROP TABLE can cause I/O errors if the number of data files exceeds the limit specified in the innodb_open_files system variable. (MDEV-31049)

  • When InnoDB tablespace encryption is enabled and DROP TABLE is executed, the server can crash due to a race condition between the background drop thread and the background encryption threads. (MDEV-29273)

  • With the InnoDB storage engine, a race condition between DDL and INSERT on a full-text table could cause the server to crash. (MDEV-25984)

  • With Galera, when XA transactions are used, the cluster node can crash. (MENT-1733, MENT-1737)

  • When creating a backup with mariadb-backup, the server can crash if the InnoDB system tablespace (default ibdata1) is very large. (MENT-1703)

  • ith Galera, when OPTIMIZE TABLE is executed on a node, the server can crash due to metadata lock conflicts between WSREP threads. (MDEV-30303)

    • In previous releases, the following log message would be reported in the log prior to the crash:

[Note] WSREP: MDL BF-BF conflict
[ERROR] Aborting

Can result in unexpected behavior

  • When EXPLAIN EXTENDED is executed for a multi-table UPDATE that uses the system join type, the output can be incorrect. (MDEV-31224)

  • When a query specifies DISTINCT and contains expressions using the SUM() function, the wrong results are returned. (MDEV-20057)

  • When a view's definition contains a HAVING clause, selecting from the view can fail with an error. (MDEV-28570)

    • In previous releases, queries could raise an error with the ER_VIEW_INVALID error code and the following error message:

View 'test.v1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
  • When a view's definition contains an aggregate function, selecting from the view can fail with an error. (MDEV-28571)

    • In previous releases, queries could raise an error with the ER_INVALID_GROUP_FUNC_USE error code and the following error message:

ERROR 1111 (HY000): Invalid use of group function
  • When a view's definition contains a table-value constructor (TVC) as a single-value subquery, selecting from the view can fail with an error. (MDEV-28603)

    • In previous releases, queries could raise an error with the ER_VIEW_INVALID error code and the following error message:

View 'test.v1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
  • When a view's definition contains an aggregate function in an uncorrelated subquery, the wrong result is returned. (MDEV-29224)

  • When a DELETE statement contains a subquery with a HAVING clause or an aggregate function in the WHERE clause, the statement can fail with an error. (MDEV-30586)

    • In previous releases, queries could raise an error with the ER_INVALID_GROUP_FUNC_USE error code and the following error message:

ERROR 1111 (HY000): Invalid use of group function
  • When an InnoDB tablespace has been discarded, selecting from information_schema.INNODB_SYS_INDEXES fails with an error. (MDEV-30615)

    • In previous releases, an error with the ER_UNKNOWN_ERROR error code is raised:

ERROR 1105 (HY000): Unknown error
  • Starting with this release, no error is returned, and the results contain NULL for the PAGE_NO and SPACE columns for discarded tablespaces.

  • When innodb_undo_directory is set to a relative path, the path is not properly used by mariadb-backup --copy-back. (MDEV-28187)

    • In previous releases, the undo logs would be copied to the relative path compared to the current working directory.

    • Starting with this release, the undo logs are copied to the relative path compared to the datadir.

  • When UNIX_TIMESTAMP(CURRENT_TIME()) is executed, the incorrect value is returned. (MDEV-26765)

    • In previous releases, NULL is returned.

  • With Galera, when wsrep_sst_method='mariadb-backup' is set, systemd raises an error about a mismatched PID. (MDEV-25887)

    • In previous releases, systemd could raise the following error, where BACKUP_PID is the PID of MariaDB Enterprise Backup and SERVER_PID is the PID of MariaDB Enterprise Server:

Got notification message from PID BACKUP_PID, but reception only permitted for main PID SERVER_PID
  • When an UPDATE contains a WHERE clause that contains a range condition over a non-indexed VARCHAR column, an error is raised. (MDEV-20773)

  • In previous releases, an error with the ER_DATA_TOO_LONG error code is raised with the following error message:

ERROR 1406 (22001): Data too long for column 'COLUMN_NAME' at row 1
  • When slave_parallel_threads is greater than 0 and SHOW SLAVE STATUS is executed, the connection can try to acquire an uninitialized mutex. (MDEV-30620)

    • In previous releases, a race condition could cause the mutexes of parallel replication worker threads to be acquired before they are initialized.

  • The ucs2_general_mysql500_ci collation, which is intended for compatibility with older versions of MySQL, incorrectly sorts 'ß' after 's'. (MDEV-30746)

  • When EXPLAIN EXTENDED is executed with an INSERT, UPDATE, DELETE, or REPLACE, a warning containing the query text is not printed. (MDEV-30539)

  • The rowid_filtering optimization is applied incorrectly in some cases. (MDEV-30218)

  • When preparing a partial backup, MariaDB Enterprise Backup raises error messages about missing InnoDB tablespace files that are expected to be missing, because they were excluded from the backup. (MDEV-29050)

  • When InnoDB writes data from the doublewrite buffer to the redo log file, the Innodb_data_written status variable is not properly incremented. (MDEV-31124)

  • Parallel replication breaks if XA PREPARE fails updating replica GTID State (MDEV-31038)

  • When InnoDB has opened more data files than innodb_open_files, opening additional data files takes longer than expected due to a performance regression. (MDEV-30775)

  • When the JSON_OBJECTAGG function is called with a key value that includes a double quote, the double quote character is not escaped. (MDEV-30412)

  • With optimizer_switch='not_null_range_scan=on', when a LEFT JOIN is executed on an empty table, the results can be incorrect. (MDEV-30333)

  • When a query contains a GROUP BY clause and the query calls an aggregate function on a table's primary key, the results can be incorrect if the GROUP BY clause is evaluated using an index. (MDEV-30605)

  • With Galera, when a cluster node has the query cache enabled and the node has regular MariaDB replication configured, query cache entries are not properly invalidated when tables are changed due to replication. (MDEV-28641)

  • When a backup is created with mariadb-backup, the utility opens the aria_log_control file in read/write mode instead of in read-only mode. (MENT-1794)

  • When INSERT .. SELECT is executed with a full-text index present, all other commits during the commit hang. (MDEV-30996)

  • In information_schema.INNODB_SYS_TABLESPACES, undo tablespaces are shown with incorrect names. (MDEV-30870)

    • In previous releases, the names would be .undo00N

    • Starting with this release, the names are innodb_undo00N

  • Incorrect memory management during a commit operation on tables that contain a full-text index. (MDEV-30341)

  • When SELECT DISTINCT .. WITH TIES is executed using index, it produces incorrect results. (MDEV-30324)

  • When a bulk insert into an InnoDB table is performed, the transaction savepoint is not released. (MDEV-29975)

  • When foreign key checks and unique checks are disabled during an InnoDB bulk insert operation, ER_KEY_NOT_FOUND errors are sporadically raised. (MDEV-29545)

  • When an UPDATE is executed on an InnoDB table, transactions can hang due to a race condition. (MDEV-27701)

  • With parallel replication, performance schema can contain inconsistent details about worker threads when the worker threads are starting up. (MDEV-26071)

  • When using the InnoDB storage engine, the execution of queries that use secondary indexes may slow down significantly. (MDEV-30357)

    • Prior to this release (starting with 10.6.8), the performance of queries using secondary indexes could be affected by code that implements locking reads from secondary indexes.

    • Starting with this release, the condition that was causing the performance degradation has been removed, so locking transactions that did not modify any persistent tables can have a transaction ID of 0

  • After writing to InnoDB temporary tables, space in the InnoDB temporary tablespace is not reclaimed. (MDEV-26782)

  • When innodb_adaptive_flushing is enabled, adaptive flushing is not always invoked after crossing innodb_adaptive_flushing_lwm. (MDEV-26055)

  • When creating a backup with mariadb-backup, the utility can fail to copy the Aria log file when there is a gap in logs. (MENT-1587)

    • In previous releases, the backup log could contain messages like the following:

Found aria log file: aria_log.00000001, current: 1, min: 1, max: 1
Found aria log file: aria_log.00000004, current: 4, min: 1, max: 4
Found 4 aria log files, minimum log number 1, maximum log number 4, last log number 4
Stop scanning aria tables.
..
error: cannot open file ./aria_log.00000002
Error: copy_file() failed.
Error on copying ./aria_log.00000002 aria log file.
Skip copying 3 aria log file due to error
Skip copying 4 aria log file due to error

Interface Changes

  • aria_log_dir_path system variable added.

  • core_file system variable default value changed from None to OFF

  • innodb_buffer_pool_filename system variable dynamic changed from Yes to No

  • Innodb_buffer_pool_pages_split status variable added.

  • mariadb-backup --aria-log-dir-path command-line option added.

Platforms

In alignment to the enterprise lifecycle, MariaDB Enterprise Server 10.6.14-9 is provided for:

  • CentOS 7 (x86_64)

  • Debian 10 (x86_64, ARM64)

  • Debian 11 (x86_64, ARM64)

  • Red Hat Enterprise Linux 7 (x86_64)

  • Red Hat Enterprise Linux 8 (x86_64, ARM64)

  • Red Hat Enterprise Linux 9 (x86_64, ARM64)

  • Rocky Linux 8 (x86_64, ARM64)

  • Rocky Linux 9 (x86_64, ARM64)

  • SUSE Linux Enterprise Server 12 (x86_64)

  • SUSE Linux Enterprise Server 15 (x86_64, ARM64)

  • Ubuntu 20.04 (x86_64, ARM64)

  • Ubuntu 22.04 (x86_64, ARM64)

Windows packages are not currently available for this release.

Some components of MariaDB Enterprise Server might not support all platforms. For additional information, see MariaDB Corporation Engineering Policies".

Installation Instructions

  • MariaDB Enterprise Server 10.6

  • Enterprise Cluster Topology with MariaDB Enterprise Server 10.6

  • Primary/Replica Topology with MariaDB Enterprise Server 10.6

  • ColumnStore Object Storage Topology with MariaDB Enterprise Server 10.6 and MariaDB Enterprise ColumnStore 23.02

  • ColumnStore Shared Local Storage Topology with MariaDB Enterprise Server 10.6 and MariaDB Enterprise ColumnStore 23.02

  • HTAP Topology with MariaDB Enterprise Server 10.6 and MariaDB Enterprise ColumnStore 23.02

  • Single-Node Enterprise ColumnStore 23.02 with MariaDB Enterprise Server 10.6 and Object Storage

  • Single-Node Enterprise ColumnStore 23.02 with MariaDB Enterprise Server 10.6

  • Enterprise Spider Sharded Topology with MariaDB Enterprise Server 10.6

  • Enterprise Spider Federated Topology with MariaDB Enterprise Server 10.6

Upgrade Instructions

  • Upgrade to MariaDB Enterprise Server 10.6

  • Upgrade from MariaDB Community Server to MariaDB Enterprise Server 10.6

This page is: Copyright © 2025 MariaDB. All rights reserved.

Release Notes for MariaDB Enterprise Server 10.6.12-8

MariaDB Enterprise Server 10.6.12-8 is a maintenance release of MariaDB Enterprise Server 10.6. This release includes a variety of fixes. Users of MariaDB Enterprise Server 10.6.12-7 are encouraged to upgrade. Additional steps are required if upgrading from Enterprise Server 10.6.12-7 to 10.6.12-8.

The next scheduled maintenance release for MariaDB Enterprise Server is 2023-06-12.

MariaDB Enterprise Server 10.6.12-8 was released on 2023-05-24.

Fixed Security Vulnerabilities

CVE (with cve.org link)

CVSS base score

CVE-2022-47015

N/A (Medium)#1

#1: MariaDB CVEs are assigned a word rating instead of a CVSS base score. See the MariaDB Engineering Policy for details.

Upgrade Procedure

MariaDB Enterprise Server 10.6.12-8 has a special upgrade procedure that only applies to users who previously deployed MariaDB Enterprise Server 10.6.12-7.

The following procedure is required to truncate the undo log tablespaces:

  1. Upgrade from ES 10.6.12-7 to 10.6.12-8 using the normal upgrade procedure.

  2. After the server has been started with ES 10.6.12-8, set innodb_fast_shutdown=0:

SET GLOBAL innodb_fast_shutdown=0;
  1. Shutdown the server:

$ sudo systemctl stop mariadb
  1. Change innodb_undo_tablespaces to a different value than its current value:

[mariadb]
innodb_undo_tablespaces=4
  1. Start the server:

$ sudo systemctl start mariadb

Notable Changes

  • The optimizer can now use column histogram data when estimating output cardinality of hashed (BNL-H) joins. (MDEV-30812)

    • Starting with this release, the optimizer_switch system variable has a new flag called hash_join_cardinality that can enable the feature.

    • When enabled, the optimizer uses a formula that provides conservative estimates.

    • To enable this functionality in a given session, set the flag using the SET statement:

SET optimizer_switch='hash_join_cardinality=on';

Issues Fixed

Can result in a hang or crash

  • When a prepared statement is used to query a view that contains a UNION, the server can crash. (MDEV-31102)

  • When binlog_row_image=FULL is set and slave_parallel_threads is greater than 0, replica servers can hang if data is inserted into tables with a sequence. (MDEV-29621)

    • In previous releases, the replica server would treat full inserts into the sequence as DDL statements, which would cause it to acquire an exclusive lock on the sequence table. If another parallel replication thread is waiting on the lock at the same time, the two threads can deadlock.

    • Starting with this release, replica servers manage their locks better to avoid deadlocks in this scenario.

  • When InnoDB splits or merges a B-tree page, the server can hang due to a race condition. (MDEV-29835)

  • When InnoDB undo log truncation is enabled by setting innodb_undo_log_truncate=ON, if some undo log tablespace exceeds innodb_max_undo_log_size, the server can hang. (MDEV-30863)

    • In previous releases, InnoDB chooses an undo log tablespace for truncation and marks all the related rollback segments with the state "truncation in progress". When the truncation is completed, InnoDB fails to re-enable the rollback segments. Consequently, if there are further write transactions before the server is shut down, the transactions must wait for usable rollback segments in a busy-loop. Since InnoDB does not re-enable the rollback segments, the transactions wait indefinitely.

    • Starting with this release, InnoDB properly manages the state of rollback segments when InnoDB undo log truncation is enabled.

Can result in unexpected behavior

  • For certain data distributions, the optimizer histogram code can produce wrong selectivity, which can lead to performance degradation. (MDEV-31067)

  • The optimizer does not take into account the selectivity of the equality conditions for Block Nested Hash (BNL-H) joins.

    • In previous releases, this issue can cause mis-estimates and bad query plans when running with join_cache_level set to 3 or higher (the default is 2).

  • When the lateral derived optimization is used to execute a query, the derived table is re-filled on every incoming row combination, even if the parameter values have not changed. (MDEV-26301)

  • When slave_parallel_mode is optimistic and slave_parallel_threads is greater than 0, ALTER SEQUENCE can fail with an out-of-order binlog error if the sequence uses InnoDB. (MDEV-31077)

    • In previous releases, the following error can be raised:

Last_Error: Error 'An attempt was made to binlog GTID 0-1-100 which would create an out-of-order sequence number with existing GTID 0-1-100 and gtid stric mode is enabled' on query. Default database: 'test'. Query: 'alter sequence s1 restart with 1' will be shown.
  • InnoDB does not free undo logs when they are no longer needed. (MDEV-31234)

    • In the previous release, when innodb_undo_tablespaces is set to 0, the undo logs would be stored in the InnoDB system tablespace (ibdata1 by default), so this issue could cause the InnoDB system tablespace to grow indefinitely.

    • Starting with this release, InnoDB frees undo logs when they are no longer needed.

    • For servers that previously ran ES 10.6.12-7, a special procedure is required to truncate the undo log tablespaces after the upgrade is complete.

  • InnoDB history list length increases faster in MariaDB Enterprise Server 10.6 compared to MariaDB Enterprise Server 10.5 for the same load. (MDEV-29401)

Changes in Storage Engines

  • This release incorporates MariaDB ColumnStore engine version 23.02.3.

Interface Changes

  • hash_join_cardinality=off has been incrementally added to the default value of the optimizer_switch system variable.

Platforms

In alignment to the enterprise lifecycle, MariaDB Enterprise Server 10.6.12-8 is provided for:

  • CentOS 7 (x86_64)

  • Debian 10 (x86_64, ARM64)

  • Debian 11 (x86_64, ARM64)

  • Red Hat Enterprise Linux 7 (x86_64)

  • Red Hat Enterprise Linux 8 (x86_64, ARM64)

  • Red Hat Enterprise Linux 9 (x86_64, ARM64)

  • Rocky Linux 8 (x86_64, ARM64)

  • Rocky Linux 9 (x86_64, ARM64)

  • SUSE Linux Enterprise Server 12 (x86_64)

  • SUSE Linux Enterprise Server 15 (x86_64, ARM64)

  • Ubuntu 18.04 (x86_64, ARM64)

  • Ubuntu 20.04 (x86_64, ARM64)

  • Ubuntu 22.04 (x86_64, ARM64)

Windows packages are not currently available for this release.

Some components of MariaDB Enterprise Server might not support all platforms. For additional information, see MariaDB Corporation Engineering Policies".

Installation Instructions

  • MariaDB Enterprise Server 10.6

  • Enterprise Cluster Topology with MariaDB Enterprise Server 10.6

  • Primary/Replica Topology with MariaDB Enterprise Server 10.6

  • ColumnStore Object Storage Topology with MariaDB Enterprise Server 10.6 and MariaDB Enterprise ColumnStore 23.02

  • ColumnStore Shared Local Storage Topology with MariaDB Enterprise Server 10.6 and MariaDB Enterprise ColumnStore 23.02

  • HTAP Topology with MariaDB Enterprise Server 10.6 and MariaDB Enterprise ColumnStore 23.02

  • Single-Node Enterprise ColumnStore 23.02 with MariaDB Enterprise Server 10.6 and Object Storage

  • Single-Node Enterprise ColumnStore 23.02 with MariaDB Enterprise Server 10.6

  • Enterprise Spider Sharded Topology with MariaDB Enterprise Server 10.6

  • Enterprise Spider Federated Topology with MariaDB Enterprise Server 10.6

Upgrade Instructions

  • Upgrade to MariaDB Enterprise Server 10.6

  • Upgrade from MariaDB Community Server to MariaDB Enterprise Server 10.6

This page is: Copyright © 2025 MariaDB. All rights reserved.

Release Notes for MariaDB Enterprise Server 10.6.12-7

MariaDB Enterprise Server 10.6.12-7 is a maintenance release of MariaDB Enterprise Server 10.6. This release includes a variety of fixes.

MariaDB Enterprise Server 10.6.12-7 was released on 2023-03-13.

Users of MariaDB Enterprise Server 10.6.12-7 are encouraged to upgrade to 10.6.12-8. Please see the special upgrade procedure that must be used.

Backported Features

MariaDB Enterprise Server enables a predictable development and operations experience through an enterprise lifecycle. These new features have been backported after reaching maturity in MariaDB Community Server.

  • In previous releases, the number of undo logs was configurable before InnoDB was initialized. With this release, the number of undo logs can also be configured after install.

    • The number of undo logs is configured by the InnoDB system variable --innodb-undo-tablespaces.

    • Splitting undo logs over multiple tablespaces can reduce the size of a single tablespace, especially the InnoDB system tablespace.

    • In previous releases, the number of undo logs had to be configured before InnoDB was initialized, so changing the number of undo logs would require setting up a new server instance. With this backport from MariaDB Community Server 10.11, the number of undo logs can be changed so it will take effect with the next server start. (MENT-1650)

Notable Changes

  • Output for the JSON_DETAILED() function has been optimized to reduce the number of lines needed. (MDEV-19160)

    • For compatibility, JSON_PRETTY() has been added as an alias to JSON_DETAILED(). (MDEV-19160)

  • This release incorporates Galera library version 26.4.14.

  • The names used by information_schema.INNODB_TABLESPACES_ENCRYPTION.NAME for undo tablespaces have been changed. (MDEV-30119) Starting with this release, names for the undo tablespaces use the format undo001. In previous releases, names for the undo tablespaces used NULL.

  • For MariaDB Enterprise Cluster SST with MariaDB Enterprise Backup backup execution (namely the block DDL phase) has been changed. In previous releases, the node was paused from the cluster, generating the following log file entry: (MDEV-26391)

WSREP: Shifting SYNCED -> DONOR/DESYNCED
  • Starting with this release, the mariadb-backup execution can be aborted if DDL statements happen during backup execution. This abortable backup execution is the optional feature which can be enabled/disabled by wsrep_mode: BF_ABORT_mariadb-backup

Issues Fixed

Can result in data loss

  • When executing a DELETE or UPDATE with a subselect, the server can crash. (MDEV-10087)

  • When performing an incremental backup, MariaDB Enterprise Backup does not reflect databases that have been dropped and created. (MDEV-23335)

  • During recovery, MariaDB Server can crash with an error when a DDL operation was executed before the server was stopped: InnoDB: Trying to write ... bytes at ... outside the bounds of the file ... (MDEV-30069)

  • innodb_undo_log_truncate=ON is not crash safe. This also can have effects for MariaDB Enterprise Backup for backup and restore. (MDEV-29999, MDEV-30179, MDEV-30438)

    • When innodb_undo_log_truncate=ON a backup for MariaDB Enterprise Server can return the error message:

FATAL ERROR: ... failed to copy datafile.

Can result in a hang or crash

  • When DELETE HISTORY is executed for a system versioned table with full text index, the server can crash. (MDEV-25004)

  • When an ALTER TABLE statement causes InnoDB to rebuild a table with a spatial index, the server can crash. (MDEV-29856)

  • When using SPIDER with SPIDER_DIRECT_SQL and spider_udf_ds_use_real_table=1, the server can crash. (MDEV-29855)

  • When executing REPLACE INTO ... PARTITION(...), the server can crash. (MDEV-29636)

  • Galera SST doesn't properly handle undo* files from InnoDB. As a result, SST may terminate incorrectly when --innodb-undo-tablespaces is set to 3 or more. (MDEV-30157)

  • With a query containing nested WINDOW clauses, the server can crash. (MDEV-30052)

  • When executing a SELECT from complex a view with WHERE clause and with the setting derived_merge=on, the server can crash. (MDEV-30081)

  • Infinite sequence of recursive calls when processing embedded CTE, when such a reference has the same table name as the name of the CTE. (MDEV-30248)

  • With a cluster wide conflict, MariaDB Enterprise Cluster can hang if a binlog purging is running (such as in the case that, binlog expiration is configured). (MDEV-29512)

  • mariadbd hangs when running with --wsrep-recover and --plugin-load-add=ha_spider.so options. (MDEV-30370)

  • After a second execution via a stored routine or a prepared statement of a LEAD ... OVER query, the server can crash. (MDEV-28206)

  • When innodb_undo_log_truncate=ON is set, the server can hang. (MDEV-30180)

  • After recovery, the server can crash with an error if innodb_buffer_pool_size is not large enough to recover in a single batch: InnoDB: Tried to read ... bytes at offset (MDEV-30132)

  • Race condition in foreign key locking during truncate. (MDEV-29504)

  • Possible hangs in some B-tree operations. (MDEV-30400, MDEV-29603)

  • MariaDB Enterprise Backup can hang when using the parameters --backup --incremental --throttle=... (MDEV-29896)

  • While executing an ALTER TABLE for a compressed InnoDB table, the server can crash. (MDEV-28797)

  • InnoDB fails to remove a newly created table or index from data dictionary and table cache and then crashes, if the ALTER to add a FULLTEXT index fails in the commit phase. (MDEV-30393)

  • When the query cache is enabled and a DROP DATABASE is called, the DROP DATABASE can hang and 100 percent CPU load can be seen. (MDEV-29760)

  • The execution of FLUSH TABLES...FOR EXPORT can result in a server crash. (MDEV-30227)

  • When querying a Spider table from a stored procedure inside a WHILE clause, the server can crash. The stored procedure needs to use two WHILE clauses which both query the Spider table. (MDEV-30191)

  • Deadlock on Replica during BACKUP STAGE BLOCK_COMMIT on XA transactions. (MDEV-30423)

  • MariaDB Server can crash during recovery if an ALTER TABLE .. ROW_FORMAT=COMPRESSED has been executed before. (MDEV-30404)

Can result in unexpected behavior

  • log_query_not_using_indexes=OFF is ignored when log_slow_filter is an empty string. (MDEV-21187)

  • MariaDB Enterprise Backup returns with an error when the option --galera-info is used for creating a backup of a MariaDB Server instance, which is not a MariaDB Enterprise Cluster node. Failed to get master wsrep state from SHOW STATUS (MDEV-30293)

  • When querying a table with virtual generated columns using full text search, these columns are not generated and are always NULL in the result set. (MDEV-29169)

  • Identifiers are not quoted for the output of SHOW GRANTS. Using the result to execute the grant statement results in a syntax error, if reserved keywords are used. (MDEV-30056)

  • Spider table with CHARSET utf32/utf16/ucs2 tries to set client CHARSET to unsupported value. (MDEV-29562)

  • Incorrect results are returned when using STDDEV_SAMP() with a view. (MDEV-19071)

  • A spurious error can be generated: ERROR 1292 (22007) at the line 15: Truncated incorrect DECIMAL value:

(MDEV-30342)

  • When running mariadb-binlog using the option --verbose, cannot read row events with compressed columns: Error: Don't know how to handle column type:... (MDEV-25277)

  • Incorrect results are returned with outer join, merged derived table, and view. (MDEV-28602)

  • Some DDL, such as ANALYZE, can be completed out of order on parallel replicas. (MDEV-30323)

  • seconds_behind_master is incorrect for delayed parallel replicas. (MDEV-29639)

  • Unlimited SELECT .. ORDER BY .. LIMIT can be slow as it is always using temporary. (MDEV-29129)

  • Calling DETERMINISTIC package functions from other SQL/PL stored routines can be slow. (MDEV-29370)

  • An upgrade to MariaDB Server 10.5 and MariaDB 10.6 incorrectly reports that a recovery is needed. (MDEV-24412)

  • Warning message when encryption is not available on recovery: InnoDB: We do not continue the crash recovery, because the table may become corrupt (MDEV-30068)

  • With MariaDB Enterprise Backup on Windows, an incremental prepare fails when innodb_undo_tablespaces > 0 is set. (MDEV-30144)

  • Changing the value of wsrep_gtid_domain_id for MariaDB Enterprise Cluster with full cluster restart can fail on nodes, which do not sync from the node where wsrep_gtid_domain_id was changed. (MDEV-29171)

Changes in Storage Engines

  • This release originally incorporated MariaDB ColumnStore storage engine version 23.02.1.

  • This release later incorporated MariaDB ColumnStore storage engine version 23.02.2.

  • This release now incorporates MariaDB ColumnStore storage engine version 23.02.3.

Interface Changes

  • Error code 5016 added.

  • columnstore_group_by_handler system variable default value changed from ON to OFF

  • JSON_PRETTY() function added.

Platforms

In alignment to the enterprise lifecycle, MariaDB Enterprise Server 10.6.12-7 is provided for:

  • CentOS 7 (x86_64)

  • Debian 10 (x86_64, ARM64)

  • Debian 11 (x86_64, ARM64)

  • Microsoft Windows (x86_64) (MariaDB Enterprise Cluster excluded)

  • Red Hat Enterprise Linux 7 (x86_64)

  • Red Hat Enterprise Linux 8 (x86_64, ARM64)

  • Red Hat Enterprise Linux 9 (x86_64, ARM64)

  • Rocky Linux 8 (x86_64, ARM64)

  • Rocky Linux 9 (x86_64, ARM64)

  • SUSE Linux Enterprise Server 12 (x86_64)

  • SUSE Linux Enterprise Server 15 (x86_64, ARM64)

  • Ubuntu 18.04 (x86_64, ARM64)

  • Ubuntu 20.04 (x86_64, ARM64)

  • Ubuntu 22.04 (x86_64, ARM64)

Some components of MariaDB Enterprise Server might not support all platforms. For additional information, see MariaDB Corporation Engineering Policies".

Installation Instructions

  • MariaDB Enterprise Server 10.6

  • Enterprise Cluster Topology with MariaDB Enterprise Server 10.6

  • Primary/Replica Topology with MariaDB Enterprise Server 10.6

  • ColumnStore Object Storage Topology with MariaDB Enterprise Server 10.6 and MariaDB Enterprise ColumnStore 23.02

  • ColumnStore Shared Local Storage Topology with MariaDB Enterprise Server 10.6 and MariaDB Enterprise ColumnStore 23.02

  • HTAP Topology with MariaDB Enterprise Server 10.6 and MariaDB Enterprise ColumnStore 23.02

  • Single-Node Enterprise ColumnStore 23.02 with MariaDB Enterprise Server 10.6 and Object Storage

  • Single-Node Enterprise ColumnStore 23.02 with MariaDB Enterprise Server 10.6

  • Enterprise Spider Sharded Topology with MariaDB Enterprise Server 10.6

  • Enterprise Spider Federated Topology with MariaDB Enterprise Server 10.6

Upgrade Instructions

  • Upgrade to MariaDB Enterprise Server 10.6

  • Upgrade from MariaDB Community Server to MariaDB Enterprise Server 10.6

This page is: Copyright © 2025 MariaDB. All rights reserved.

Release Notes for MariaDB Enterprise Server 10.6.11-6

MariaDB Enterprise Server 10.6.11-6 is a maintenance release of MariaDB Enterprise Server 10.6. This release includes a variety of fixes.

MariaDB Enterprise Server 10.6.11-6 was released on 2022-12-21.

Backported Features

MariaDB Enterprise Server enables a predictable development and operations experience through an enterprise lifecycle. These new features have been backported after reaching maturity in MariaDB Community Server:

  • The new slave_max_statement_time system variable is available to set the maximum execution time for queries on replica nodes. (MENT-1566, MDEV-27161)

    • When a query takes more than slave_max_statement_time seconds to run on the replica (slave) node, the query is aborted, and replication stops with an error.

    • The system variable can be set to a decimal value, where the decimal component has microsecond precision.

    • When set to 0, there is no timeout.

    • The default value is 0.

  • To simplify maintenance, the ALTER TABLE statement supports new clauses to convert tables to partitions and partitions to tables. (MENT-1454)

    • To convert a partition to a table, use the CONVERT PARTITION .. TO TABLE .. clause:

ALTER TABLE partitioned_table
 CONVERT PARTITION part1
 TO TABLE normal_table;
  • To convert a table to a partition, use the CONVERT TABLE .. TO PARTITION .. clause:

ALTER TABLE partitioned_table
 CONVERT TABLE normal_table
 TO PARTITION part1 VALUES LESS THAN (12345);
  • The new CONVERT PARTITION and CONVERT TABLE clauses are crash-safe operations.

  • The EXCHANGE PARTITION clause can still be used, but it is not a crash-safe operation.

Notable Changes

  • The information_schema.INNODB_SYS_TABLESPACES view shows details about the InnoDB temporary tablespace, which is the tablespace where InnoDB temporary tables are stored. (MDEV-29479)

    • Starting with this release, the details about the InnoDB temporary tablespace can be shown by querying for the name innodb_temporary:

SELECT * FROM information_schema.INNODB_SYS_TABLESPACES
 WHERE name LIKE 'innodb_temporary';
  • When a table's default collation is set to the default collation for the table's character set, SHOW CREATE TABLE shows the COLLATE clause. (MDEV-29446)

    • In previous releases, MariaDB Enterprise Server reduced the size of SHOW CREATE TABLE output by excluding the COLLATE clause if the table's default collation was set to the default collation for the table's character set.

  • Implemented CHECK TABLE .. EXTENDED for InnoDB. (MDEV-24402)

    • When CHECK TABLE .. EXTENDED is executed, InnoDB confirms that no index contains orphan records.

    • InnoDB performs the check by counting all index records according to the current read view, and ensuring that any delete-marked records in the clustered index are waiting for the purge of history, and that all secondary index records point to a version of the clustered index record that is waiting for the purge of history. Normal MVCC reads and CHECK TABLE without EXTENDED would ignore these orphans.

Issues Fixed

Can result in data loss

  • When a column is renamed in a partitioned table with ALTER TABLE .. RENAME COLUMN using the NOCOPY algorithm, the table can be corrupted. (MDEV-28576)

  • When the InnoDB storage engine performs change buffer operations, the InnoDB Redo Log can overflow, which can cause table corruption. (MENT-1661, MDEV-29905)

Can result in a hang or crash

  • When a query contains an IN/ALL/ANY predicand and the subquery contains a GROUP BY clause with an IN/ALL/ANY predicand with a single-value subquery as the left operand, the server can crash. (MDEV-29350)

  • If an InnoDB table contains a foreign key constraint and the child table's DATABASE_NAME/TABLE_NAME.ibd is longer than 330 characters, when the parent table is renamed, the server can crash. (MDEV-29409)

  • When a DDL statement is executed using the INPLACE algorithm and innodb_adaptive_hash_index=ON is set, the server can hang. (MDEV-27700, MDEV-29384)

  • When renaming a table to a long name, the server can crash. (MDEV-29258)

  • When an ALTER TABLE statement causes InnoDB to rebuild a table with a spatial index, the server can crash. (MDEV-29520)

  • When an InnoDB temporary table contains a spatial index, the server can crash if the temporary table is dropped due to DROP TEMPORARY TABLE or client disconnect. (MDEV-29507)

  • When querying a partitioned table using the PARTITION syntax, if the WHERE clause results in an index merge, the server can crash. (MDEV-21134)

  • When detecting CTE dependencies of nested CTEs that includes one or more recursive CTEs, infinite recursion can occur until the server crashes. (MDEV-29361)

  • When the wsrep_notify_cmd system variable is configured to use the bundled wsrep_notify.sh script, the server can hang during startup. (MDEV-27682)

  • When selecting from InnoDB's information_schema views (such as INNODB_TRX, INNODB_LOCKS, and INNODB_LOCK_WAITS), if connections with open XA transactions are disconnected or killed at the same time, the server can crash. (MDEV-29575)

  • For some queries that involve tables with different but convertible character sets for columns taking part in the query, a repeatable execution of such queries in the prepared statement mode or as part of a stored routine can crash the server. (MDEV-16128)

  • When executing a SELECT .. UNION .. SELECT or EXPLAIN EXTENDED statement, the server can crash. (MDEV-23160)

  • When optimizer_switch='condition_pushdown_for_derived=on' is set and a view that includes a subquery is queried, the server crashes. (MDEV-16549)

  • When an application-time period with an empty name is added to a table using ALTER TABLE .. ADD PERIOD IF NOT EXISTS, the server can crash. (MDEV-18873)

    • In previous releases, statements like the following could cause the server to crash:

ALTER TABLE t
 ADD PERIOD IF NOT EXISTS FOR `` (s,e);
  • When the Spider storage engine's ODBC foreign data wrapper is used with MariaDB Connector/ODBC 3.1.10 and later, the server can crash. (MENT-1415)

  • If the InnoDB change buffer is corrupted, the server can hang during shutdown. (MENT-1673, MDEV-30009)

  • When an InnoDB tablespace is in the non-canonical format from a previous ALTER TABLE operation that used the INSTANT algorithm, InnoDB can fail to apply changes to the table during crash recovery and while preparing a backup with MariaDB Enterprise Backup. (MDEV-29438)

  • When InnoDB tries to apply a INSERT_HEAP_DYNAMIC record to a secondary index in a table with ROW_FORMAT=DYNAMIC during crash recovery, the operation can fail with an error. (MDEV-29559)

    • In previous releases, the MariaDB ES error log could have errors like the following:

[ERROR] InnoDB: Not applying INSERT_HEAP_DYNAMIC due to corruption on [page id: space=5, page number=4]
  • When an InnoDB thread updates InnoDB persistent statistics and another InnoDB thread inserts a BLOB concurrently, the server can hang due to a deadlock. (MDEV-29883)

  • If multiple threads request the same ROW_FORMAT=COMPRESSED page that is not present in the InnoDB Buffer Pool, the server can hang due to a race condition. (MDEV-27983)

Can result in unexpected behavior

  • In the presence of replication filters, revoking privileges from a non-existing user on a primary (master) breaks replication on the replica (slave). (MDEV-28530)

  • When replicate_wild_ignore_table='mysql.%' is set on a replica node, the replica node does not skip replicated SET DEFAULT ROLE statements. (MDEV-28294)

  • When a Spider table has a prefix index, query results can be incorrect. (MDEV-27172)

  • InnoDB can extend tablespace files when additional capacity is not required. (MDEV-13013)

  • When an InnoDB table is being rebuilt and a BLOB is updated during the online rebuild, a memory leak can occur. (MDEV-29600)

  • When a view is queried using a prepared statement, the query fails with the ER_NEED_REPREPARE error code. (MDEV-17124)

    • In previous releases, the following error would occur:

ERROR 1615 (HY000): Prepared statement needs to be re-prepared
  • When an InnoDB table contains virtual generated columns that are indexed, InnoDB fails to purge secondary index records. (MDEV-29666)

  • When using the InnoDB adaptive hash index, non-locking reads can return wrong results due to a potential ACID violation. (MDEV-28709, MDEV-29635, MDEV-27927)

  • When SHOW COLUMNS is used on a temporary table, an empty result set is returned. (MDEV-28455)

  • When a sequence is used as the default value in a table, rows inserted by an INSERT ... SELECT statement can be assigned the wrong values. (MDEV-29540)

  • When a column has both a UNIQUE index and a FULLTEXT index, full-text search using MATCH(..) AGAINST(..) does not work properly. (MDEV-29778)

  • If the server is started with the --ssl option enabled, but the TLS certificates and keys are not configured, the server will advertise the TLS support in the handshake, but will not actually be able to use it. (MDEV-29811)

  • With MariaDB Enterprise Cluster, when wsrep_sst_method='mariadb-backup' is configured, the joiner node ignores custom values for the innodb_buffer_pool_filename system variable, and the SST copies the buffer pool file to the default location instead. (MDEV-28968)

  • When a TIMESTAMP column is filtered in a subquery inside the ALL operator, the results can be incorrect. (MDEV-27101)

  • When the wsrep_node_incoming_address system variable does not contain a port number, the wsrep_incoming_addresses status variable shows 0 as the port number. (MDEV-28868)

  • When optimizer_switch='rowid_filter=on' is enabled, performance is impacted if the rowid filter contains no elements. (MDEV-28846)

  • When a INET6 column is filtered in a subquery inside the ALL operator, the results can be incorrect. (MDEV-27099)

  • When XA COMMIT is executed without an open XA transaction, the operation is still logged to the binary log. (MDEV-25616)

    • In previous releases, when a replica node tried to apply the event, it would fail with the ER_XAER_NOTA error code:

Last_SQL_Errno	1397
Last_SQL_Error	Error 'XAER_NOTA: Unknown XID' on query. Default database: 'DATABASE_NAME'. Query: 'XA COMMIT ..'
  • When a tablespace file was originally built with MariaDB Enterprise Server 10.4 and earlier, InnoDB would refuse to add a column to the table using the INSTANT algorithm. (MDEV-28822)

    • In previous releases, the operation would fail with the following error message:

ERROR 1845 (0A000): ALGORITHM=INSTANT is not supported for this operation. Try ALGORITHM=INPLACE
  • When InnoDB performs crash recovery of an ALTER TABLE operation that used the INSTANT algorithm, the transaction isolation level is READ COMMITTED instead of READ UNCOMMITTED (MDEV-29440)

  • InnoDB Temporary Tablespace (ibtmp1) grows continuously. (MDEV-28240)

  • When the TZ environment variable is set on Windows, the system_time_zone system variable is incorrect. (MDEV-29102)

  • When a bulk insert into an InnoDB table is performed, InnoDB does not update the table's persistent statistics. (MDEV-28327)

  • When the same values are used with an IN operator and with an = operator, the optimizer chooses a different execution plan. (MENT-1630, MDEV-29662)

Related to install and upgrade

  • When mariadb-upgrade is executed, spurious errors about table rebuilds are logged. (MDEV-29481)

    • In previous releases, the following messages would be logged, even though the tool already mitigated the issues itself:

error: Table rebuild required. Please do "ALTER TABLE `TABLE_NAME` FORCE" or dump/reload to fix it!"

Changes in Storage Engines

  • This release originally incorporated MariaDB ColumnStore storage engine version 22.08.7

  • This release now incorporates MariaDB ColumnStore storage engine version 22.08.8

Interface Changes

  • ER_CM_OPTION_MISSING_REQUIREMENT error code added

  • ER_DROP_PARTITION_NON_EXISTENT error code replaced with ER_PARTITION_DOES_NOT_EXIST

  • ER_INCONSISTENT_SLAVE_TEMP_TABLE error code added

  • ER_JSON_HISTOGRAM_PARSE_FAILED error code added

  • ER_KEY_COLUMN_DOES_NOT_EXITS error code replaced with ER_KEY_COLUMN_DOES_NOT_EXIST

  • ER_PARTITION_CONVERT_SUBPARTITIONED error code added

  • ER_PROVIDER_NOT_LOADED error code added

  • ER_SF_OUT_INOUT_ARG_NOT_ALLOWED error code added

  • ER_SLAVE_STATEMENT_TIMEOUT error code added

  • ER_VERS_HIST_PART_FAILED error code added

  • mariadbd --slave-max-statement-time command-line option added

  • slave_max_statement_time system variable added

  • WARN_OPTION_CHANGING error code added

  • WARN_SFORMAT_ERROR error code added

Platforms

In alignment to the enterprise lifecycle, MariaDB Enterprise Server 10.6.11-6 is provided for:

  • CentOS 7 (x86_64)

  • Debian 10 (x86_64, ARM64)

  • Debian 11 (x86_64, ARM64)

  • Microsoft Windows (x86_64) (MariaDB Enterprise Cluster excluded)

  • Red Hat Enterprise Linux 7 (x86_64)

  • Red Hat Enterprise Linux 8 (x86_64, ARM64)

  • Red Hat Enterprise Linux 9 (x86_64, ARM64)

  • Rocky Linux 8 (x86_64, ARM64)

  • Rocky Linux 9 (x86_64, ARM64)

  • SUSE Linux Enterprise Server 12 (x86_64)

  • SUSE Linux Enterprise Server 15 (x86_64, ARM64)

  • Ubuntu 18.04 (x86_64, ARM64)

  • Ubuntu 20.04 (x86_64, ARM64)

  • Ubuntu 22.04 (x86_64, ARM64)

Some components of MariaDB Enterprise Server might not support all platforms. For additional information, see MariaDB Corporation Engineering Policies".

Installation Instructions

  • MariaDB Enterprise Server 10.6

  • Enterprise Cluster Topology with MariaDB Enterprise Server 10.6

  • Primary/Replica Topology with MariaDB Enterprise Server 10.6

  • ColumnStore Object Storage Topology with MariaDB Enterprise Server 10.6 and MariaDB Enterprise ColumnStore 23.02

  • ColumnStore Shared Local Storage Topology with MariaDB Enterprise Server 10.6 and MariaDB Enterprise ColumnStore 23.02

  • HTAP Topology with MariaDB Enterprise Server 10.6 and MariaDB Enterprise ColumnStore 23.02

  • Single-Node Enterprise ColumnStore 23.02 with MariaDB Enterprise Server 10.6 and Object Storage

  • Single-Node Enterprise ColumnStore 23.02 with MariaDB Enterprise Server 10.6

  • Enterprise Spider Sharded Topology with MariaDB Enterprise Server 10.6

  • Enterprise Spider Federated Topology with MariaDB Enterprise Server 10.6

Upgrade Instructions

  • Upgrade to MariaDB Enterprise Server 10.6

  • Upgrade from MariaDB Community Server to MariaDB Enterprise Server 10.6

This page is: Copyright © 2025 MariaDB. All rights reserved.

Release Notes for MariaDB Enterprise Server 10.6.9-5

MariaDB Enterprise Server 10.6.9-5 is a maintenance release of MariaDB Enterprise Server 10.6. This release includes a variety of fixes.

MariaDB Enterprise Server 10.6.9-5 was released on 2022-09-12.

Fixed Security Vulnerabilities

CVE (with cve.org link)

CVSS base score

CVE-2023-5157

7.5

CVE-2018-25032

7.5

CVE-2022-32091

6.5

CVE-2022-32089

6.5

CVE-2022-32084

6.5

CVE-2022-32082

6.5

CVE-2022-32081

6.5

Backported Features

MariaDB Enterprise Server enables a predictable development and operations experience through an enterprise lifecycle. These new features have been backported after reaching maturity in MariaDB Community Server:

  • The UUID data type has been backported from MariaDB Community Server 10.7 for more efficient storage of UUID values. (MENT-1459)

Notable Changes

  • Galera has been updated to 26.4.13-1

  • Debian 9 support has been discontinued.

  • Red Hat Enterprise Linux 9 support has been added.

  • Rocky Linux 9 support has been added.

  • The --max-statement-time command-line option has been added for mariadb-dump with a default value of 0. (MDEV-18702)

  • Session scope has been added for the explicit_defaults_for_timestamp system variable, in addition to global scope. (MDEV-29225)

  • OpenSSL 3.0 support has been added for MariaDB Enterprise Cluster (powered by Galera) (MDEV-25949)

Issues Fixed

Can result in data loss

  • When mariadb-backup is executed with the --rsync command-line option, the backup tries to copy the InnoDB buffer pool dump file, which is located at the path defined by the innodb_buffer_pool_filename system variable. (MDEV-28781)

    • Starting with this release, mariadb-backup only copies the InnoDB buffer pool dump file during State Snapshot Transfers (SSTs) for MariaDB Enterprise Cluster, powered by Galera.

  • With MariaDB Enterprise Cluster, when read_only is enabled on a node, users without the SUPER privilege can still write to the node. (MDEV-28546)

  • With MariaDB Enterprise Cluster, when a value is retrieved from an InnoDB sequence using the NEXTVAL() function, the change is not replicated. (MDEV-27862)

    • Starting with this release, InnoDB sequences are properly replicated when they are defined with NOCACHE.

  • When an InnoDB table's collation is changed using ALTER TABLE with the INPLACE or NOCOPY algorithms, duplicate entries in unique indexes are not detected. (MDEV-26294)

  • When InnoDB performs crash recovery on startup, recovery can fail when the redo log contains DDL statements. (MDEV-28864, MDEV-28870, MDEV-28923, MDEV-28977)

Can result in a hang or crash

  • When INSERT .. SELECT .. GROUP BY is executed and the GROUP BY clause contains a derived table, the server can crash. (MDEV-28617)

  • When a query contains an ANY(SELECT .. GROUP BY(SELECT ..)) predicand with a redundant subquery in the GROUP BY clause, the server can crash. (MDEV-29139)

  • When ALTER TABLE .. ADD is used to add a column with the INSTANT algorithm, the server can crash if the ROW_FORMAT in the .frm file does not match the actual row format used by the data file. (MDEV-26577)

    • For tables created prior to MariaDB Server 10.2, the ROW_FORMAT in the .frm file could be inconsistent with the actual row format used by the data file. If the server were upgraded to MariaDB Enterprise Server 10.6, the inconsistency could remain.

  • When INSERT .. SELECT is executed and the SELECT query calls an aggregate or window function, the server can crash with a segmentation fault. (MDEV-26427)

  • When the JSON_EXTRACT() function is called, the server can crash with a segmentation fault. (MDEV-29188)

  • When a query uses the DISTINCT keyword and calls an aggregate function as an argument for an always-constant function, the server can crash. (MDEV-23809)

    • An always-constant function is a function that always returns a constant value, even if the function's arguments are not constant.

    • For example, the COLLATION() function is an always-constant function.

  • When mariadb-backup is executed with the --compress and --parallel options, the backup can hang due to a race condition between threads. (MDEV-29043)

  • When an EXISTS predicate or an IN, ALL, or ANY predicand is used in an eliminated GROUP BY clause, the server can crash. (MENT-1606, MDEV-29350)

  • When an IN subquery is used outside the context of a regular query (such as in a stored procedure), the server can crash. (MDEV-22001)

  • When MariaDB Enterprise Cluster is used and the Galera replication TCP port receives non-Galera network traffic, the server can crash. (MDEV-25068)

    • In previous releases, when the crash occurred, the following messages would appear in the MariaDB error log:

terminate called after throwing an instance of 'boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<std::system_error> >'
what(): remote_endpoint: Transport endpoint is not connected
[ERROR] mysqld got signal 6 ;
  • When a generated column is added to an InnoDB table with the INSTANT algorithm, the server can crash due to a buffer overflow. (MDEV-26420)

  • When CREATE VIEW is executed with a view definition that contains an unknown column in an ON condition, the server can crash instead of raising an error with the ER_BAD_FIELD_ERROR error code. (MDEV-29088)

  • When FLUSH BINARY LOGS is executed, the server can hang. (MDEV-28948)

  • When the innodb_open_files system variable is too low, the server can crash if InnoDB accesses too many tables or partitions. (MDEV-26293)

  • When InnoDB detects a corrupt data page, the server can crash. (MDEV-22388, MDEV-21098, MDEV-13542, MDEV-28457, MDEV-18519, MDEV-22388)

  • When InnoDB performs crash recovery on startup, the server can crash when the redo log contains a RENAME TABLE statement performed against a table located in the system tablespace. (MDEV-28752)

Can result in unexpected behavior

  • For multi-table UPDATE or DELETE queries, the optimizer fails to apply partition pruning optimization for the table that is updated or deleted from. (MDEV-28246)

  • When an IN condition contains a mixture of numeric and string values, results can be inconsistent. (MDEV-21445)

  • When a sequence event is written to the binary log with binlog_format=ROW, the value of binlog_row_image is not respected. (MDEV-28487)

  • When a transaction can't be fully written to the binary log, but the transaction can be safely rolled back, a LOST_EVENTS incident event is written to the binary log. (MDEV-21443)

    • In previous releases, this problem could cause replica servers to encounter the following error:

Last_SQL_Errno	1590
Last_SQL_Error	The incident LOST_EVENTS occurred on the master. Message: error writing to the binary log
  • Starting with this release, a LOST_EVENTS incident is only written to the binary log when safe rollback is not possible.

  • When a replica server replicates an incident event, the details about the failure are not in the primary server's error log, the replica server's error log, or the output of SHOW REPLICA STATUS. (MDEV-21087)

  • When a backup is performed with mariadb-backup, the backup includes binary logs. (MDEV-28758)

  • When a table is created from a SELECT statement that uses a recursive CTE, the table can use unexpected data types and contain truncated data if the calculated values from the recursive part of the CTE do not fit in the column types that are taken from the non-recursive part of the CTE. (MDEV-12325)

    • Starting with this release, the CTE calculation is aborted when the calculated values do not fit in the column types. When this occurs, a warning or error (depending on sql_mode is raised with the ER_WARN_DATA_OUT_OF_RANGE error code and the following error message:

Out of range value for column 'COLUMN_NAME' at row ROW_NUM
  • When mariadb client uses EditLine instead of readline (such as on Debian and Ubuntu), Unicode characters are not accepted. (MDEV-28197)

  • When the optimizer chooses a semi-join optimization for a subquery, the LooseScan and FirstMatch strategies are not considered for certain queries where they would be appropriate, and they are considered for certain queries where they would be inappropriate. (MDEV-28749)

  • When FULLTEXT search is performed on an InnoDB table, the results are incorrect when the search term contains an apostrophe ('). (MDEV-20797)

    • Starting with this release, when a search term contains an apostrophe ('), InnoDB tokenizes the word at the apostrophe, ignores the first token, and matches against the second token.

  • After upgrading from old versions of MariaDB Server, some ALTER TABLE operations fail if ALGORITHM=NOCOPY is specified. (MDEV-28727)

    • In previous releases, the following error could be raised:

ERROR 1845 (0A000): ALGORITHM=NOCOPY is not supported for this operation. Try ALGORITHM=INPLACE
  • When optimizer_switch='not_null_range_scan=on' is set, queries that use table elimination can produce incorrect results. (MDEV-28858)

    • Table elimination is used when the query performs a JOIN and has const tables.

  • When a replica server is replicating from a primary server that is too old to write explicit_defaults_for_timestamp to the binary log, the replica server ignores its own value and assumes that the value should be OFF. (MDEV-29078)

    • Starting with this release, the replica server determines an optimal value for explicit_defaults_for_timestamp based on the version of the primary server. If the primary server is too old to write its value to the binary log, the replica server uses its own value.

  • When a UUID or INET6 column is referenced in a WHERE col IN(SELECT ..) subquery of an UPDATE or DELETE statement, the query does not affect the correct number of rows. (MDEV-28491)

  • When a BINARY column is used to store UUIDs and a SELECT statement filters the column with an IN clause, the query can be very slow if the UUIDs are specified in hexadecimal. (MDEV-25020)

  • DROP DATABASE is case-insensitive. (MDEV-28802)

  • When mariadb-backup is used to prepare a backup, the operation can fail if the backup contains DDL. (MDEV-28974)

    • In previous releases, when the backup failed, the output could contain messages like the following:

[ERROR] InnoDB: Attempted to open a previously opened tablespace. Previous tablespace:./DATABASE_NAME/TABLE_NAME.ibd uses space ID: SPACE_ID. Cannot open filepath: DATABASE_NAME/TABLE_NAME.ibd which uses the same space ID.
[Warning] InnoDB: We do not continue the crash recovery, because the table may become corrupt if we cannot apply the log records in the InnoDB log to it. To fix the problem and start mariadbd:
[Note] InnoDB: 1) If there is a permission problem in the file and mysqld cannot open the file, you should modify the permissions.
[Note] InnoDB: 2) If the tablespace is not needed, or you can restore an older version from a backup, then you can remove the .ibd file, and use --innodb_force_recovery=1 to force startup without this file.
[Note] InnoDB: 3) If the file system or the disk is broken, and you cannot remove the .ibd file, you can set --innodb_force_recovery.
##mariadb-backup##: srv_start() returned 11 (Generic error).
  • When mariadb-backup is used to perform a backup while DDL is being executed, the output can contain excessive messages about DDL tracking. (MDEV-29137)

    • In previous releases, the output could contain many messages like the following:

DDL tracking : modify SPACE_ID "./DATABASE_NAME/TABLE_NAME.ibd"
  • When the JSON_ARRAY, JSON_ARRAY_APPEND, JSON_ARRAY_INSERT, JSON_INSERT, JSON_SET, or JSON_REPLACE functions are called with a LONGTEXT column, the result is truncated. (MDEV-29264)

Changes in Storage Engines

  • This release originally incorporated MariaDB ColumnStore storage engine version 22.08.1.

  • This release previously incorporated MariaDB ColumnStore storage engine version 22.08.2.

  • This release previously incorporated MariaDB ColumnStore storage engine version 22.08.3.

  • This release now incorporates MariaDB ColumnStore storage engine version 22.08.4.

Interface Changes

  • columnstore_cmapi_host system variable added

  • columnstore_cmapi_key system variable added

  • columnstore_cmapi_port system variable added

  • columnstore_cmapi_version system variable added

  • columnstore_s3_key system variable added

  • columnstore_s3_region system variable added

  • columnstore_s3_secret system variable added

  • explicit_defaults_for_timestamp system variable dynamic changed from No to Yes

  • mariadb --enable-cleartext-plugin command-line option added

  • mariadb-backup --sst-max-binlogs command-line option removed

  • mariadb-dump --max-statement-time command-line option added

  • mariadbd --spider-direct-aggregate command-line option added

  • spider_direct_aggregate system variable added

  • sys_guid FUNCTION plugin added

  • uuid DATA TYPE plugin added

  • uuid FUNCTION plugin added

Platforms

In alignment to the enterprise lifecycle, MariaDB Enterprise Server 10.6.9-5 is provided for:

  • CentOS 7 (x86_64)

  • Debian 10 (x86_64, ARM64)

  • Debian 11 (x86_64, ARM64)

  • Microsoft Windows (x86_64)

  • Red Hat Enterprise Linux 7 (x86_64)

  • Red Hat Enterprise Linux 8 (x86_64, ARM64)

  • Red Hat Enterprise Linux 9 (x86_64, ARM64)

  • Rocky Linux 8 (x86_64, ARM64)

  • Rocky Linux 9 (x86_64, ARM64)

  • SUSE Linux Enterprise Server 12 (x86_64)

  • SUSE Linux Enterprise Server 15 (x86_64, ARM64)

  • Ubuntu 18.04 (x86_64, ARM64)

  • Ubuntu 20.04 (x86_64, ARM64)

  • Ubuntu 22.04 (x86_64, ARM64)

Some components of MariaDB Enterprise Server might not support all platforms. For additional information, see MariaDB Corporation Engineering Policies".

Installation Instructions

  • MariaDB Enterprise Server 10.6

  • Enterprise Cluster Topology with MariaDB Enterprise Server 10.6

  • Primary/Replica Topology with MariaDB Enterprise Server 10.6

  • ColumnStore Object Storage Topology with MariaDB Enterprise Server 10.6 and MariaDB Enterprise ColumnStore 23.02

  • ColumnStore Shared Local Storage Topology with MariaDB Enterprise Server 10.6 and MariaDB Enterprise ColumnStore 23.02

  • HTAP Topology with MariaDB Enterprise Server 10.6 and MariaDB Enterprise ColumnStore 23.02

  • Single-Node Enterprise ColumnStore 23.02 with MariaDB Enterprise Server 10.6 and Object Storage

  • Single-Node Enterprise ColumnStore 23.02 with MariaDB Enterprise Server 10.6

  • Enterprise Spider Sharded Topology with MariaDB Enterprise Server 10.6

  • Enterprise Spider Federated Topology with MariaDB Enterprise Server 10.6

Upgrade Instructions

  • Upgrade to MariaDB Enterprise Server 10.6

  • Upgrade from MariaDB Community Server to MariaDB Enterprise Server 10.6

This page is: Copyright © 2025 MariaDB. All rights reserved.

Release Notes for MariaDB Enterprise Server 10.6.8-4

MariaDB Enterprise Server 10.6.8-4 is a maintenance release of MariaDB Enterprise Server 10.6. This release includes a variety of fixes.

MariaDB Enterprise Server 10.6.8-4 was released on 2022-06-13.

Fixed Security Vulnerabilities

CVE (with cve.org link)

CVSS base score

CVE-2022-27458

7.5

CVE-2022-27457

7.5

CVE-2022-27456

7.5

CVE-2022-27455

7.5

CVE-2022-27452

7.5

CVE-2022-27451

7.5

CVE-2022-27449

7.5

CVE-2022-27448

7.5

CVE-2022-27447

7.5

CVE-2022-27446

7.5

CVE-2022-27445

7.5

CVE-2022-27444

7.5

CVE-2022-27387

7.5

CVE-2022-27386

7.5

CVE-2022-27384

7.5

CVE-2022-27383

7.5

CVE-2022-27382

7.5

CVE-2022-27381

7.5

CVE-2022-27380

7.5

CVE-2022-27379

7.5

CVE-2022-27378

7.5

CVE-2022-27377

7.5

CVE-2022-27376

7.5

CVE-2022-21451

7.5

CVE-2022-32088

6.5

CVE-2022-32087

6.5

CVE-2022-32086

6.5

CVE-2022-32085

6.5

CVE-2022-32083

6.5

CVE-2021-46669

6.5

Backported Features

MariaDB Enterprise Server enables a predictable development and operations experience through an enterprise lifecycle. These new features have been backported after reaching maturity in MariaDB Community Server:

  • mariadb-dump option --as-of reads data as of specific timestamp from system-versioned tables. (MENT-1457)

  • Added JSON_EQUALS() function to check JSON equality. (MENT-1452)

  • Added JSON_NORMALIZE() function to normalize JSON values. (MENT-1456)

  • Added password_reuse_check password validation plugin. (MENT-1451)

Notable Changes

  • Galera updated to 26.4.12

  • Spider storage engine refuses attempts to create a temporary table since the engine cannot itself store data and cannot create temporary tables on a remote server. (MDEV-28225)

  • Status variables Innodb_encryption_key_rotation_list_length, Innodb_num_index_pages_written and Innodb_num_non_index_pages_written were unused and have been removed. (MDEV-28541, MDEV-28537)

  • Starting with this release, when wsrep_sst_method is set to rsync or mariadb-backup, the sst_max_binlogs SST option can be specified in the [sst] option group in configuration files. This parameter specifies the number of binary log files to be sent to the joiner node during SST. (MDEV-27524)

    • The default value is 0:

      • If a binlog exists, it will be transferred.

      • If a binlog does not exist, no binlog will be transferred.

  • Server error messages are available in Chinese. (MDEV-28227)

  • Xpand storage engine support is discontinued for MariaDB Enterprise Server 10.6. (MENT-1499)

  • Ubuntu 22.04 LTS support added. (MENT-1441)

Issues Fixed

Can result in data loss

  • When the parser converts a string from the binary character set to a multi-byte character set (such as utf32), an invalid string could be produced. (MDEV-23210)

  • When rows are inserted into an intermediate temporary table via the LOAD DATA INFILE statement ,and then the rows are copied from the temporary table to a persistent table, the rows are not written to binary log if binlog_format=MIXED is set, which prevents the operation from properly replicating to replica servers. (MDEV-24667)

  • When innodb_disallow_writes=ON is set, mariadb-admin shutdown can hang. (MDEV-25975)

    • Starting with this release, the innodb_disallow_writes system variable has been removed.

  • When a replica server's I/O thread receives an incomplete event group from the primary server, the replica server continues writing events to the relay log and does not raise an error. (MDEV-27697)

  • If a primary is shutdown during an active semi-sync connection during the period when the primary is awaiting an ACK, the primary hard kills the active communication thread and does not ensure the transaction was received by a replica. This can lead to an inconsistent replication state. (MDEV-11853)

  • InnoDB page corruption on btrfs filesystem with innodb_use_native_aio=1 (MDEV-27900)

  • Semisync-replica server recovery fails to rollback a prepared transaction. (MDEV-28461)

Can result in a hang or crash

  • With MariaDB Enterprise Cluster, powered by Galera, when wsrep_sst_method is set to rsync or mariadb-backup, the donor node does not transfer the correct binary logs to the joiner node with some configurations. (MDEV-27524)

  • When a window function is used in the global ORDER BY clause of a SELECT statement with a UNION, the statement should be rejected, but the server executes the statement and crashes with a segmentation fault. (MDEV-15208)

  • When a stored procedure queries a view and uses a for loop, the server can crash with a segmentation fault when the stored procedure is called twice in the same session. (MDEV-26009)

  • When innochecksum is executed on an encrypted tablespace file using the --page-type-summary or -S option, innochecksum crashes with a segmentation fault unless the --page-type-dump or -D option is also specified. (MDEV-27835)

  • When an invalid CREATE SEQUENCE .. RESTART statement is used inside of a CREATE PROCEDURE or CREATE FUNCTION statement, the server can crash while parsing the statement. (MDEV-28220)

  • When a table contains a virtual generated column that is defined using the IF() and DATE_FORMAT() functions, inserting a row into the table can cause the server to crash with a segmentation fault. (MDEV-24176)

  • When a non-updateable view is defined with ALGORITHM=TEMPTABLE, selecting data from the view can cause the server to crash with a segmentation fault. (MDEV-21028)

  • When a UNION of decimal types is performed in an ORDER BY clause, the server can crash with a segmentation fault. (MDEV-25994)

  • When a stored procedure executes a query that results in a mergeable derived table, the server can crash with a segmentation fault when the stored procedure is called twice in the same session. (MDEV-27212)

    • Querying views can result in mergeable derived tables.

    • Using subqueries with outer references can result mergeable derived tables.

  • When ANALYZE FORMAT=JSON is executed with a query that contains a subquery, the server can crash. (MDEV-28268)

  • When a query using a window function with an OVER (PARTITION BY ..) or OVER (ORDER BY ..) clause is executed, the server can crash with a segmentation fault. (MDEV-19398)

    • If the query also uses WITH ROLLUP, this crash is more likely.

    • If the query's OVER (PARTITION BY ..) or OVER (ORDER BY ..) clause uses an aggregate function, this crash is more likely.

  • When a query contains an outer join expression and a non-correlated subquery that the optimizer determines is low cost, executing the query can cause the server to crash if the optimizer also determines that the inner join expression can be eliminated. (MDEV-28437)

  • With MariaDB Enterprise Cluster, a joiner node's binary logs could be deleted during an Incremental State Transfer (IST), which causes the node to fail to start, because it can not read the binary logs. (MDEV-28583)

    • This issue is confirmed to happen with wsrep_sst_method set to rsync, but it might also occur with other SST/IST methods.

  • Online DDL fails while checking for instant alter condition (MDEV-28060)

  • With MariaDB Enterprise Cluster (Galera), parallel async replication hangs on a Galera node when slave-parallel-threads is greater than 1 (MDEV-27568)

  • With MariaDB Enterprise Cluster (Galera), possible crash after a conflict of the applier thread with a stored procedure call triggered by the event scheduler. (MDEV-27713)

  • Server crashes when executing a shutdown statement after starting an XA transaction. (MDEV-26575)

  • Possible server crash during mariadbd initialization, if the number of GTIDs added since that last purge of the mysql.gtid_slave_pos tables is greater than or equal to the --gtid-cleanup-batch-size value. (MDEV-26473)

  • Possible server crash if an INSERT .. SELECT or REPLACE .. SELECT statement contains an ON expression in the top-level select and this expression used a subquery with a column reference. (MDEV-28578)

  • Running a grouping query over non-blob columns that take more than 65535 bytes (for example, VARCHAR(16383) CHARACTER SET UTF32) could cause a crash. (MDEV-24560)

  • Possible crash after or during DROP TABLE when the InnoDB buffer pool size has been changed. (MDEV-27891)

  • InnoDB crash on multiple concurrent SHOW TABLE STATUS (MDEV-26551)

  • Shutdown hangs after altering an InnoDB partition when innodb_fast_shutdown=0 (MDEV-28079)

Can result in unexpected behavior

  • When OPTIMIZE TABLE is executed on a sequence, the server raises an ER_BINLOG_UNSAFE_STATEMENT warning, even if binlog_format is set to ROW or MIXED. (MDEV-24617)

    • The warning can appear in the MariaDB Error Log as the following:

[Warning] Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave Statement: OPTIMIZE TABLE SEQUENCE_NAME
  • When an UPDATE or DELETE statement uses an OR clause, the server raises an ER_UPDATE_WITHOUT_KEY_IN_SAFE_MODE error. (MDEV-18304)

    • The error can appear on the client as the following:

You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column
  • When an UPDATE statement uses a subquery inside an IN() clause, the optimizer could incorrectly choose to perform a full table scan (with type: ALL) when a range scan (with type: range) would be more efficient. (MDEV-22377)

  • When a table contains multiple ENUM columns with identical values, the values could become corrupt if multi-byte character sets are used. (MDEV-28078)

  • When DECIMAL columns are read from information_schema.PROCESSLIST, the server could incorrectly raise an ER_BAD_DATA warning. (MDEV-28131) The warning can appear on the client as the following after executing SHOW WARNINGS:

Encountered illegal value '' when converting to DECIMAL
  • With sql_mode=ORACLE, the parser allows functions to be called using PACKAGE_NAME.FUNCTION_NAME(), but the parser raises a ER_PARSE_ERROR error if the function is called using DATABASE_NAME.PACKAGE_NAME.FUNCTION_NAME(). (MDEV-28166)

  • When a view is used to update multiple rows of a temporal table in a single UPDATE statement, the server incorrectly raises a ER_WARN_VIEW_WITHOUT_KEY warning. (MDEV-22973)

    • The warning can appear on the client as the following after executing SHOW WARNINGS:

View being updated does not have complete key of underlying table in it
  • When using mariadb-binlog with --raw and --stop-never, events from the primary server's currently active log file are not written to their respective log file specified by --result-file. (MDEV-14608)

  • When a prepared statement is used to execute EXPLAIN, a different query plan can be returned on the second execution. (MDEV-19631)

  • When slave_compressed_protocol is enabled with semi-synchronous replication, the numbering on packet headers can become out of sync between the primary and replica servers, but the inconsistency does not have any negative impact with release builds of MariaDB Enterprise Server. (MDEV-25580)

  • The server and MariaDB Enterprise Backup can raise unnecessary warnings about tablespace IDs in some scenarios. (MDEV-27343)

    • The warning can appear as the following:

InnoDB: Allocated tablespace ID TABLESPACE_ID for DATABASE_NAME/TABLE_NAME, old maximum was 0
  • This warning can be written to standard output (stdout) when preparing a backup with MariaDB Enterprise Backup.

  • This warning can be written to the MariaDB Error Log when InnoDB performs crash recovery at startup.

  • With MariaDB Enterprise Cluster, the joiner node fails to complete an SST when innodb_log_group_home_dir specifies a directory different than datadir. (MDEV-27740)

  • When a non-partitioned table using the DATA DIRECTORY clause is converted to a partitioned table, the DATA DIRECTORY clause is silently ignored, and the partitioned table is moved to the default directory. (MDEV-27065)

  • Starting with this release, the server will raise the WARN_OPTION_IGNORED warning.

  • When a table contains an invisible column, mariadb-dump does not produce the correct CREATE TABLE statement in the backup file. (MDEV-28253)

  • When a Spider table is queried using IF(COUNT() ..), the server can raise an ER_BAD_FIELD_ERROR error. (MDEV-25116)

  • With MariaDB Enterprise Cluster, State Snapshot Transfers (SSTs) can fail on the donor node when binary logs are enabled. (MDEV-26201)

  • With MariaDB Enterprise Cluster, when wsrep_node_address contains an IPv6 address and wsrep_sst_receive_address is set to the default value of AUTO, State Snapshot Transfers (SST) can fail. (MDEV-26171)

  • With temporal tables, replication can break if a system versioned table has been created on the replica via mariadb-dump, if the original table was altered before. (MDEV-28254)

  • mariadb-backup does not detect multi-source replication primary. (MDEV-21037)

  • Master_SSL_Crl shows Master_SSL_CA value in SHOW REPLICA STATUS output. (MDEV-28428)

  • MariaDB Audit plugin produces corrupted log entries for CONNECT events. (MENT-1438)

  • mariadb-dump does not create a dump where the sql_mode is set correctly for SQL/PL packages. (MDEV-27816)

  • Missing binlog data for INSERT .. ON DUPLICATE KEY UPDATE (MDEV-28310)

  • mariadb-backup prepare fails for incremental backups if a new schema is created after full backup. (MDEV-28446)

  • Optimizer uses all partitions during an UPDATE and ignores partitioning filters. (MDEV-28246)

  • When INSERT .. ON DUPLICATE KEY UPDATE is executed and binlog_format is set to MIXED, the server raises an ER_BINLOG_UNSAFE_STATEMENT warning even though the statement is written to the binary log in row-based format. (MDEV-21810)

    • The warning can appear in the MariaDB Error Log as the following:

[Warning] Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. INSERT... ON DUPLICATE KEY UPDATE on a table with more than one UNIQUE KEY is unsafe Statement: INSERT INTO TABLE_NAME VALUES (..) ON DUPLICATE KEY UPDATE KEY_NAME = KEY_VALUE
  • When INSERT .. ON DUPLICATE KEY UPDATE is executed and binlog_row_image is set to FULL, the server does not write unchanged columns to the binary log. (MDEV-21810)

  • PAM v2 plugin (auth_pam) produces zombie processes. (MENT-1443)

  • With MariaDB Enterprise Cluster (Galera), wsrep_incoming_addresses does not include address details. (MENT-1527)

  • With HashiCorp key management (hashicorp_key_management), dynamic changes to hashicorp_key_management_cache_timeout and hashicorp_key_management_cache_version_timeout system variables are ignored. (MENT-1512)

  • With Enterprise Spider, "Error while parsing DSN" can be returned when connecting to an ODBC source. (MENT-1316)

  • Last binlog file and position are "empty" in mariadb-backup --prepare output. (MDEV-26322)

  • "Error" is shown instead of NULL in performance schema table P_S.THREADS_CONNECTION_TYPE for background threads. (MDEV-28255)

  • With Enterprise Spider, login to ODBC resources fails if the password contains a semicolon. (MENT-805)

  • When setting group_concat_max_len to 1 GB or more and using GROUP_CONCAT() in a subquery, the result gets truncated. (MDEV-28490)

  • Crash recovery fails if the configured server ID does not match the server ID in the crashed data directory. (MDEV-27342)

  • The innochecksum -w option was inadvertently removed. (MDEV-28181)

  • Poor scaling with InnoDB and utf8mb3 (MDEV-27767)

  • mariadb-backup --log-copy-interval is measured in milliseconds in MariaDB Enterprise Server 10.5 and in microseconds in MariaDB Enterprise Server 10.6. (MDEV-27919)

  • Upsert during ALTER TABLE results in Duplicate entry error. (MDEV-15250)

  • After a failed IMPORT TABLESPACE fails to delete files, DROP TABLE on the table can result in ERROR 1005 (HY000): Can't create table test.t2 (errno: 184 "Tablespace already exists") (MDEV-27274)

  • Query performance degradation when using many tables. (MDEV-28073)

  • JSON_TABLE doesn't allow one to extract a JSON ""subdocument"" into a JSON column. (MENT-1497)

  • With MariaDB Enterprise Cluster, no shared cipher warning when starting without encryption config. The warning should be about a missing ssl_cert configuration. (MENT-1462)

Related to install and upgrade

  • Galera snapshot transfer fails to upgrade between some major versions. (MDEV-27437)

  • On Windows, MSI installer does not install client shared libraries. (MDEV-28581)

  • When the hashicorp_key_management encryption plugin is loaded, mariadb-dump should be used to take a logical backup before all minor and major upgrades due to changes that are not backward-compatible:

    • Starting with this release, the hashicorp_key_management encryption plugin rejects encryption keys that contain non-digit characters in the hex notation.

    • If a database is encrypted with encryption keys that only contain digit characters in the hex notation, the encryption keys will continue to work with the new version.

    • If a database is encrypted with encryption keys that are no longer valid, it is recommended to upgrade by installing the new version to a clean system and restoring a logical backup of the data. However, another alternative is to migrate the system to a new encryption key that only contains digit characters in the hex notation prior to the upgrade. If the alternative route is taken, extra care must be taken to ensure that all encrypted data uses the new encryption key. For help with this process, contact MariaDB Support.

    • When performing minor and major upgrades on Debian and Ubuntu, a logical backup must be taken before upgrading the server and plugin packages. When the old packages are upgraded, a message about plugin incompatibility is printed, but the server and plugin packages are upgraded anyway.

    • When performing minor upgrades on CentOS, RHEL, Rocky Linux, and SUSE, a logical backup can be taken before or after upgrading the server package. When the old packages are upgraded, a message about plugin incompatibility is printed, and the server package is upgraded, but the plugin package is not. The old plugin package must be manually removed, and then the new plugin package can be installed.

    • When performing major upgrades on CentOS, RHEL, Rocky Linux, and SUSE, a logical backup must be taken before upgrading the server and plugin packages. The old server and plugin packages must be manually removed, and then the new server and plugin packages can be installed.

    • When the plugin package is manually removed, the plugin configuration file can also be removed, so it is recommended to backup the file.

  • On Windows, error during upgrade from 10.6.5 to 10.6.7: Installation directory ''C:\Program Files\[MariaDB 10.6](../../mariadb-community-server-release-notes/release-notes-mariadb-10-6-series/what-is-mariadb-106.md)\'' exists and is not empty. (MDEV-27828)

  • On Windows, error during installation: InnoDB: innodb_page_size=65536 requires innodb_buffer_pool_size >= 20MiB current 10MiB (MDEV-28471)

Changes in Storage Engines

  • This release originally incorporated MariaDB ColumnStore storage engine version 6.3.1.

  • This release later incorporated MariaDB ColumnStore storage engine version 6.4.1.

  • This release later incorporated MariaDB ColumnStore storage engine version 6.4.2.

  • This release later incorporated MariaDB ColumnStore storage engine version 6.4.4.

  • This release now incorporates MariaDB ColumnStore storage engine version 6.4.6.

Interface Changes

  • hashicorp_key_management_check_kv_version system variable added

  • innochecksum --write (-w) command-line option added

  • innodb_disallow_writes system variable removed

  • Innodb_encryption_key_rotation_list_length status variable removed

  • Innodb_num_index_pages_written status variable removed

  • Innodb_num_non_index_pages_written status variable removed

  • JSON_EQUALS() function added

  • JSON_NORMALIZE() function added

  • mariadb-backup --sst-max-binlogs command-line option added

  • mariadb-dump --as-of command-line option added

  • mariadbd --hashicorp-key-management-check-kv-version command-line option added

  • mariadbd --password-reuse-check command-line option added

  • mariadbd --password-reuse-check-interval command-line option added

  • password_reuse_check password_reuse_check.so plugin added

  • password_reuse_check_history system table added

  • password_reuse_check_interval system variable added

Platforms

In alignment to the enterprise lifecycle, MariaDB Enterprise Server 10.6.8-4 is provided for:

  • CentOS 7 (x86_64)

  • Debian 9 (x86_64, ARM64)

  • Debian 10 (x86_64, ARM64)

  • Debian 11 (x86_64, ARM64)

  • Microsoft Windows (x86_64)

  • Red Hat Enterprise Linux 7 (x86_64)

  • Red Hat Enterprise Linux 8 (x86_64, ARM64)

  • Rocky Linux 8 (x86_64, ARM64)

  • SUSE Linux Enterprise Server 12 (x86_64)

  • SUSE Linux Enterprise Server 15 (x86_64, ARM64)

  • Ubuntu 18.04 (x86_64, ARM64)

  • Ubuntu 20.04 (x86_64, ARM64)

Some components of MariaDB Enterprise Server might not support all platforms. For additional information, see MariaDB Corporation Engineering Policies".

Note

This is the final release for Debian 9.

Installation Instructions

  • MariaDB Enterprise Server 10.6

  • Enterprise Cluster Topology with MariaDB Enterprise Server 10.6

  • Primary/Replica Topology with MariaDB Enterprise Server 10.6

  • ColumnStore Object Storage Topology with MariaDB Enterprise Server 10.6 and MariaDB Enterprise ColumnStore 23.02

  • ColumnStore Shared Local Storage Topology with MariaDB Enterprise Server 10.6 and MariaDB Enterprise ColumnStore 23.02

  • HTAP Topology with MariaDB Enterprise Server 10.6 and MariaDB Enterprise ColumnStore 23.02

  • Single-Node Enterprise ColumnStore 23.02 with MariaDB Enterprise Server 10.6 and Object Storage

  • Single-Node Enterprise ColumnStore 23.02 with MariaDB Enterprise Server 10.6

  • Enterprise Spider Sharded Topology with MariaDB Enterprise Server 10.6

  • Enterprise Spider Federated Topology with MariaDB Enterprise Server 10.6

Upgrade Instructions

  • Upgrade to MariaDB Enterprise Server 10.6

  • Upgrade from MariaDB Community Server to MariaDB Enterprise Server 10.6

This page is: Copyright © 2025 MariaDB. All rights reserved.

Release Notes for MariaDB Enterprise Server 10.6.7-3

MariaDB Enterprise Server 10.6.7-3 is a maintenance release of MariaDB Enterprise Server 10.6. This release includes a variety of fixes.

MariaDB Enterprise Server 10.6.7-3 was released on 2022-03-14.

Fixed Security Vulnerabilities

CVE (with cve.org link)

CVSS base score

CVE-2021-46668

5.5

CVE-2021-46665

5.5

CVE-2021-46664

5.5

CVE-2021-46663

5.5

CVE-2021-46661

5.5

CVE-2021-46659

5.5

CVE-2022-21595

4.4

Notable Changes

  • Galera updated to 26.4.11

  • The maximum values for innodb_ft_cache_size and innodb_ft_total_cache_size have been changed from 80000000 to 1099511627776 (1 TB). (MENT-1428)

  • On Windows, core_file is enabled by default. (MDEV-18439)

  • New system variables have been added for the HashiCorp Key Management Plugin: (MENT-864)

    • hashicorp_key_management_cache_timeout defines the time (in milliseconds) after which the value of the key stored in the cache becomes invalid, and an attempt to read this data causes a new request to be sent to the vault server. If the value is 0, then the keys will always be considered invalid, but they are still used if the vault server is unavailable and hashicorp_key_management_use_cache_on_timeout is enabled. By default, the value is 60000 (1 minute).

    • hashicorp_key_management_cache_version_timeout defines the time (in milliseconds) after which the information about latest version number of the key (which is stored in the cache) becomes invalid and an attempt to read this information causes a new request to be sent to the vault server. If the value is 0, then information about latest key version numbers always considered invalid, but they are still used if the vault server is unavailable and hashicorp_key_management_use_cache_on_timeout is enabled. By default, the value is 0.

    • For maximum flexibility, both of the new system variables can be configured with the loose prefix:

[mariadb]
loose_hashicorp_key_management_cache_timeout=120000
loose_hashicorp_key_management_cache_version_timeout=120000
  • Crash recovery improvements for InnoDB (MDEV-26784, MDEV-27022, MDEV-27183, MDEV-27610)

  • The default value of innodb_change_buffering has been changed to none. (MDEV-27734)

Issues Fixed

Can result in data loss

  • Columns in some INFORMATION_SCHEMA tables are erroneously declared with DEFAULT clauses, which is not compliant with the SQL standard. (MDEV-18918)

    • Consequently, when sql_mode=EMPTY_STRING_IS_NULL is set, queries like CREATE TABLE .. SELECT .. FROM INFORMATION_SCHEMA... could encounter replication errors like the following:

Error 'Invalid default value for 'TABLE_NAME'' on query. Default database: 'test'. Query: 'CREATE TABLE `t1` (`TABLE_NAME` varchar(64) CHARACTER SET utf8 NOT NULL DEFAULT ''
  • When CREATE OR REPLACE SEQUENCE is written to the binary log, the statement is not flagged as DDL, which causes the replica servers to execute the statement in an unsafe way if parallel replication is enabled. (MDEV-27365)

  • After upgrading from MariaDB 10.3 or earlier, the names of some triggers can appear empty, and the trigger can't be dropped. (MDEV-25659)

Can result in a hang or crash

  • When a FULLTEXT index is added to an InnoDB table with ALGORITHM=INPLACE and the indexed column uses the tis620 character set, the server can crash with a segmentation fault (signal 11). (MDEV-24901)

  • When MariaDB Server is used on the ARM architecture, which uses a weak memory model, an internal hash table implementation can cause the server to crash with a segmentation fault (signal 11). (MDEV-27088)

  • When wsrep_sst_method=mariadb-backup and innodb_force_recovery=1 are set with MariaDB Enterprise Cluster, powered by Galera, the joiner node fails to perform an SST. (MDEV-26064)

    • The SST log contains the following message related to the failure:

mariadb-backup: The option "innodb_force_recovery" should only be used with "--prepare".
mariadb-backup: innodb_init_param(): Error occurred.
  • When --stream=xbstream is set, MariaDB Enterprise Backup can hang on lock acquisitions due to a deadlock. (MDEV-26558)

  • When a stored procedure is defined with a query that contains a set function, and the set function's only argument is an outer reference to a column of a mergeable view, a derived table, or a CTE, the second execution of the stored procedure can cause the server to crash. (MDEV-25086)

  • When a derived table is created for certain queries that use subqueries over Views or CTEs, the server can crash with a segmentation fault (signal 11). (MDEV-25631)

  • When a stored procedure uses a cursor to run a query that requires an internal temporary table (such as queries containing an ORDER BY clause), the server can crash due to a segmentation fault (signal 11). (MDEV-24827)

  • Server can crash if a CTE or derived table is not used by the query. (MDEV-25766)

  • When log_slow_verbosity = 'explain' is set and a query is executed that references a derived table, the server can crash while writing the query's execution plan to the slow query log. (MDEV-26249)

  • When a stored procedure or a prepared statement is used to execute a query that performs a join which compares a GEOMETRY column with a different data type, executing the stored procedure or prepared statement twice can cause the server to crash. (MDEV-20770)

  • When a system versioned table is created with character_set_server=utf8mb4 and collation_server=utf8mb4_unicode_1400_ci, the server can crash. (MDEV-27195)

  • When a system versioned table is partitioned by SYSTEM_TIME, executing DELETE FROM .. PARTITION(..) causes the server to crash. (MDEV-27217)

  • When the following conditions are met, executing a prepared statement twice can cause the server to crash: (MDEV-23182)

    • The in_predicate_conversion_threshold system variable must be set to some value n.

    • The query must contain an IN(...) clause with more than n string literals.

    • The query must require character set conversions.

  • After completing a successful SST with MariaDB Enterprise Cluster, wsrep_local_state_comment on the donor node still says 'Donor/Desynced'. (MDEV-27459)

  • With MariaDB Enterprise Cluster, when REPAIR VIEW is executed on a view that references information_schema.TABLES, the server can crash. (MDEV-25538)

  • When ALTER TABLE .. ADD COLUMN is used to instantly add columns in the middle of an InnoDB table, and then the tablespace is exported with FLUSH TABLES .. FOR EXPORT, and then the tablespace is re-imported with ALTER TABLE .. IMPORT TABLESPACE, the server can crash. (MDEV-27272)

  • When optimizer_switch='not_null_range_scan=on' is set, the server can crash if an index on an InnoDB table is used to check a condition that can evaluate to NULL. (MDEV-22846)

  • When a Spider table uses a FLOAT column, the server can crash with an assertion failure. (MDEV-27184)

    • In the MariaDB error log, the following error message could be written about the assertion failure:

Assertion `(old_top == initial_top (av) && old_size == 0) || ((unsigned long) (old_size) >= MINSIZE && prev_inuse (old_top) && ((unsigned long) old_end & (pagesize - 1)) == 0)' failed.
  • With MariaDB Enterprise Cluster, when a CREATE TABLE statement that defines a Foreign Key constraint is replicated to other cluster nodes, the nodes could apply the statement in parallel with other DML statements that affect the Foreign Key constraint, which causes the node to fail with an assertion failure. (MDEV-27276)

  • With MariaDB Enterprise Cluster, when two transactions delete a row from two separate InnoDB tables in parallel and a foreign key causes a delete to cascade for both transactions to the same row in a third table, the server can crash with an assertion failure. (MDEV-26803, MDEV-26298)

    • In previous releases, this issue could be avoided by setting wsrep_slave_threads=1.

    • In the MariaDB error log, the following error message about the assertion failure could be written:

int wsrep::client_state::bf_abort(wsrep::seqno): Assertion `mode_ == m_local || transaction_.is_streaming()' failed.
[ERROR] mysqld got signal 6 ;
  • When innodb_flush_log_at_trx_commit=2 and innodb_flush_method=O_DSYNC are set, the server could crash with an assertion failure. (MDEV-27754)

    • In the MariaDB error log, the following message about the assertion failure could be written:

InnoDB: Failing assertion: lsn >= log_sys.get_flushed_lsn()
  • When InnoDB does not use RAM disk for storage, the server can occasionally hang during a log checkpoint. (MDEV-27416)

  • When using Enterprise Spider, the server can crash due to memory corruption. (MDEV-27240)

  • When mariadbd --help is executed, the server could try to lock the Aria control file. (MDEV-24788)

    • In the MariaDB error log, the following error messages could be written about this:

[ERROR] mysqld: Can't lock aria control file '/var/lib/mysql/aria_log_control' for exclusive use, error: 11. Will retry for 0 seconds
[ERROR] Plugin 'Aria' init function returned error.
[ERROR] Plugin 'Aria' registration as a STORAGE ENGINE failed.
  • When an index is dropped and re-adding to a table in a different position using the INPLACE algorithm and the table uses the MEMORY storage engine, the server can crash. (MDEV-25555)

  • When a DDL statement involves an InnoDB FULLTEXT index, an internal race condition could cause the server to hang. (MDEV-27017)

  • When innodb_undo_log_truncate=ON is set, the server can hang. (MDEV-27414)

  • When DROP DATABASE is executed, the server can crash due to an out-of-bounds result from InnoDB's SUBSTR() function. (MDEV-27336)

Can result in unexpected behavior

  • When a multi-byte character set is used, the last character of a TINYTEXT column can be truncated, which makes it appear as a question mark ('?). (MDEV-24335)

  • Subquery using the ALL keyword on TIME columns produces a wrong result. (MDEV-27098)

  • Subquery using the ALL keyword on DATE columns produces a wrong result. (MDEV-27072)

  • When float literals are defined using scientific notation and the token also contains certain special characters, the parser incorrectly parses the float value and completely drops it from the request. (MDEV-27066)

  • When a double-encapsulated CTE query calls a function which reads a table that has been aliased in the CTE query, the server incorrectly raises an error with the ER_NO_SUCH_TABLE error code. (MDEV-26825)

  • When a CTE is used in a subquery of a DELETE statement, the server incorrectly raises an error with the ER_NO_DB_ERROR error code. (MDEV-26470)

  • When MariaDB Enterprise Cluster performs an SST, the SST scripts incorrectly try to read ssl_ca as a path to a directory of TLS CA certificates instead of using ssl_capath for that purpose. (MDEV-27181)

  • When MariaDB Enterprise Cluster performs an SST, the SST scripts do not always interpret log_bin_index correctly. (MDEV-26915)

  • When an index is used for an ORDER BY .. LIMIT query, the optimizer does not disable the Range Checked for Each Record optimization. (MDEV-27270)

  • When optimizer_switch='index_merge_sort_intersection=on' is set, the optimizer can incorrectly choose to merge an index that does not help, because the query conditions require the full index to be scanned. (MDEV-27262)

  • When the version system variable is set, MariaDB Connector/C and the mariadb client do not interpret MariaDB Server's extended metadata properly, which can cause results from some SHOW .. to be right-aligned. (MDEV-27304)

  • When an INSERT .. SELECT statement selects from and inserts into the same table, rows are counted twice, which can cause row numbers to be reported incorrectly in error messages. (MDEV-26698)

  • When a replica server's relay log is rotated, Seconds_Behind_Master in SHOW REPLICA STATUS can temporarily show an incorrect value that is very high. (MDEV-16091)

  • The collation column in the information_schema.STATISTICS table is incorrectly read as NULL. (MDEV-4621)

  • When a join performs a comparison between an expression that uses a case-insensitive collation and an ENUM column that uses a binary collation, the comparison uses the wrong collation, which can cause results to be incorrect. (MDEV-26129)

  • When innodb_buffer_pool_size is changed dynamically with SET GLOBAL, InnoDB does not enforce the minimum value that is enforced on startup, which can result in an impossibly small buffer pool with some values of innodb_buffer_pool_chunk_size. (MDEV-27467)

  • When the DATABASE() function is used in some queries (such as queries using UNION ALL), database names can be truncated to 34 characters, even though database names can have up to 64 characters. (MDEV-27544)

  • When the --symbolic-links option is disabled, such as when --skip-symbolic-links or --disable-symbolic-links is set, InnoDB still allows symbolic links and .isl files to be created if tables have the DATA DIRECTORY option. (MDEV-26870)

  • When CREATE TABLE t1 LIKE t2 is executed and the t2 table is a partitioned table that uses the MyISAM or Aria storage engines and has the DATA DIRECTORY option defined for partitions, the operation fails with a file system error. (MDEV-25917)

  • When sql_mode=ONLY_FULL_GROUP_BY is set, some window functions incorrectly raise an error with the ER_MIX_OF_GROUP_FUNC_AND_FIELDS error code. (MDEV-17785)

  • When a [system-versioned table is partitioned by SYSTEM_TIME` with a ``LIMIT clause, CHECK TABLE can incorrectly return an error. (MDEV-25552)

  • The lateral derived optimization is not disabled for queries that use WITH ROLLUP, which causes queries that use GROUP BY to return incorrect results. (MDEV-26337)

  • When optimizer_switch='split_materialized=on' is set, queries that use the split optimization can return the wrong results. (MDEV-27510, MDEV-27132)

  • When a row is deleted from an InnoDB table, and then a new row with the same key is inserted into the table by a different transaction, InnoDB's MVCC code can incorrectly hide the new row from transactions that should see the changes: (MENT-1414)

    • Consequently, queries can try to insert another new row with the same key, which results in an error with the ER_DUP_ENTRY error code.

    • When a replica server has slave_parallel_mode set to 'optimistic' or 'aggressive', this can result in the following error in SHOW REPLICA STATUS:

Last_Errno: 1062
Last_Error: Error 'Duplicate entry 'VALUE' for key 'KEY_NAME'' on query. Default database: 'DATABASE_NAME'. Query: 'INSERT INTO ..'
  • With MariaDB Enterprise Audit, prepared statements can't be used to enable audit logging. (MENT-379)

    • In previous releases, using a prepared statement to set the server_audit_logging system variable would fail with the following error message:

ERROR 1 (HY000): Logging cannot be enabled.
  • When a proxy user is used for authentication, the server checks the proxy user account for the following security controls: (MDEV-26339)

    • SSL/TLS requirements

    • Account locking

    • Password expiration

    • Starting with this release, the server checks the original user account for the security controls mentioned above.

  • When wsrep_osu_method='TOI' is set with MariaDB Enterprise Cluster, ALTER SEQUENCE is not replicated to other nodes as DDL. (MDEV-19353)

  • With MariaDB Enterprise Cluster, a race condition in group commit logic could cause cluster nodes to apply transactions in the wrong order, which could cause the server to fail with an assertion. (MDEV-27348)

    • In the MariaDB Error Log, the message about the assertion failure could look similar to the following:

void trx_rseg_update_wsrep_checkpoint(trx_rsegf_t*, const XID*, mtr_t*): Assertion `xid_seqno > wsrep_seqno' failed.
[ERROR] mysqld got signal 6 ;
  • When the query cache is enabled and older clients or connectors that don't support the CLIENT_EXTENDED_METADATA capability flag are used, queries could fail with an unknown error. (MDEV-24487)

    • As part of the fix, the CLIENT_EXTENDED_METADATA column has been added to the information_schema.QUERY_CACHE_INFO table.

  • When JSON is used with single row sub-selects or hybrid functions (such as IF() and COALESCE()), the results could be considered normal strings instead of JSON. (MDEV-27018)

  • A performance regression exists for updates to InnoDB tables that do not use an index. (MDEV-27499)

  • With MariaDB Enterprise Cluster, when wsrep_gtid_mode=ON is set and the value of server_id is changed to a new value, transactions still use the old server_id value in GTIDs. (MDEV-26223)

  • When OFFSET is combined with SELECT DISTINCT, a JOIN, and IN(..), OFFSET is ignored. (MDEV-27382)

  • When a numeric argument is provided to COLLATE, the server always uses a collation of the latin1 character set instead of a collation of character_set_connection. (MDEV-24584)

    • When a COLLATE clause specifies a collation of character_set_connection, the query could fail with the following error message:

ERROR 1253 (42000): COLLATION ' …' is not valid for CHARACTER SET 'latin1'
  • Queries that use JSON functions can't be killed with KILL QUERY and don't respect the limit specified by max_statement_time. (MDEV-24909)

  • The Windows installer does not check if the selected directory is empty, which could cause MariaDB Enterprise Server to be installed in the same directory as a different version. (MDEV-27546)

  • The Windows Service for MariaDB Enterprise Server does not start if MariaDB Enterprise Server is installed in a restricted directory. (MDEV-27535)

  • The default value of innodb_read_only_compressed has been changed from ON to OFF. (MDEV-27736)

    • For users using the InnoDB Compressed row format, this change allows smooth upgrades to MariaDB Enterprise Server 10.6 and later without requiring users to update any configuration file.

Related to install and upgrade

  • When the mysql.AddGeometryColumn and mysql.DropGeometryColumn stored procedures use the old default DEFINER = 'root@localhost', mariadb-upgrade does not alter them to use the new default DEFINER = 'mariadb.sys@localhost'. (MDEV-27124)

  • When MariaDB Server is upgraded from 10.2, 10.3, or 10.4, InnoDB upgrades the redo log format in a manner that is not crash-safe. (MDEV-27190)

  • When the 'root'@'localhost' user account does not exist, mariadb-upgrade can fail. (MDEV-26925)

    • The output could show the following error messages:

ERROR 1449 (HY000) at line 832: The user specified as a definer ('root'@'localhost') does not exist
FATAL ERROR: Upgrade failed

Changes in Storage Engines

  • This release incorporates MariaDB ColumnStore storage engine version 6.2.3.

Interface Changes

  • ER_VERS_NOT_ALLOWED error code added

  • innodb_buffer_pool_size system variable minimum value changed from 5242880 to 2097152

  • innodb_change_buffering system variable default value changed from all to none

  • innodb_force_load_corrupted system variable removed

  • innodb_ft_cache_size system variable dynamic changed from No to Yes

  • innodb_ft_cache_size system variable maximum value changed from 80000000 to 1099511627776

  • innodb_ft_total_cache_size system variable dynamic changed from No to Yes

  • innodb_ft_total_cache_size system variable maximum value changed from 1600000000 to 1099511627776

  • innodb_read_only_compressed system variable default value changed from ON to OFF

  • mariadb-upgrade --check-if-upgrade-is-needed command-line option added

  • mariadbd --hashicorp-key-management-cache-timeout command-line option added

  • mariadbd --hashicorp-key-management-cache-version-timeout command-line option added

  • mariadbd --innodb-force-load-corrupted command-line option removed

  • mariadbd --rocksdb-ignore-datadic-errors command-line option added

  • rocksdb_ignore_datadic_errors system variable added

Platforms

In alignment to the enterprise lifecycle, MariaDB Enterprise Server 10.6.7-3 is provided for:

  • CentOS 7 (x86_64)

  • Debian 9 (x86_64, ARM64)

  • Debian 10 (x86_64, ARM64)

  • Debian 11 (x86_64, ARM64)

  • Microsoft Windows (x86_64)

  • Red Hat Enterprise Linux 7 (x86_64)

  • Red Hat Enterprise Linux 8 (x86_64, ARM64)

  • SUSE Linux Enterprise Server 12 (x86_64)

  • SUSE Linux Enterprise Server 15 (x86_64, ARM64)

  • Ubuntu 18.04 (x86_64, ARM64)

  • Ubuntu 20.04 (x86_64, ARM64)

Some components of MariaDB Enterprise Server might not support all platforms. For additional information, see MariaDB Corporation Engineering Policies".

Installation Instructions

  • MariaDB Enterprise Server 10.6

  • Enterprise Cluster Topology with MariaDB Enterprise Server 10.6

  • Primary/Replica Topology with MariaDB Enterprise Server 10.6

  • ColumnStore Object Storage Topology with MariaDB Enterprise Server 10.6 and MariaDB Enterprise ColumnStore 23.02

  • ColumnStore Shared Local Storage Topology with MariaDB Enterprise Server 10.6 and MariaDB Enterprise ColumnStore 23.02

  • HTAP Topology with MariaDB Enterprise Server 10.6 and MariaDB Enterprise ColumnStore 23.02

  • Single-Node Enterprise ColumnStore 23.02 with MariaDB Enterprise Server 10.6 and Object Storage

  • Single-Node Enterprise ColumnStore 23.02 with MariaDB Enterprise Server 10.6

  • Enterprise Spider Sharded Topology with MariaDB Enterprise Server 10.6

  • Enterprise Spider Federated Topology with MariaDB Enterprise Server 10.6

Upgrade Instructions

  • Upgrade to MariaDB Enterprise Server 10.6

  • Upgrade from MariaDB Community Server to MariaDB Enterprise Server 10.6

This page is: Copyright © 2025 MariaDB. All rights reserved.

Release Notes for MariaDB Enterprise Server 10.6.5-2

MariaDB Enterprise Server 10.6.5-2 is a maintenance release of MariaDB Enterprise Server 10.6. This release includes a variety of fixes.

MariaDB Enterprise Server 10.6.5-2 was released on 2021-12-13.

Fixed Security Vulnerabilities

CVE (with cve.org link)

CVSS base score

CVE-2022-27385

7.5

CVE-2021-46667

7.5

CVE-2022-31624

6.5

CVE-2021-46662

5.5

Notable Changes

  • Galera updated to 26.4.10.

  • Debian 11 support added.

  • Enterprise Spider no longer enables pushdown of UDFs and Stored Functions to the Data Node by default: (MDEV-26545)

    • The default value of spider_use_pushdown_udf has changed from -1 to 0

    • In previous releases, Enterprise Spider pushed UDFs and Stored Functions down to the Data Node by default, which could cause query results to be inconsistent.

    • Starting with this release, all UDFs and stored functions are evaluated on the Spider Node by default. If desired, pushdown of UDFs and Stored Functions can be explicitly enabled by setting spider_use_pushdown_udf=1. Testing is recommended to confirm that query results are consistent.

  • Performance Schema tables provide descriptions of each column in the COMMENT column option. (MDEV-25325)

  • In the Spider ODBC Topology, Enterprise Spider automatically sets the appropriate transaction isolation level for the ODBC data source. (MENT-1328)

  • The InnoDB Force Recovery procedure has changed to differentiate between rollback of DDL and DML operations. The changes are: (MDEV-25683)

    • The behavior of innodb_force_recovery is no longer identical when innodb_force_recovery=3 and innodb_force_recovery=4

    • When innodb_force_recovery=3 is set, InnoDB skips rollback of DML operations, but DDL operations will still be rolled back using the DDL log.

    • When innodb_force_recovery=4 is set, InnoDB skips rollback of both DML and DDL operations. This behavior is equivalent to setting innodb_force_recovery=3 in versions earlier than MariaDB Enterprise Server 10.6.5.

Issues Fixed

Can result in data loss

  • InnoDB tables with ROW_FORMAT=COMPRESSED could be corrupted. (MENT-1367)

Can result in a hang or crash

  • MariaDB Enterprise Cluster, powered by Galera, can crash on INSERT if the table does not have a primary key and if the data for a field exceeds 4096 bytes. (MDEV-24978)

  • When an InnoDB tablespace (.ibd) file is imported using ALTER TABLE .. IMPORT TABLESPACE without a corresponding .cfg file, InnoDB causes a server crash. (MDEV-26131, MDEV-20931)

  • When OPTIMIZE TABLE (or mariadb-check -o) is executed against an InnoDB table with a FULLTEXT index, InnoDB can cause a server crash. (MDEV-25702, MENT-1198)

  • Resolving aggregate functions that are used in a view can cause in a crash. (MDEV-24454)

  • Executing CREATE OR REPLACE TABLE AS SELECT under LOCK TABLE can cause in a crash. (MDEV-23391)

  • If two InnoDB tables have a foreign key and an operation cascades from the parent table to the child table, an index on a virtual generated column in the child table can become corrupt. (MDEV-26866)

  • MariaDB Enterprise Cluster, powered by Galera, crashes with errors like: [ERROR] WSREP: Trx 236236 tries to abort slave trx 236238 (MDEV-25835)

  • Server crashes when a table uses a sequence as a column default (DEFAULT NEXT_VALUE(my_seq)) and the table is used concurrently by both a prepared statement and a normal statement. (MDEV-22785)

  • InnoDB causes server crash when a table is converted from utf8mb3 to utf8mb4 (MDEV-25951)

  • When enabling MariaDB Enterprise Audit, server crash can occur. (MENT-1307)

  • MariaDB Enterprise Audit occasionally hangs when rotating logs. (MENT-1339)

  • On 64-bit Microsoft Windows when MyISAM accesses key buffer and key_buffer_size is greater than 4 GB, the server crashes. (MDEV-26533)

  • Using SET GLOBAL innodb_purge_threads to increase innodb_purge_threads, may cause a hang. (MENT-1331)

  • Enterprise Spider causes server crash when an ALTER TABLE operation requires access to a Data Node. (MDEV-26539)

  • InnoDB persistent statistics causes server to hang. (MDEV-15020)

  • On an InnoDB table, when a DDL statement rebuilds the parent table in a foreign key relationship, a concurrent INSERT into the child table sometimes causes a crash. (MDEV-26554)

  • On an InnoDB table, when the server crashes or is killed while a DROP TABLE or table-rebuilding ALTER TABLE operation is being executed, InnoDB causes a server crash during crash recovery, which occurs after the server has restarted. (MENT-1368)

  • InnoDB sometimes causes server crash during ALTER TABLE .. IMPORT TABLESPACE when the imported tablespace contains columns that have been instantly reordered or dropped. The MariaDB error log contains the following error message: (MDEV-18543) Schema mismatch (Index field name newcol doesn't match tablespace metadata field name for field position...

  • MariaDB Enterprise Cluster causes server crash when wsrep_on=OFF is set and transactions are in progress. (MENT-1236)

Can result in unexpected behavior

  • skip_networking does not prevent replication. (MDEV-24969)

  • MariaDB Enterprise Cluster joiner node incorrectly uses localhost for TLS certificate verification and fails to join cluster when wsrep_sst_method=mariadb-backup and encrypt=3 are configured. (MDEV-26360)

  • mariadb --binary-mode is not able to replay some mysqlbinlog outputs if 0 is in the data. (MDEV-25444)

  • Memory leak with row-based replication can lead to high memory usage on replica servers. (MDEV-26712)

  • SHOW CREATE VIEW and mariadb-dump generate invalid SQL for some complex views. (MDEV-26299)

  • When statement-based or mixed replication is used and a DML statement encounters an error in a transaction that creates or drops a temporary table, non-committed writes to transactional tables can be incorrectly replicated to replica servers. (MDEV-26833)

  • MariaDB Enterprise Cluster joiner node fails to join cluster when wsrep_sst_method=mariadb-backup and Backward Compatible SST TLS Mode is configured. (MDEV-26211)

  • Spider does not work correctly for UDF and stored functions if used in a query's WHERE conditions. (MDEV-26545)

  • If an INVISIBLE column has a computed default value, an INSERT statement that doesn't specify a value for the column causes the default value to be ignored. (MDEV-25891)

  • Password validation plugins (including simple_password_check) cause a user's existing password hash to be removed from the server's in-memory privilege cache when the user tries to change their password to an invalid password. (MDEV-26650)

  • With MariaDB Enterprise Cluster, a TRUNCATE on a table with a Foreign Key Constraint is not replicated to other nodes. (MDEV-26053)

  • InnoDB's adaptive purging can decrease throughput by starving user threads after dict_sys.mutex removal. (MDEV-26356)

  • CONNECTION_ID column is NULL in information_schema.THREAD_POOL_QUEUES (MDEV-26440)

  • The server in some cases shows decreasing performance with notes InnoDB: Cannot close file... in the error log. This issue occurs only when open-files-limit is reached and a log-checkpoint is triggered. (MDEV-25215)

  • XA PREPARE sometimes leads to lock wait timeouts on replica servers. (MDEV-26682)

  • Replica server does not invalidate query cache after replicating table updates. (MENT-1360)

  • MariaDB Enterprise Cluster, powered by Galera, shows inconsistent values for wsrep_apply_window and wsrep_commit_window when comparing performance_schema.galera_group_members and information_schema.GLOBAL_STATUS (MENT-1333)

  • MariaDB Enterprise Cluster incorrectly streams XA transactions when wsrep_trx_fragment_unit=statements is set, which causes errors when the fragment is applied. (MENT-1344)

  • With MariaDB Enterprise Cluster, a replica server replicating from a MariaDB Enterprise Cluster node incorrectly uses the primary server's server_id and wsrep_gtid_domain_id values to generate GTIDs for local transactions. (MDEV-26250)

  • MariaDB Enterprise Backup does not write the current GTID to xtrabackup_binlog_info when a MariaDB Enterprise Cluster node is backed up and wsrep_gtid_mode=ON is set. (MDEV-26237)

  • When a new MariaDB Enterprise Cluster node is bootstrapped with wsrep_gtid_mode=ON set, the node's configured server_id and wsrep_gtid_domain_id values are overridden by the values present in the node's binary logs. (MDEV-26223)

  • With MariaDB Enterprise Cluster, changes to wsrep_gtid_domain_id in my.cnf are ignored on node restart. (MDEV-25115)

Related to install and upgrade

  • On CentOS 7, auth_pam_tool has incorrect permissions. (MDEV-26380)

  • Running mariadb-upgrade with no 'root'@'localhost' user may fail with the message The user specified as a definer ('root'@'localhost') does not exist FATAL ERROR: Upgrade failed. (MDEV-26925)

Changes in Storage Engines

  • This release originally incorporated MariaDB ColumnStore storage engine version 6.2.2.

  • This release now incorporates MariaDB ColumnStore storage engine version 6.2.3.

Platforms

In alignment to the enterprise lifecycle, MariaDB Enterprise Server 10.6.5-2 is provided for:

  • CentOS 7 (x86_64)

  • Debian 9 (x86_64, ARM64)

  • Debian 10 (x86_64, ARM64)

  • Debian 11 (x86_64, ARM64)

  • Microsoft Windows (x86_64)

  • Red Hat Enterprise Linux 7 (x86_64)

  • Red Hat Enterprise Linux 8 (x86_64, ARM64)

  • SUSE Linux Enterprise Server 12 (x86_64)

  • SUSE Linux Enterprise Server 15 (x86_64, ARM64)

  • Ubuntu 18.04 (x86_64, ARM64)

  • Ubuntu 20.04 (x86_64, ARM64)

Some components of MariaDB Enterprise Server might not support all platforms. For additional information, see MariaDB Corporation Engineering Policies".

Installation Instructions

  • MariaDB Enterprise Server 10.6

  • Enterprise Cluster Topology with MariaDB Enterprise Server 10.6

  • Primary/Replica Topology with MariaDB Enterprise Server 10.6

  • ColumnStore Object Storage Topology with MariaDB Enterprise Server 10.6 and MariaDB Enterprise ColumnStore 23.02

  • ColumnStore Shared Local Storage Topology with MariaDB Enterprise Server 10.6 and MariaDB Enterprise ColumnStore 23.02

  • HTAP Topology with MariaDB Enterprise Server 10.6 and MariaDB Enterprise ColumnStore 23.02

  • Single-Node Enterprise ColumnStore 23.02 with MariaDB Enterprise Server 10.6 and Object Storage

  • Single-Node Enterprise ColumnStore 23.02 with MariaDB Enterprise Server 10.6

  • Enterprise Spider Sharded Topology with MariaDB Enterprise Server 10.6

  • Enterprise Spider Federated Topology with MariaDB Enterprise Server 10.6

Upgrade Instructions

  • Upgrade to MariaDB Enterprise Server 10.6

  • Upgrade from MariaDB Community Server to MariaDB Enterprise Server 10.6

This page is: Copyright © 2025 MariaDB. All rights reserved.

Release Notes for MariaDB Enterprise Server 10.6.4-1

MariaDB Enterprise Server 10.6.4-1 is the first General Availability (GA) release of MariaDB Enterprise Server 10.6. This release contains a variety of new features.

MariaDB Enterprise Server 10.6.4-1 was released on 2021-08-26.

Fixed Security Vulnerabilities

CVE (with cve.org link)

CVSS base score

CVE-2021-46658

5.5

Notable Changes

  • Extensive internal optimizations, including a refactoring of InnoDB storage engine code.

  • Atomic DDL

    • DDL (Data Definition Language) statements are now atomic operations. If the DDL statement is not fully successful, the operation will be rolled back. When the server crashes or is killed in the middle of a DDL statement, the operation is rolled back during crash recovery when the server is restarted. (MDEV-17567)

    • During crash recovery, the server uses the DDL log to determine if an operation needs to be rolled back. When the binary log is enabled, the crash recovery process ensures that the successful operations are written to the binary log and that the unsuccessful operations are not.

    • By default, the DDL log is at ddl-recovery.log in the datadir. When DDL statements are being executed, the DDL log is synchronized to disk very frequently. If you want to configure a custom path for the DDL log, the log-ddl-recovery option can be used.

    • As of this release, the following storage engines fully support atomic DDL:

      • Aria

      • InnoDB

      • MyISAM

      • MyRocks

  • Default InnoDB flush method

    • The default innodb_flush_method is now O_DIRECT (MDEV-24854)

    • Prior to this release, the default innodb_flush_method was fsync

  • UTF-8 (utf8) character set alias

    • The utf8 character set has been renamed to utf8mb3, which used to be an alias for the utf8 character set

    • The character set utf8 is now an alias that defaults to utf8mb3 but can be turned into an alias for utf8mb4 with a config change

    • The new default of old_mode=UTF8_IS_UTF8MB3 is what makes utf8mb3 default to utf8, and anything that removes this new value from old_mode changes utf8 to mean utf8mb4 (MDEV-8334)

    • In a future release series (after 10.6) the default value of old_mode will drop this new value, making utf8 default to utf8mb4

  • IPv6 by Default (MDEV-6536)

    • When --bind-address=HOSTNAME is configured, MariaDB Enterprise Server now listens on both IPv6 and IPv4 addresses.

Changes in Storage Engines

ColumnStore

  • This release incorporates MariaDB Enterprise ColumnStore version 6.1.1. Benefits include:

    • Disk-based aggregation allows larger aggregated result sets than can fit in memory

    • Increased DECIMAL precision

    • Transactional tables can be updated with data from ColumnStore tables

    • LZ4 compression

InnoDB

  • Default InnoDB flush method

    • (This item is also mentioned above in Notable Changes .)

    • The default innodb_flush_method is now O_DIRECT (MDEV-24854)

    • Prior to this release, the default innodb_flush_method was fsync

  • SELECT .. SKIP LOCKED

    • SELECT [ FOR UPDATE | LOCK IN SHARED MODE ] .. SKIP LOCKED ignores already-locked rows. (MDEV-13115)

    • One use case for this feature is within applications that sell a limited resource, such as ticketing, rentals, or seat-based sales. In these applications, you need a way to display only the available inventory. This can be accomplished by querying available inventory and skipping locked rows.

SELECT *
FROM ticketing
WHERE claimed = 0 AND section = 'B'
ORDER BY row DESC
LIMIT 10
FOR UPDATE SKIP LOCKED;
  • Compressed rows read-only by default

    • COMPRESSED row format is read-only by default. (MDEV-23497)

    • System variable innodb_read_only_compressed=ON by default.

    • System variable innodb_read_only_compressed=OFF enables write support.

    • This is a preparatory change. Additional change will occur in a future release series (after 10.6), when COMPRESSED row format will no longer accept writes. It is recommended to alter tables using the COMPRESSED row format to use the DYNAMIC row format with InnoDB page compression:

ALTER TABLE tab
 ROW_FORMAT=DYNAMIC
 PAGE_COMPRESSED=1;
  • For additional information, see "Convert InnoDB Tables to the Dynamic Row Format" and "Configure InnoDB Page Compression".

  • Information Schema changes for InnoDB

    • Information Schema INNODB_SYS_TABLESPACES directly reflects the filesystem. (MDEV-22343)

    • INNODB_SYS_TABLESPACES.PAGE_SIZE contains the physical page size of a page.

    • INNODB_SYS_TABLESPACES.FILENAME added as a replacement for SYS_DATAFILES.PATH

    • Information Schema INNODB_SYS_DATAFILES removed. (MDEV-22343)

  • Reduced global lock duration in InnoDB transaction deadlock checks (MDEV-24738)

  • InnoDB no longer acquires advisory file locks by default (MDEV-24393)

  • When using data-at-rest encryption with the file_key_management encryption plugin, InnoDB will automatically disable key rotation checks. (MDEV-14180)*

    • The file_key_management encryption plugin does not support key rotation, so key rotation checks are not required.*

    • In previous releases, unnecessary key rotation checks with the file_key_management encryption plugin could reduce performance, unless they were explicitly disabled by setting innodb_encryption_rotate_key_age=0.

    • Optimization added to speed up inserts into an empty InnoDB table. (MDEV-515)

  • Maximum value of the innodb_lock_wait_timeout system variable is now 100000000, which means infinite timeout.

  • Change in checksum algorithm options

    • innodb_checksum_algorithm options have changed: (MDEV-25105)

      • Supported: crc32, strict_crc32, full_crc32, strict_full_crc32

      • Eliminated: none, strict_none, innodb, strict_innodb

    • When InnoDB reads a page using an eliminated checksum algorithm after performing a physical upgrade, InnoDB will continue to accept the checksum.

    • When a query changes a page using an eliminated checksum algorithm, InnoDB will automatically switch to a supported checksum algorithm when InnoDB writes the changed page to disk.

Compatibility Enhancements

  • Expanded compatibility with Oracle through new functions:

    • Added function ADD_MONTHS() (MDEV-20025)

    • Added function ROWNUM() (MDEV-24285)

    • Added function SYS_GUID() (MDEV-24285)

    • Added function TO_CHAR() (MDEV-20017)

  • Expanded compatibility with Oracle through sql_mode=ORACLE enhancements:

    • With sql_mode=ORACLE added MINUS as an alias to EXCEPT (MDEV-20021)

    • With sql_mode=ORACLE improved SYSDATEto allow use without parenthesis. (MDEV-19682)

    • With sql_mode=ORACLE supports a rownum pseudo-column name as an alias for the ROWNUM() function (MDEV-24089)

    • With sql_mode=ORACLE subqueries in a FROM clause do not require the AS clause.

  • Enhanced compatibility with Sybase SQL Anywhere through sql_mode=EXTENDED_ALIASES: (MENT-1062)

    • With sql_mode=EXTENDED_ALIASES, alias resolution and use of column aliases in the SQL SELECT list and WHERE clause.

    • With sql_mode=EXTENDED_ALIASES, support use of an alias in the SELECT list before the alias is defined.

    • With sql_mode=EXTENDED_ALIASES, if the same label is used for an alias and a column, the alias is used.

Operational Enhancements

  • sys Schema

    • sys schema provides a set of views, functions, and stored procedures to aid DBA analysis of the Performance Schema. (MDEV-9077)

  • Increase in host name length

    • Host names in CREATE USER, GRANT and replication CHANGE MASTER can be up to 255 bytes long. (MDEV-24312)

  • UTF8

  • (This item is also mentioned above in Notable Changes .)

  • The utf8 character set has been renamed to utf8mb3, which was formerly an alias for the utf8 character set

  • The character set utf8 is now an alias that defaults to utf8mb3 but can be turned into an alias for utf8mb4 with a config change

  • The new default of old_mode=UTF8_IS_UTF8MB3 is what makes utf8mb3 default to utf8, and anything that removes this new value from old_mode changes utf8 to mean utf8mb4 (MDEV-8334)

  • In a future release series (after 10.6) the default value of old_mode will drop this new value, making utf8 default to utf8mb4

  • Ignored indexes

    • An index can be marked with the IGNORED option, which forbids the optimizer from using the index in queries. The IGNORED option can be used to evaluate whether an index is actually helpful for performance without dropping the index. (MDEV-7317)

    • Example syntax for CREATE TABLE:

CREATE TABLE table_name (
 id INT PRIMARY KEY,
 col_name INT,
 INDEX key_name (col_name) IGNORED
);
  • Example syntax for CREATE INDEX:

CREATE INDEX key_name
 ON table_name
 (col_name) IGNORED;
  • Example syntax for ALTER TABLE:

ALTER TABLE table_name
 ALTER INDEX key_name IGNORED;
  • An ignored index cannot be referenced in index hints, such as FORCE INDEX, IGNORE INDEX, or USE INDEX. When you try to reference an ignored index in an index hint, the server raises an error with the ER_KEY_DOES_NOT_EXISTS error code:

SELECT *
FROM table_name
 FORCE INDEX (key_name)
WHERE col_name > 1;
ERROR 1176 (42000): Key 'key_name' doesn't exist in table 'table_name'
  • Thread Pool enhancements

    • The thread pool can be configured to reshuffle connections into random thread groups periodically, which can help prevent many connections from becoming concentrated in just a few thread groups. (MENT-622)

    • The thread_pool_reshuffle_group_period system variable defines how frequently the connections are reshuffled. By default, the value is 0 which means that connections are not reshuffled.

    • The THREAD_POOL_CONNECTIONS information schema table can be used to view which connections are assigned to each thread group.

  • Systemd

    • Systemd socket activation is now supported. (MDEV-5536)

SQL Level Enhancements

  • JSON_TABLE()

    • JSON_TABLE() returns a table from JSON data. (MDEV-17399)

    • Queryable rows and columns are produced based on the JSON input, but are not stored in a table on disk. Column mappings are defined in a JSON path expression.

    • Prior to this release, the JSON_VALUE() and JSON_QUERY() functions could be used to retrieve values from JSON data on a per-column basis.

    • With JSON_TABLE():

      • JSON data can JOIN with existing tables.``

      • A table can be created from JSON data using CREATE TABLE .. AS SELECT against a JSON_TABLE().

      • NESTED PATH enables extraction of nested data from JSON arrays and objects.

  • OFFSET syntax

    • Additional syntax is supported for SELECT .. OFFSET (MDEV-23908)

    • OFFSET start { ROW | ROWS } FETCH { FIRST | NEXT } [ count ] { ROW | ROWS } { ONLY | WITH TIES } is an alternative to LIMIT .. OFFSET

    • The WITH TIES option requires the use of ORDER BY and allows the number of rows to exceed the FETCH count to ensure that the final row in the chunk includes any additional rows that have the same values in the ORDER BY fields (eliminating the need to fetch the next chunk to check for spill-over).

      • For example, the following query can return more than 10 rows if there are more username rows that match the username in the 10th row (the order of the purchase values within the complete set of each username's records is non-deterministic):

SELECT username, purchase
FROM user_purchases
ORDER BY username
OFFSET 305 ROWS
FETCH NEXT 10 ROWS WITH TIES;
  • For example, the following query specifies ONLY instead of WITH TIES, so the query can't return more than 10 rows:

SELECT username, purchase
FROM user_purchases
ORDER BY username, purchase
OFFSET 0 ROWS
FETCH NEXT 10 ROWS ONLY;
  • Views supported with FLUSH TABLES tbl_name [, tbl_name] .. WITH READ LOCK (MDEV-15888)

  • All SQL statements can be prepared except PREPARE, EXECUTE, [DEALLOCATE / DROP PREPARE(MDEV-16708)

Security Features

  • MariaDB Enterprise Audit allows database-specific and table-specific filters. (MENT-65) For example:

{
 "connect_event" : "ALL",
 "table_event" : ["READ","WRITE",{"ignore_tables" : "mysql.*"}],
 "query_event" : ["DDL",{"tables" : "test.t2"}]
}
  • The gssapi authentication plugin can now authenticate a user account by checking if the user belongs to an Active Directory group. (MDEV-23959)

    • The group is specified in the authentication string using the CREATE USER statement. The group can be specified using the group name or the SID.

    • Example syntax using a group name without specifying the domain:

CREATE USER root
 IDENTIFIED VIA gssapi AS 'GROUP:Administrators';
  • Example syntax using a group name that specifies the domain:

CREATE USER root
 IDENTIFIED VIA gssapi AS 'GROUP:Administrators';
  • Example syntax using a SID in the usual format:

CREATE USER root
 IDENTIFIED VIA gssapi AS 'SID:S-1-5-32-544';
  • Example syntax using a well-known SID:

CREATE USER everyone
 IDENTIFIED VIA gssapi AS 'SID:WD';
  • When using data-at-rest encryption with the file_key_management encryption plugin, InnoDB will automatically disable key rotation checks. (MDEV-14180)*

    • The file_key_management encryption plugin does not support key rotation, so key rotation checks are not required.*

    • In previous releases, unnecessary key rotation checks with the file_key_management encryption plugin could hurt performance, unless they were explicitly disabled by setting innodb_encryption_rotate_key_age=0.

  • With MariaDB Enterprise Cluster, TLS is required for MariaDB Enterprise Cluster by default. (MENT-1192)

    • Since TLS is required for Enterprise Cluster by default, database administrators should create TLS certificates for each node during the deployment process.

    • Database administrators can revert Enterprise Cluster to the mode used in previous releases by setting the wsrep_ssl_mode system variable to PROVIDER.

    • For additional information, see "WSREP TLS Modes".

  • TLS functionality for State Snapshot Transfers (SSTs) is enhanced when MariaDB Enterprise Backup or Rsync is the SST method. (MDEV-25359)

    • For additional information, see "SST TLS Modes".

  • Cluster name verification is performed for Joiner nodes prior to State Snapshot Transfers (SSTs) and Incremental State Transfers (ISTs). (MDEV-25359) For additional information, see "Cluster Name Verification".

  • With MariaDB Enterprise Cluster, system variable wsrep_certificate_expiration_hours_warning enables logging of a warning prior to expiration of the TLS certificate used for wsrep (Enterprise Cluster) communications. (MENT-1090)

    • For additional information, see "Certificate Expiration Warnings".

    • With MariaDB Enterprise Cluster, communication between nodes can be changed from unencrypted to TLS without cluster downtime. (MDEV-22131)

    • Enabling TLS without downtime relies on two new options implemented for the wsrep_provider_options system variable: socket.dynamic and socket.ssl_reload.

    • For additional information, see "Enable TLS without Downtime".

MariaDB Replication

  • Performance Schema replication_applier_status_by_worker table provides information on replica worker threads. (MDEV-20220)

  • Fine-grained binlog expiration

    • binlog_expire_logs_seconds system variable defines the frequency in seconds of automated removal of binary logs. (MDEV-19371)

    • Prior to this release, expiration time was defined in days using binlog_expire_logs_days.

  • Enhanced consistency for Semi-Sync Replication

    • When rpl_semi_sync_slave_enabled=ON, consistency is guaranteed for a Primary server in an HA (Primary/Replica) topology when using semi-synchronous replication. (MDEV-21117)

    • rior to this release, when using semi-synchronous replication, if a Primary crashed before sending a transaction to the Replica, on restart the Primary could recover incomplete InnoDB transactions when rejoining as a Replica.

    • With this release, when using semi-synchronous replication and with rpl_semi_sync_slave_enabled=ON, incomplete transactions will be rolled-back on the Replica, ensuring the new Primary (former Replica) and new Replica (former Primary) remain in sync.

MariaDB Enterprise Cluster

MariaDB Enterprise Cluster is powered by Galera. New in this release:

  • XA Transactions are supported (MENT-690)

  • With MariaDB Enterprise Cluster, TLS is required for MariaDB Enterprise Cluster by default. (MENT-1192)

    • Since TLS is required for Enterprise Cluster by default, database administrators should create TLS certificates for each node during the deployment process.

    • Database administrators can revert Enterprise Cluster to the mode used in previous releases by setting the wsrep_ssl_mode system variable to PROVIDER.

    • For additional information, see "WSREP TLS Modes".

  • TLS functionality for State Snapshot Transfers (SSTs) is enhanced when MariaDB Enterprise Backup or Rsync is the SST method. (MDEV-25359)

    • For additional information, see "SST TLS Modes".

  • Cluster name verification is performed for Joiner nodes prior to State Snapshot Transfers (SSTs) and Incremental State Transfers (ISTs). (MDEV-25359)

    • For additional information, see "Cluster Name Verification".

  • wsrep_certificate_expiration_hours_warning system variable enables logging of a warning prior to expiration of the TLS certificate used for wsrep (Enterprise Cluster) communications. (MENT-1090)

    • For additional information, see "Certificate Expiration Warnings".

    • Communication between nodes can be changed from unencrypted to TLS without cluster downtime. (MDEV-22131)

    • Enabling TLS without downtime relies on two new options implemented for the wsrep_provider_options system variable: socket.dynamic and socket.ssl_reload.

    • For additional information, see "Enable TLS without Downtime".

  • Galera Cluster nodes can be configured to refuse statements that would generate local GTIDs. (MDEV-20715)

    • When Galera Cluster is used with MariaDB Replication, local GTIDs can cause replication errors when the primary or replica has to failover to a different cluster node. By configuring Galera Cluster nodes to refuse statements that would generate local GTIDs, replication is more likely to succeed against any available cluster node.

    • To configure a node to refuse statements that would generate local GTIDs, set wsrep_mode=DISALLOW_LOCAL_GTID.

  • wsrep_mode=STRICT_REPLICATION replaces deprecated system variable wsrep_strict_ddl (MDEV-20008)

  • wsrep_mode=REPLICATE_MYISAM replaces deprecated system variable wsrep_replicate_myisam (MDEV-24946)

  • When wsrep_debug=SERVER and wsrep_OSU_method=TOI, information about DDL queries from remote hosts is logged in the local error log, not just locally-initiated DDL queries. (MDEV-9609)

    • The default of wsrep_debug=NONE disables debug logging.

  • The script wsrep_sst_mariadb-backup checks all server-related configuration groups when processing a configuration file. (MDEV-25669)

    • Prior to this release, only the [mysqld] configuration group was checked when processing a configuration file.

  • Performance Schema for Enterprise Cluster

    • Performance Schema table galera_group_members logs information about the configuration of the cluster. (MDEV-286)

    • Performance Schema table galera_group_member_stats logs information about the performance characteristics of nodes in the cluster. (MDEV-286)

Interface Changes

The following changes are as compared to MariaDB Enterprise Server 10.5.10-7, the latest GA release on the prior release series.

  • For clients such as mariadb (mysql), the connection property specified via the command-line (such as --port=3306) will force the connection type (such as TCP/IP). (MDEV-14974)

  • Unchanged metadata is not sent in the result set for prepared statements. (MDEV-19237)

  • ADD_MONTHS() function added

  • binlog_expire_logs_seconds system variable added

  • columnstore_cache_use_import system variable added

  • columnstore_decimal_overflow_check system variable added

  • Com_multi status variable removed

  • ER_BINLOG_UNSAFE_SKIP_LOCKED error code added

  • ER_BLACKBOX_ERROR error code error number changed from 4174 to 6000

  • ER_JSON_TABLE_ALIAS_REQUIRED error code added

  • ER_JSON_TABLE_ERROR_ON_FIELD error code added

  • ER_JSON_TABLE_MULTIPLE_MATCHES error code added

  • ER_JSON_TABLE_SCALAR_EXPECTED error code added

  • ER_PK_INDEX_CANT_BE_IGNORED error code added

  • ER_REMOVED_ORPHAN_TRIGGER error code added

  • ER_STORAGE_ENGINE_DISABLED error code added

  • ER_UNSUPPORTED_COMPRESSED_TABLE error code replaces ER_UNSUPPORT_COMPRESSED_TEMPORARY_TABLE

  • ER_UNUSED_26 error code replaces ER_COMMULTI_BADCONTEXT

  • ER_UNUSED_27 error code replaces ER_BAD_COMMAND_IN_MULTI

  • ER_UNUSED_28 error code replaces ER_TABLE_IN_FK_CHECK

  • ER_WITH_TIES_NEEDS_ORDER error code added

  • expire_logs_days system variable default value changed from 0 to 0.000000

  • galera_group_member_stats performance schema table added

  • galera_group_members performance schema table added

  • host_summary sys table added

  • host_summary_by_file_io sys table added

  • host_summary_by_file_io_type sys table added

  • host_summary_by_stages sys table added

  • host_summary_by_statement_latency sys table added

  • host_summary_by_statement_type sys table added

  • innochecksum --strict-check (-C) command-line option removed

  • innochecksum --write (-w) command-line option removed

  • innodb_adaptive_max_sleep_delay system variable removed

  • innodb_background_scrub_data_check_interval system variable removed

  • innodb_background_scrub_data_compressed system variable removed

  • innodb_background_scrub_data_interval system variable removed

  • innodb_background_scrub_data_uncompressed system variable removed

  • innodb_buffer_pool_instances system variable removed

  • Innodb_buffer_pool_pages_lru_freed status variable added

  • innodb_buffer_stats_by_schema sys table added

  • innodb_buffer_stats_by_table sys table added

  • innodb_commit_concurrency system variable removed

  • innodb_concurrency_tickets system variable removed

  • innodb_deadlock_report system variable added

  • innodb_file_format system variable removed

  • innodb_flush_method system variable default value changed from fsync to O_DIRECT

  • innodb_large_prefix system variable removed

  • innodb_lock_schedule_algorithm system variable removed

  • innodb_lock_wait_timeout system variable maximum value changed from 1073741824 to 100000000

  • innodb_lock_waits sys table added

  • innodb_log_checksums system variable removed

  • innodb_log_compressed_pages system variable removed

  • innodb_log_files_in_group system variable removed

  • innodb_log_optimize_ddl system variable removed

  • INNODB_MUTEXES information schema table removed

  • INNODB_MUTEXES plugin removed

  • innodb_page_cleaners system variable removed

  • innodb_read_only_compressed system variable added

  • innodb_replication_delay system variable removed

  • innodb_scrub_log System Variable system variable removed

  • innodb_scrub_log_speed system variable removed

  • innodb_sync_array_size system variable removed

  • INNODB_SYS_DATAFILES information schema table removed

  • INNODB_SYS_DATAFILES plugin removed

  • INNODB_SYS_SEMAPHORE_WAITS information schema table removed

  • INNODB_SYS_SEMAPHORE_WAITS plugin removed

  • innodb_thread_concurrency system variable removed

  • innodb_thread_sleep_delay system variable removed

  • innodb_undo_logs system variable removed

  • io_by_thread_by_latency sys table added

  • io_global_by_file_by_bytes sys table added

  • io_global_by_file_by_latency sys table added

  • io_global_by_wait_by_bytes sys table added

  • io_global_by_wait_by_latency sys table added

  • JSON_TABLE() function added

  • KEYWORDS information schema table added

  • latest_file_io sys table added

  • mariadb-backup --debug-sleep-before-unlock command-line option removed

  • mariadb-backup --debug-sync command-line option removed

  • mariadb-backup --innodb-log-files-in-group command-line option removed

  • mariadbd --binlog-expire-logs-seconds command-line option added

  • mariadbd --columnstore-cache-use-import command-line option added

  • mariadbd --columnstore-decimal-overflow-check command-line option added

  • mariadbd --innodb-adaptive-max-sleep-delay command-line option removed

  • mariadbd --innodb-background-scrub-data-check-interval command-line option removed

  • mariadbd --innodb-background-scrub-data-compressed command-line option removed

  • mariadbd --innodb-background-scrub-data-interval command-line option removed

  • mariadbd --innodb-background-scrub-data-uncompressed command-line option removed

  • mariadbd --innodb-buffer-pool-instances command-line option removed

  • mariadbd --innodb-commit-concurrency command-line option removed

  • mariadbd --innodb-concurrency-tickets command-line option removed

  • mariadbd --innodb-deadlock-report command-line option added

  • mariadbd --innodb-file-format command-line option removed

  • mariadbd --innodb-large-prefix command-line option removed

  • mariadbd --innodb-lock-schedule-algorithm command-line option removed

  • mariadbd --innodb-log-checksums command-line option removed

  • mariadbd --innodb-log-compressed-pages command-line option removed

  • mariadbd --innodb-log-files-in-group command-line option removed

  • mariadbd --innodb-log-optimize-ddl command-line option removed

  • mariadbd --innodb-mutexes command-line option removed

  • mariadbd --innodb-page-cleaners command-line option removed

  • mariadbd --innodb-read-only-compressed command-line option added

  • mariadbd --innodb-replication-delay command-line option removed

  • mariadbd --innodb-scrub-log command-line option removed

  • mariadbd --innodb-scrub-log-speed command-line option removed

  • mariadbd --innodb-sync-array-size command-line option removed

  • mariadbd --innodb-sys-datafiles command-line option removed

  • mariadbd --innodb-sys-semaphore-waits command-line option removed

  • mariadbd --innodb-thread-concurrency command-line option removed

  • mariadbd --innodb-thread-sleep-delay command-line option removed

  • mariadbd --innodb-undo-logs command-line option removed

  • mariadbd --log-ddl-recovery command-line option added

  • mariadbd --server-audit-load-on-error command-line option added

  • mariadbd --thread-pool-connections command-line option added

  • mariadbd --thread-pool-reshuffle-group-period command-line option added

  • mariadbd --wsrep-certificate-expiration-hours-warning command-line option added

  • mariadbd --wsrep-mode command-line option added

  • mariadbd wsrep-ssl-mode command-line option added

  • max_recursive_iterations system variable default value changed from 4294967295 to 1000 (MDEV-17239)

  • memory_by_host_by_current_bytes sys table added

  • memory_by_thread_by_current_bytes sys table added

  • memory_by_user_by_current_bytes sys table added

  • memory_global_by_current_bytes sys table added

  • memory_global_total sys table added

  • metrics sys table added

  • MINUS reserved word added

  • OFFSET reserved word added

  • old_mode system variable default value changed from "" (empty) to UTF8_IS_UTF8MB3

  • processlist sys table added

  • ps_check_lost_instrumentation sys table added

  • Resultset_metadata_skipped status variable added

  • ROWNUM() function added

  • ROWNUM reserved word added

  • schema_auto_increment_columns sys table added

  • schema_index_statistics sys table added

  • schema_object_overview sys table added

  • schema_redundant_indexes-sys-schema-view sys table added

  • schema_table_lock_waits sys table added

  • schema_table_statistics-sys-schema-view sys table added

  • schema_table_statistics_with_buffer-sys-schema-viewsys table added

  • schema_schema_tables_with_full_table_scansobject_overview-sys-schema-view sys table added

  • schema_unused_indexes-sys-schema-view sys table added

  • server_audit_load_on_error system variable added

  • session sys table added

  • session_ssl_status sys table added

  • SQL_FUNCTIONS information schema table added

  • sql_mode value EXTENDED_ALIASES added

  • statement_analysis sys table added

  • statements_with_errors_or_warnings sys table added

  • statements_with_full_table_scans sys table added

  • statements_with_runtimes_in_95th_percentile sys table added

  • statements_with_sorting sys table added

  • statements_with_temp_tables sys table added

  • [SYS_GUID|[SYS_GUID()]] function added

  • SYSDATE reserved word added

  • system_versioning_asof system variable default value changed from DEFAULT to "" (empty)

  • THREAD_POOL_CONNECTIONS information schema table added

  • THREAD_POOL_CONNECTIONS plugin added

  • thread_pool_reshuffle_group_period system variable added

  • TO_CHAR() function added

  • user_summary sys table added

  • user_summary_by_file_io sys table added

  • user_summary_by_file_io_type sys table added

  • user_summary_by_stages sys table added

  • user_summary_by_statement_latency sys table added

  • user_summary_by_statement_type sys table added

  • version sys table added

  • wait_classes_global_by_avg_latency sys table added

  • wait_classes_global_by_latency sys table added

  • waits_by_host_by_latency sys table added

  • waits_by_user_by_latency sys table added

  • waits_global_by_latency sys table added

  • wsrep_certificate_expiration_hours_warning system variable added

  • wsrep_mode system variable added

  • wsrep_ssl_mode system variable added

  • x$host_summary sys table added

  • x$host_summary_by_file_io sys table added

  • x$host_summary_by_file_io_type sys table added

  • x$host_summary_by_stages sys table added

  • x$host_summary_by_statement_latency sys table added

  • x$host_summary_by_statement_type sys table added

  • hinnodb_buffer_stats_by_schema-and-xinnodb_buffer_stats_by_schema-sys-schema-views sys table added

  • x$innodb_buffer_stats_by_table sys table added

  • x$innodb_lock_waits sys table added

  • x$io_by_thread_by_latency sys table added

  • x$io_global_by_file_by_bytes sys table added

  • io_global_by_file_by_latency-and-xio_global_by_file_by_latency-sys-schema-views sys table added

  • x$io_global_by_wait_by_bytes sys table added

  • io_global_by_wait_by_latency-and-xio_global_by_wait_by_latency-sys-schema-views sys table added

  • x$latest_file_io sys table added

  • memory_by_host_by_current_bytes-and-xmemory_by_host_by_current_bytes-sys-schema-views sys table added

  • memory_by_thread_by_current_bytes-and-xmemory_by_thread_by_current_bytes-sys-schema-views sys table added

  • memory_by_user_by_current_bytes-and-xmemory_by_user_by_current_bytes-sys-schema-views sys table added

  • memory_global_by_current_bytes-and-xmemory_global_by_current_bytes-sys-schema-views sys table added

  • memory_global_total-and-xmemory_global_total-sys-schema-views sys table added

  • processlist-and-xprocesslist-sys-schema-views sys table added

  • ps_digest_95th_percentile_by_avg_usy-and-xps_digest_95th_percentile_by_avg_us-sys-schema-views sys table added

  • hps_digest_avg_latency_distribution-and-xps_digest_avg_latency_distribution-sys-schema-views sys table added

  • ps_schema_table_statistics_io-and-xps_schema_table_statistics_io-sys-schema-views sys table added

  • schema_flattened_keys-and-xschema_flattened_keys-sys-schema-views sys table added

  • schema_index_statistics-and-xschema_index_statistics-sys-schema-views sys table added

  • schema_table_lock_waits-and-xschema_table_lock_waits-sys-schema-views sys table added

  • schema_table_statistics-and-xschema_table_statistics-sys-schema-views sys table added

  • schema_table_statistics_with_buffer-and-xschema_table_statistics_with_buffer-sys-schema-views sys table added

  • schema_tables_with_full_table_scans-and-xschema_tables_with_full_table_scans-sys-schema-views sys table added

  • session-and-xsession-sys-schema-views sys table added

  • statement_analysis-and-xstatement_analysis-sys-schema-views sys table added

  • statements_with_errors_or_warnings-and-xstatements_with_errors_or_warnings-sys-schema-views sys table added

  • statements_with_full_table_scans-and-xstatements_with_full_table_scans-sys-schema-views sys table added

  • statements_with_runtimes_in_95th_percentile-and-xstatements_with_runtimes_in_95th_percentile-sys-schema-view sys table added

  • statements_with_sorting-and-xstatements_with_sorting-sys-schema-views sys table added

  • statements_with_temp_tables-and-xstatements_with_temp_tables-sys-schema-views sys table added

  • user_summary-and-xuser_summary-sys-schema-views sys table added

  • user_summary_by_file_io-and-xuser_summary_by_file_io-sys-schema-views sys table added

  • user_summary_by_file_io_type-and-xuser_summary_by_file_io_type-sys-schema-views sys table added

  • user_summary_by_stages-and-xuser_summary_by_stages-sys-schema-views sys table added

  • user_summary_by_statement_latency-and-xuser_summary_by_statement_latency-sys-schema-views sys table added

  • user_summary_by_statement_type-and-xuser_summary_by_statement_type-sys-schema-views sys table added

  • wait_classes_global_by_avg_latency-and-xwait_classes_global_by_avg_latency-sys-schema-views) sys table added

  • wait_classes_global_by_latency-and-xwait_classes_global_by_latency-sys-schema-views sys table added

  • waits_by_host_by_latency-and-xwaits_by_host_by_latency-sys-schema-views sys table added

  • waits_by_user_by_latency-and-xwaits_by_user_by_latency-sys-schema-views sys table added

  • waits_global_by_latency-and-xwaits_global_by_latency-sys-schema-views sys table added

Platforms

In alignment to the enterprise lifecycle, MariaDB Enterprise Server 10.6.4-1 is provided for:

  • CentOS 7

  • Debian 9

  • Debian 10

  • Microsoft Windows

  • Red Hat Enterprise Linux 7

  • Red Hat Enterprise Linux 8

  • SUSE Linux Enterprise Server 12

  • SUSE Linux Enterprise Server 15

  • Ubuntu 18.04

  • Ubuntu 20.04

Some components of MariaDB Enterprise Server might not support all platforms. For additional information, see "MariaDB Corporation Engineering Policies".

Installation Instructions

  • MariaDB Enterprise Server 10.6

  • Enterprise Cluster Topology with MariaDB Enterprise Server 10.6

  • Primary/Replica Topology with MariaDB Enterprise Server 10.6

  • ColumnStore Object Storage Topology with MariaDB Enterprise Server 10.6 and MariaDB Enterprise ColumnStore 23.02

  • ColumnStore Shared Local Storage Topology with MariaDB Enterprise Server 10.6 and MariaDB Enterprise ColumnStore 23.02

  • HTAP Topology with MariaDB Enterprise Server 10.6 and MariaDB Enterprise ColumnStore 23.02

  • Single-Node Enterprise ColumnStore 23.02 with MariaDB Enterprise Server 10.6 and Object Storage

  • Single-Node Enterprise ColumnStore 23.02 with MariaDB Enterprise Server 10.6

  • Enterprise Spider Sharded Topology with MariaDB Enterprise Server 10.6

  • Enterprise Spider Federated Topology with MariaDB Enterprise Server 10.6

Upgrade Instructions

  • Upgrade to MariaDB Enterprise Server 10.6

  • Upgrade from MariaDB Community Server to MariaDB Enterprise Server 10.6

This page is: Copyright © 2025 MariaDB. All rights reserved.