MariaDB 11.8.7 Release Notes
MariaDB 11.8.7 is a Stable (GA) release of MariaDB Community Server 11.8, released on 2026-05-18
The most recent release of MariaDB 11.8 is:
MariaDB 11.8.8 Stable (GA) Download Now
Download Release Notes Changelog Overview of 11.8
Alternate download from mariadb.org
Release date: 18 May 2026
MariaDB 11.8.7 is a Stable (GA) release. It is an evolution of MariaDB 11.7 with several entirely new features.
MariaDB 11.8 is a long-term release, maintained until June 2028.
For an overview of MariaDB 11.8 see the MariaDB 11.8 Changes and Improvements page.
Thanks, and enjoy MariaDB!
Notable Items
Storage Engines
InnoDB
Fixed a crash in InnoDB when processing long or encoded database names in Foreign Keys (MDEV-24356)
Fixed an assertion failure during system tablespace defragmentation caused by incomplete resource latching when an extent became full. (MDEV-37294)
Fixed an issue where the InnoDB system tablespace failed to shrink due to legacy internal tables. MariaDB now automatically detects and removes these orphaned entries during startup, allowing for successful defragmentation and reduction of the tablespace size. (MDEV-38412)
On 64-bit systems other than IBM AIX, the minimum and default values of innodb_buffer_pool_size_max were changed to 8 MiB and 8 TiB, respectively. (MDEV-38671)
The setting innodb_log_file_mmap=ON did not enable memory-mapped log file parsing. (MDEV-38730)
CREATE TABLE ... SELECT on STATS table doesn't hang anymore (MDEV-38822)
InnoDB bootstrap and startup will involve slightly fewer file system operations. (MDEV-38833)
Fixed a server assertion that occurred when an InnoDB DDL operation (such as ALTER TABLE) encountered a lock wait timeout during internal statistics updates. (MDEV-38882)
After a successful execution of SET GLOBAL innodb_buffer_pool_size, the buffer pool would be included in future core dumps, contrary to the expectation on Linux and FreeBSD. (MDEV-38958)
InnoDB will initiate page writes and checkpoints from a single thread also during startup and shutdown, which improves performance. (MDEV-38968)
improved performance of innodb conversion operations between big/little endian (MDEV-39027)
The PERFORMANCE_SCHEMA instrument wait/synch/rwlock/innodb/log_latch was removed in order to improve throughput by 0.5% or more. (MDEV-39040)
An UPDATE could fail to return the error ER_CHECKREAD when innodb_snapshot_isolation=ON and the transaction that had last modified the record was committed during the lock acquisition. (MDEV-39263)
InnoDB: Tighten .cfg file parser string length validation (MDEV-39278)
InnoDB would fail to start up on data files from MariaDB Server 10.x or earlier when innodb_force_recovery=6 is specified. (MDEV-39303)
Fixed a critical assertion failure in InnoDB that occurred during consecutive ALTER IGNORE TABLE operations when using the COPY algorithm. The fix prevents a race condition where the background purge thread could "pin" a table object while it was being renamed or dropped, leading to a server crash. (MDEV-36436)
Aria
Wrong duplicate key value printed in ER_DUP_ENTRY (MDEV-23507)
Connect
Invalid SRCDEF value could crash a CONNECT table (MDEV-38892)
CONNECT OEM tables don't check subtype length (MDEV-39281)
CONNECT REST support on Windows doesn't escape the url (MDEV-39289)
Memory
When accessing a MEMORY table whose data is lost to restarting a read-only server with replication connection(s) configured for the first time, the automatically-generated TRUNCATE query in the Binary Log is now annotated with a comment and accompanied by a warning in the Error Log. (MDEV-38600)
Mroonga
A invalid Mroonga INDEX comment can result in a hang of the server. This has been corrected. (MDEV-39479)
Spider
Wrong result or protocol assertion failure upon update using user variable on spider table (MDEV-38732)
Authentication and Privilege System
For users without PROCESS privilege, SHOW PROCESSLIST and INFORMATION_SCHEMA.PROCESSLIST will now show events running under the same user context. (MDEV-34482)
(Any) table-level privilege is now required for executing LOAD INDEX INTO CACHE and CACHE INDEX commands. Previously, privilege check was missing. (MDEV-37256)
In case if the view mysql.user was created (e.g. in 10.6) with a server with an unexpected character_set_client or collation_connection, e.g. utf8mb3 and utf8mb3_general_ci, mysql_upgrade does not fix it to the expected latin1 and latin1_swedish_ci. (MDEV-38698)
crash in information_schema.table_constraints when --skip-grant-tables (MDEV-38811)
DROP PARTITION, CONVERT OUT require both ALTER and DROP privileges (MDEV-39028)
By inserting a crafted large JSON value into the mysql.global_priv table and triggering FLUSH PRIVILEGES, the server can crash (MDEV-39266)
SHOW CREATE ROUTINE does not apply to roles (MDEV-39288)
FILE privilege isn't checked for derived table (MDEV-39493)
Backup
mariabackup prepare fails with data-at-rest encryption and "-u root" option (MDEV-34570)
Fixed mariabackup to report my_close() failures and prevent false success messages when disk space is exhausted. (MDEV-38562)
Character Sets
Fixed incorrectly formatted session tracking info in OK packet, after changing to database with UTF16/UTF32 default charset (MDEV-38954)
Default expressions for table columns previously allowed an incompatible mix of collations with the functions IF, NVL2, IFNULL. Now ER_CANT_AGGREGATE_2COLLATIONS is returned. (MDEV-39002)
Data Definition - Alter Table
Fixes the issue occurred when ALTER TABLE contained duplicate DROP FOREIGN KEY operations (e.g., "DROP FOREIGN KEY f1, DROP FOREIGN KEY f1"). (MDEV-19194)
Fix InnoDB index corruption when renaming key names with case-only differences. (MDEV-34951)
PAGE_COMPRESSED ALTER TABLE operations inconsistent with innodb_file_per_table setting (MDEV-37886)
ALTER TABLE ... IGNORE could trigger the assertion trx->undo_no == 1 in InnoDB's undo log handling when a duplicate key error occurred during the copy phase. (MDEV-38993)
Data Definition - Temporary
An error during the execution of CREATE TEMPORARY TABLE…SELECT no longer results in a rollback of the entire transaction, but of the failing statement. (MDEV-38769)
Fixes the optimization of ALTER IGNORE TABLE...ALGORITHM=COPY (MDEV-36436) causes the assertion on InnoDB temporary table, partition table and also during partial rollback. (MDEV-38928)
Data Manipulation - Update
Fix crash in
UPDATE ... FOR PARTITION OF. (MDEV-39356)
Data types
Invalid formats to to_char under some circumstances could crash the server. (MDEV-28136)
0 changed to 0.0 caused by DISTINCT and UNION ALL (MDEV-30255)
Fix crash when comparing
ROWtypes containing stored routines (MDEV-36792)Change the "-0" results in many SELECT scenarios to just return "0". (MDEV-38670)
Behaviour of IF() with boolean JSON_EXTRACT as expression is wrong (MDEV-38702)
Is was previously possible to insert 0 or "0" into an ENUM where the ENUM definition didn't include these values. Now an Error WARN_DATA_TRUNCATED is returned in sql_mode=STRICT_ALL_TABLES. (MDEV-39043)
Encryption
Crash recovery may fail after a crash during an instant ALTER TABLE…PAGE_COMPRESSED=1. Fix: make the operation rebuild the table. (MDEV-38079)
Galera
When a mariadb server operates as a donor node in a galera cluster and uses mariabackup SST method, it will spawn mariabackup process to prepare the backup file and sending it to the joiner node. In earlier versions, this spawned mariabackup process inherited the max open file limits set for the parent mariadb server process. This has been changed so that the mariabackup process now honors the open_files_limit variable value configured in [mariabackup] group in the mariadb configuration file and mariabackup process can have different open file limits than the mariadb server, (MDEV-21935)
If user has limited write set size using wsrep_max_ws_rows or wsrep_max_ws_size for Galera then multi-table update that updates transactional and non-transactional table is not allowed. Furthermore, limiting write set size is not allowed if there is active Galera transaction. (MDEV-28750)
SIGSEGV in sp_process_definer on second execution of trigger using a prepared statement. (MDEV-30612)
Galera snapshot transfer with the default wsrep_sst_method=rsync could create corrupted backups when any InnoDB tables contain FULLTEXT INDEX. (MDEV-32115)
wsrep_slave_FK_checks configuration option was deprecated and from no on has no effect. Slave foreign key checks are always on as otherwise leads to massive data inconsistency on all replicas which subsequently results in master node abort. (MDEV-38787)
Regression on MDL conflict handling (MDEV-38895)
Galera node could fail to restart if node was not in an cluster too long and mysqldump SST method was used. (MDEV-38917)
If wsrep_restart_slave is used Galera node that is a slave to MariaDB master may hang during shutdown. (MDEV-39011)
Restored galera_new_cluster script functionality to take optional service name. (MDEV-39262)
GIS
Empty string is erroneously allowed as a GEOMETRY column value (MDEV-15479)
ST_AsGeoJSON returns incorrect value for empty geometry (MDEV-34079)
ST_PointOnSurface returns NULL with Polygon in some case (MDEV-35766)
ST_CROSSES returns 0 instead of NULL (MDEV-36058)
Crash or incorrect result when st_geometryfromtext, st_geometryfromwkb, st_geomfromgeojson were getting non-constant NULL in the second or third argument. (MDEV-39319)
JSON
ANALYZE / EXPLAIN FORMAT=JSON and similar functions output now includes sizes that are IEC (MiB, KiB) matching their value more accurately. (MDEV-18318)
In SELECT statements where a HAVING claused used JSON_KEYS the server could crash. This has been corrected. (MDEV-33984)
A json_array_intersect after encountering a empty intersection would return incorrectly return NULL for every subsequent evaluation. This now returns the correct results. (MDEV-36808)
"Warning: Memory not freed: 32" after server shutdown when SELECT COLUMN_JSON() has been used (MDEV-36929)
Corrected a server crash that could occur when strings where appended in a JSON_NORMALIZE SQL function. (MDEV-37640)
JSON_VALUE should not allow wildcard in the path since it is not supposed to return multiple values as per json standards. (MDEV-38835)
Correct JSON_EXTRACT to return the correct results when its input is from a derived table. It previously incorrectly returned NULL. (MDEV-38873)
JSON search functions, JSON_EXISTS, JSON_EXTRACT, JSON_VALUE, JSON_QUERY, JSON_CONTAINS, JSON_CONTAINS_PATH, JSON_ARRAY_APPEND, JSON_ARRAY_INSERT, JSON_LENGTH, JSON_INSERT, JSON_REMOVE, JSON_KEYS, could result in a overwrite of memory resulting in a crash. (MDEV-39213)
mariabackup
mbstream insufficient path validation (MDEV-39408)
Optimizer
Incorrect Calculation while using Avg Function (MDEV-23278)
Crash when pushing condition with always false IS NULL into derived (MDEV-29360)
Optimizer trace does not escape double quotes, produces invalid JSON (MDEV-30354)
Queries with IN predicates operating on NULL values could sometimes return wrong results. (MDEV-32868)
Incorrect query result may caused by Right Join (MDEV-33707)
Double free or corruption, ASAN heap-use-after-free in st_join_table::cleanup (MDEV-38474)
The query returns an incorrect value when using LPAD and REPLACE (MDEV-39111)
Wrong Results in Identical Queries Involving Grouping and Bitwise NOT (~) (MDEV-39131)
Incorrect result with LEFT JOIN and QUOTE (MDEV-39235)
OTHER
Incorrect HAVING clause evaluation on grouped derived tables. (MDEV-38070)
Packaging
No longer necessary RPM conflict between between MariaDB-common and mysql-common removed. (MDEV-38771)
Correct Debian installation of client side authentication plugins (MDEV-39041)
Added ProtectControlGroups=true to MariaDB's systemd service definitions (MDEV-39057)
The package install of Mroonga used the incorrect path to its initialisation. (MDEV-39128)
Parser
Keywords are parsed as identifiers when followed by a dot (MDEV-17677)
MariaDB crashes when parsing fuzzer generated PARTITION (MDEV-36362)
CHANGE MASTER TO master_heartbeat_period does not accept numbers with
+sign (MDEV-38454)
Partitioning
Fixed a server crash in the InnoDB purge thread caused by missing indexed virtual column data in the undo log during UPDATE operations. (MDEV-39081)
Platform Debian
The Debian helper script previous tried to CHECK TABLE on all Aria/MyiSAM tables. The discovery and execution though a combination of bash and SQL escaping that resulted in incorrect table names being checked in a variety of situtions. Because Aria has crash recovery the Debian's auto-check table on startup functionality was removed. (MDEV-34902)
Plugins
plugin variables disappear from session_track_system_variables list (MDEV-39207)
Protocol
mysql_change_user() with long passwords throws an error (MDEV-38550)
Query Cache
Server hangs or crashes upon FLUSH QUERY CACHE (MDEV-25365)
Replication
SHOW BINLOG EVENTS showed incorrect/inverted values for foreign_key_checks, check_constraint_checks, sql_auto_is_null, and unique_checks flags. (MDEV-29804)
Replication would break (or diverge) with STATEMENT binlog format when check_constraint_checks was modified from the configured startup value because the variable was not written to the binary log with the affected event. (MDEV-32447)
Parallel replication hang and stall due to incorrectly handled row lock conflict, missing deadlock kill (MDEV-37133)
CHANGE MASTER TO is implicitly changing the value of 'Using_Gtid' from 'No' to 'No' (MDEV-37842)
Master/Relay Log Info files ignore trailing garbage and overflows in numeric lines (MDEV-38010)
Master & Relay Log info files read 2^31 and above incorrectly (MDEV-38020)
Fixed an issue where a parallel replica configured to skip ER_CONNECTION_KILLED (i.e. --slave-skip-errors=1927) can hang or crash because it honored this configuration, but should not (this error code is internally repurposed for replication worker threads and cannot be ignored). (MDEV-38624)
Replica updates table to wrong values, further replication failures (MDEV-38731)
Assertion `marked_for_read()' fails on slave upon RBR with unique blobs and binlog_row_image=MINIMAL (MDEV-38734)
[ERROR] Slave worker thread retried transaction 10 time(s) in vain, giving up. (MDEV-38776)
Fix Delayed Replication delays on metadata received at start, even if already up-to-date. (MDEV-38825)
Corrupted Gtid_log_event can cause a slave or mariadb-binlog crash (MDEV-39404)
Scripts & Clients
The REPAIR TABLE was reporting "stage done" in progress reporting to the client before the server had processed the REPAIR TABLE. This status message is now send to the client at the correct completed time. (MDEV-38922)
Sequences
Server crashes upon update on a view if the view includes NEXTVAL() for a sequence (MDEV-38815)
Server
Fixed a server crash that could occur during query optimization when a stored procedure queries a view containing CONCAT or GROUP_CONCAT functions. (MDEV-36678)
SHOW CREATE SERVER does not require FEDERATED ADMIN (MDEV-38601)
The query returns incorrect results when using LPAD (MDEV-39112)
use iterative cleanup for merged units to avoid stack overflow (MDEV-39209)
Wrong duplicate detection for plugin session vars in session_track_system_variables (MDEV-39217)
Fixed critical crashes in InnoDB purge threads when processing tables with indexed virtual columns. Resolved race conditions where purge workers incorrectly reused cached TABLE* objects across different tables in the same batch, and added retry logic to handle concurrent DDL operations that could invalidate table handles during purge processing. (MDEV-39261)
The error message ER_CHECKREAD (1020) was revised to suggest that InnoDB has rolled back the transaction: "try restarting transaction" (MDEV-39264)
main.group_by fails with incorrectly ordered rows (MDEV-39333)
mysqld daemon should check if any process uses the socket file before removing (MDEV-5479)
SQL statements fail with error "Local temporary space limit reached" when using MariaDB Cluster (galera),
max_tmp_session_space_usageand a transaction that uses temporary file of a size betweenbinlog-cache-size(default 32K) and 64K followed by a change user command. Can be avoided by settingmax_tmp_session_space_usage=0(MDEV-37808)Reduce the number of locks on connection caused by constructing session_track_system_variables (MDEV-38179)
Stored routines
Fix missing memory root protection after Stored Procedure metadata change. (MDEV-37243)
Fix crash when stored procedure evaluates DEFAULT parameter on second and subsequent execution. (MDEV-37491)
Triggers
For INSERT.. ON DUPLICATE KEY UPDATE, AFTER UPDATE trigger is now always executed in case of duplicate key, even if update did not result in any data changes. This matches the existing behavior of UPDATE command. (MDEV-33083)
ASAN heap-use-after-free upon using a view through a trigger in ORACLE mode (MDEV-38987)
Upgrades
mariadb-upgrade note "Auto_increment will be checked on each open until CHECK TABLE FOR UPGRADE is executed" is wrong (MDEV-34210)
Vector search
CREATE TABLE t SELECT vec_fromtext(...) now correctly creates the column as a VECTOR TYPE. Contribution thanks to Abhishek Bansal. (MDEV-35211)
vector index sizes are not in information_schema.TABLES nor SHOW TABLE STATUS (MDEV-35821)
Views
Some views are broken in Oracle mode after upgrade to Q1 2026 releases (MDEV-38799)
wsrep
wsrep unsafe handling of parameters (MDEV-39413)
XML Functions
ExtractValue/UpdateXML can crash due to not handling
<!and<?correctly (MDEV-39210)
Security
Fixes for the following security vulnerabilities:
Changelog
For a complete list of changes made in MariaDB 11.8.7, with links to detailed information on each push, see the changelog.
Be notified of new MariaDB Server releases automatically by subscribing to the MariaDB Foundation community announce 'at' lists.mariadb.org announcement list (this is a low traffic, announce-only list). MariaDB plc customers will be notified for all new releases, security issues and critical bug fixes for all MariaDB plc products thanks to the Notification Services.
MariaDB may already be included in your favorite OS distribution. More information can be found on the Distributions which Include MariaDB page.
This page is licensed: CC BY-SA / Gnu FDL
Last updated
Was this helpful?

