All pages
Powered by GitBook
1 of 1

Loading...

MariaDB 10.5 Changes & Improvements

MariaDB 10.5 is no longer maintained. Please use a more recent release.

MariaDB 10.5 is a previous major release series. The first stable release was in June 2020, and it was maintained until June 2025.

Upgrading

  • See and .

Implemented Features

See the page for items that are different between MariaDB Community Server 10.5 and MariaDB Enterprise Server 10.5.

ColumnStore

  • This release of MariaDB Server includes the storage engine. Note, that plugins have and MariaDB ColumnStore in 10.5.4 has Beta maturity.

Binaries Named mariadb (mysql Symlinked)

  • All binaries previously beginning with mysql now begin with mariadb, with symlinks for the corresponding mysql command. ()

  • When starting the MariaDB server via the systemd service it will be started using the mariadbd binary name, so this will now show up in the system process list instead of mysqld

INET 6 Data Type

  • New data type for storing IPv6 addresses ()

Amazon S3

  • The allows one to archive MariaDB tables in Amazon S3, or any third-party public or private cloud that implements S3 API ( )

  • Both S3 tables and S3 tables are discoverable. This means that if you create a partitioned S3 table, both the partitioned table and its partitions can be directly used by another server that has access to the S3 storage. ()

Privileges Made More Granular

  • Split SUPER to smaller privileges (). New privileges were added so that more fine grained tuning of what each user can do can be applied:

InnoDB: Performance Improvements etc.

  • Extend LIKE 'Innodb_%' ()

  • Clean up tables ()

  • Doublewrite buffer is unnecessarily used for newly (re)initialized pages ()

  • Defer change buffer merge until pages are requested ()

InnoDB New Defaults for Variables

  • now defaults to OFF ()

  • now defaults to full_crc32 ()

InnoDB Removed or Deprecated Variables

  • ()

  • ()

  • ()

Performance Schema Updates to Match MySQL 5.7 Instrumentation and Tables

  • Memory ()

  • Meta data locking (MDL) ()

  • Prepared statements (ps) ()

  • [show] status instrumentation and tables ()

Galera: Full GTID Support

  • Add full support to cluster (). With this feature all nodes in a cluster will have the same GTID for replicated events originating from the cluster. Also added a new variable, wsrep_gtid_seq_no, to manually update the WSREP GTID sequence number in the cluster (similar to how the gtid_seq_no variable is used for non-WSREP transactions).

  • Add new mode to wsrep_OSU_method in which Galera checks storage engine of the affected table ()

  • Galera: Replicate MariaDB GTID to other nodes in the cluster ()

Binary Log and Replication: More Metadata

  • now defaults to optimistic ().

  • Make REPLICA a synonym for ()

  • ENFORCE option for ()

Syntax

  • () - returns SELECT of inserted rows (analogous to )

  • ()

  • and ()

  • Application period tables: ()

JSON

  • Added . This returns a JSON array containing an element for each value in a given set of JSON or SQL values. It acts on a column or an expression that evaluates to a single value.

  • Added . This returns a JSON object containing key-value pairs. It takes two expressions that evaluate to a single value, or two column names, as arguments, the first used as a key, and the second as a value.

Thread Pool

  • Information Schema tables (, , and ) for internals of generic thread_pool ().

Performance Improvements

  • Speed up binary row logging code

  • Range optimizer speedups. Removed double calls to records_in_range() for some cases.

  • Costs for using MEMORY tables updated to be more accurate

  • Fixed that 'ref' access is preferred over 'range' for the same index.

Query Optimizer

  • Improve Protocol performance for numeric data by avoiding unnecessary character string conversions (, )

  • is improved, now it also shows the time spent checking the WHERE clause and doing other auxiliary operations ()

  • ()

  • Allow packed sort keys and values of non-sorted fields in the sort buffer ( &

General

  • The has a new column showing from which config file a variable derives its value ()

  • Switch Perl DBI scripts from DBD::mysql to DBD::MariaDB driver ()

  • The max key length is now 2000 bytes, compared to 1000 bytes in .

  • now reliably deletes table remnants inside a storage engine even if the .frm file is missing ()

PCRE (Perl Compatible Regular Expressions)

  • Migrate to (), a newer version of the pcre library.

Variables

  • For a list of all new variables, see and .

  • The has a new column showing from which config file a variable derives its value ().

  • Port from MySQL 5.6 (). If set, old temporal data types (created with a pre-10.0 version of MariaDB) are displayed with a /* mariadb-5.3 */ comment.

  • Numerous deprecated variables removed ()

Security Vulnerabilities Fixed in

For a complete list of security vulnerabilities (CVEs) fixed across all versions of MariaDB, see the page.

  • :

  • :

  • :

  • :

Resources

  • (video presentation by Sergei Golubchik)

List of All Releases

Date
Release
Status
Release Notes
Changelog
Same for the mariadbd-safe wrapper script. Even when called via the mysqld_safe symlink, it will start the actual server process as mariadbd, not mysqld now. This also affects startup via system service init scripts on platforms that don't yet have switched to SystemD

  • The privilege was renamed to . The old syntax is understood for compatibility (MDEV-21743).

  • The statement was renamed to (MDEV-21743). The old syntax is understood for compatibility.

  • A number of statements changed the privileges that they require. The old privileges were historically inappropriately chosen in the upstream. 10.5.2 fixes this problem. Note, these changes are incompatible to previous versions. A number of GRANT commands might be needed after upgrade.

    • now requires the privilege (required prior to 10.5.2).

    • now requires the privilege (required prior to 10.5.2).

    • now requires the or the privilege (required or prior to 10.5.2).

    • now requires the privilege (required prior to 10.5.2).

  • In order to help the server understand which version a privilege record was written by, the field contains a new JSON field, version_id (MDEV-21704)

  • now correctly lists the Delete history privilege, rather than displaying it as Delete versioning rows. (MDEV-20382)

  • Remove dummy tablespace for the (MDEV-18115)

  • Optimize access to InnoDB page header fields (MDEV-21133)

  • Remove multiple instances (MDEV-15058)

    • Columns that indicated the buffer pool instance from the Information Schema , , , and tables now return a dummy value of 0.

  • Remove buf_page_t::newest_modification (MDEV-21132)

  • Replace recv_sys_t::addr_hash with a std::map (MDEV-19586)

  • Obsolete internal parser for FK in InnoDB (MDEV-20480)

  • InnoDB thread pool for background tasks (MDEV-16264)

  • An upgrade will only be possible after a clean shutdown. mariadb-backup --prepare will not work with backups taken before version 10.5.2.

  • Efficient InnoDB redo log record format (MDEV-12353)

  • Improve InnoDB redo log group commit performance (MDEV-21534)

  • Do not acquire InnoDB record locks when covering table locks exist (MDEV-14479)

  • Issue a message on changing deprecated innodb_log_files_in_group (MDEV-21990)

  • Optimize append only files for NVDIMM (MDEV-17084)

  • Avoid writing freed InnoDB pages (MDEV-15528)

  • (MDEV-14425 & MDEV-20907)

  • (MDEV-19747)

  • (MDEV-19570)

  • and (MDEV-21870)

  • Remove table and deprecate and ignore:

  • (MDEV-15528)

  • (MDEV-19551)

  • (MDEV-19570)

  • (MDEV-23379)

  • Stored procedures (MDEV-16434)

  • Sxlocks (MDEV-16436)

  • Transactions (MDEV-16435)

  • User variables (MDEV-16439)

  • Extended metadata (MDEV-20477) to include new fields. This was done to solve replication issues when the Master and Slave table had different definitions for a column which could lead to data loss (MDEV-19708). It also enables us to do better replication with pluggable data types in the future.
    • The new metadata fields are:

      • Signedness of Numeric Columns

      • Character Set of Character Columns and Binary Columns

      • Column Name

      • String Value of SET Columns

      • String Value of ENUM Columns

      • Primary Key

      • Character Set of SET Columns and ENUM Columns

      • Geometry Type

    • Also added a new global variable, to control the amount of metadata logged. Possible values are:

      • FULL - all metadata is logged

      • MINIMAL - only metadata required by a worker is logged

  • Binary log DDL entries can now be marked that they should be ignored if the target table doesn't exist (implicit IF EXISTS).

  • output is extended to show all replication flags. Example of output: SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1, @@session.sql_if_exists=0/*!*/.

  • and are extended to show replication flags.

  • Setup (MDEV-19903)

  • Database comments in and statements (MDEV-307)

  • (MDEV-7318)

  • (MDEV-16290)

  • and now support IF EXISTS.

  • Add in CREATE TABLE (MDEV-22199)

  • Recursive cycle detection using CYCLE clause (MDEV-20632)

  • hold by (MDEV-10569)

  • Fix in column definition (MDEV-20729)

  • Improve connect speed (up to 25%). (MDEV-19515)

    )
    • Makes filesort temporary files much smaller when , or are used!

    Accelerated crc32() function for AMD64, ARMv8, POWER 8 (MDEV-22669)

  • Binary tarball size has been reduced (MDEV-21943)

    CVE-2022-47015: MariaDB 10.5.20

  • CVE-2022-38791: MariaDB 10.5.17

  • CVE-2022-32091: MariaDB 10.5.17

  • CVE-2022-32089: MariaDB 10.5.17

  • CVE-2022-32088: MariaDB 10.5.16

  • CVE-2022-32087: MariaDB 10.5.16

  • CVE-2022-32086: MariaDB 10.5.16

  • CVE-2022-32085: MariaDB 10.5.16

  • CVE-2022-32084: MariaDB 10.5.17

  • CVE-2022-32083: MariaDB 10.5.16

  • CVE-2022-32082: MariaDB 10.5.17

  • CVE-2022-32081: MariaDB 10.5.17

  • CVE-2022-31624: MariaDB 10.5.13

  • CVE-2022-27458: MariaDB 10.5.16

  • CVE-2022-27457: MariaDB 10.5.16

  • CVE-2022-27456: MariaDB 10.5.16

  • CVE-2022-27455: MariaDB 10.5.16

  • CVE-2022-27452: MariaDB 10.5.16

  • CVE-2022-27451: MariaDB 10.5.16

  • CVE-2022-27449: MariaDB 10.5.16

  • CVE-2022-27448: MariaDB 10.5.16

  • CVE-2022-27447: MariaDB 10.5.16

  • CVE-2022-27446: MariaDB 10.5.16

  • CVE-2022-27445: MariaDB 10.5.16

  • CVE-2022-27444: MariaDB 10.5.16

  • CVE-2022-27387: MariaDB 10.5.16

  • CVE-2022-27386: MariaDB 10.5.16

  • CVE-2022-27385: MariaDB 10.5.13

  • CVE-2022-27384: MariaDB 10.5.16

  • CVE-2022-27383: MariaDB 10.5.16

  • CVE-2022-27382: MariaDB 10.5.16

  • CVE-2022-27381: MariaDB 10.5.16

  • CVE-2022-27380: MariaDB 10.5.16

  • CVE-2022-27379: MariaDB 10.5.16

  • CVE-2022-27378: MariaDB 10.5.16

  • CVE-2022-27377: MariaDB 10.5.16

  • CVE-2022-27376: MariaDB 10.5.16

  • CVE-2022-24052: MariaDB 10.5.14

  • CVE-2022-24051: MariaDB 10.5.14

  • CVE-2022-24050: MariaDB 10.5.14

  • CVE-2022-24048: MariaDB 10.5.14

  • CVE-2022-21595: MariaDB 10.5.14

  • CVE-2022-21451: MariaDB 10.5.10

  • CVE-2022-21427: MariaDB 10.5.7

  • CVE-2022-0778: MariaDB 10.5.14

  • CVE-2021-46669: MariaDB 10.5.16

  • CVE-2021-46668: MariaDB 10.5.15

  • CVE-2021-46667: MariaDB 10.5.13

  • CVE-2021-46666: MariaDB 10.5.11

  • CVE-2021-46665: MariaDB 10.5.15

  • CVE-2021-46664: MariaDB 10.5.15

  • CVE-2021-46663: MariaDB 10.5.15

  • CVE-2021-46662: MariaDB 10.5.13

  • CVE-2021-46661: MariaDB 10.5.15

  • CVE-2021-46659: MariaDB 10.5.14

  • CVE-2021-46658: MariaDB 10.5.12

  • CVE-2021-46657: MariaDB 10.5.11

  • CVE-2021-35604: MariaDB 10.5.13

  • CVE-2021-27928: MariaDB 10.5.9

  • CVE-2021-2389: MariaDB 10.5.12

  • CVE-2021-2372: MariaDB 10.5.12

  • CVE-2021-2194: MariaDB 10.5.7

  • CVE-2021-2166: MariaDB 10.5.10

  • CVE-2021-2154: MariaDB 10.5.10

  • CVE-2021-2022: MariaDB 10.5.5

  • CVE-2020-28912: MariaDB 10.5.7

  • CVE-2020-15180: MariaDB 10.5.6

  • CVE-2020-14812: MariaDB 10.5.7

  • CVE-2020-14789: MariaDB 10.5.7

  • CVE-2020-14776: MariaDB 10.5.7

  • CVE-2020-14765: MariaDB 10.5.7

  • CVE-2018-25032: MariaDB 10.5.17

  • Stable (GA)

    8 Aug 2024

    Stable (GA)

    16 May 2024

    Stable (GA)

    7 Feb 2024

    Stable (GA)

    13 Nov 2023

    Stable (GA)

    14 Aug 2023

    Stable (GA)

    7 Jun 2023

    Stable (GA)

    10 May 2023

    Stable (GA)

    6 Feb 2023

    Stable (GA)

    7 Nov 2022

    Stable (GA)

    15 Aug 2022

    Stable (GA)

    20 May 2022

    Stable (GA)

    12 Feb 2022

    Stable (GA)

    9 Feb 2022

    Stable (GA)

    8 Nov 2021

    Stable (GA)

    6 Aug 2021

    Stable (GA)

    23 Jun 2021

    Stable (GA)

    7 May 2021

    Stable (GA)

    22 Feb 2021

    Stable (GA)

    11 Nov 2020

    Stable (GA)

    3 Nov 2020

    Stable (GA)

    7 Oct 2020

    Stable (GA)

    10 Aug 2020

    Stable (GA)

    24 Jun 2020

    Stable (GA)

    12 May 2020

    RC

    26 Mar 2020

    Beta

    14 Feb 2020

    Beta

    3 Dec 2019

    Alpha

    8 May 2025

    MariaDB 10.5.29

    Stable (GA)

    Release Notes

    Changelog

    4 Feb 2025

    MariaDB 10.5.28

    Stable (GA)

    Release Notes

    Changelog

    Differences in MariaDB Enterprise Server 10.5
    MDEV-21303
    MDEV-274
    MDEV-22606
    MDEV-22088
    MDEV-21743
    MDEV-18582
    MDEV-19940
    MDEV-19738
    MDEV-19514
    MDEV-20487
    MDEV-19534
    MDEV-19534
    MDEV-19544
    MDEV-19543
    MDEV-16431
    MDEV-16432
    MDEV-16433
    MDEV-16438
    commit
    MDEV-20051
    MDEV-20720
    MDEV-18648
    MDEV-20601
    MDEV-21833
    MDEV-10014
    MDEV-10014
    MDEV-18844
    MDEV-16978
    MDEV-19313
    MDEV-23162
    MDEV-23478
    MDEV-20854
    MDEV-15777
    MDEV-21263
    MDEV-21580
    MDEV-12684
    MDEV-19755
    MDEV-11412
    MDEV-14024
    MDEV-12684
    MDEV-19906
    MDEV-18650
    MariaDB 10.5
    CVE-2025-21490
    MariaDB 10.5.28
    CVE-2024-21096
    MariaDB 10.5.25
    CVE-2023-5157
    MariaDB 10.5.17
    CVE-2023-22084
    MariaDB 10.5.23
    10.5 and beyond
    MariaDB 10.5
    MariaDB ColumnStore
    Galera

    1 Nov 2024

    NO_LOG - No metadata is logged (default)
    MariaDB 10.5.27
    Release Notes
    Changelog
    MariaDB 10.5.26
    Release Notes
    Changelog
    MariaDB 10.5.25
    Release Notes
    Changelog
    MariaDB 10.5.24
    Release Notes
    Changelog
    MariaDB 10.5.23
    Release Notes
    Changelog
    MariaDB 10.5.22
    Release Notes
    Changelog
    MariaDB 10.5.21
    Release Notes
    Changelog
    MariaDB 10.5.20
    Release Notes
    Changelog
    MariaDB 10.5.19
    Release Notes
    Changelog
    MariaDB 10.5.18
    Release Notes
    Changelog
    MariaDB 10.5.17
    Release Notes
    Changelog
    MariaDB 10.5.16
    Release Notes
    Changelog
    MariaDB 10.5.15
    Release Notes
    Changelog
    MariaDB 10.5.14
    Release Notes
    Changelog
    MariaDB 10.5.13
    Release Notes
    Changelog
    MariaDB 10.5.12
    Release Notes
    Changelog
    MariaDB 10.5.11
    Release Notes
    Changelog
    MariaDB 10.5.10
    Release Notes
    Changelog
    MariaDB 10.5.9
    Release Notes
    Changelog
    MariaDB 10.5.8
    Release Notes
    Changelog
    MariaDB 10.5.7
    Release Notes
    Changelog
    MariaDB 10.5.6
    Release Notes
    Changelog
    MariaDB 10.5.5
    Release Notes
    Changelog
    MariaDB 10.5.4
    Release Notes
    Changelog
    MariaDB 10.5.3
    Release Notes
    Changelog
    MariaDB 10.5.2
    Release Notes
    Changelog
    MariaDB 10.5.1
    Release Notes
    Changelog
    MariaDB 10.5.0
    Release Notes
    Changelog

    The most recent release of MariaDB 10.5 is:

    MariaDB 10.5.29 Stable (GA) Download Now

    Alternate download from mariadb.org

    Upgrading Between Major MariaDB Versions
    Upgrading from MariaDB 10.4 to MariaDB 10.5
    independent maturity levels
    INET6
    S3 storage engine
    partitioned
    privilege
    BINLOG ADMIN
    BINLOG REPLAY
    CONNECTION ADMIN
    SHOW STATUS
    INFORMATION_SCHEMA.INNODB_
    innodb_adaptive_hash_index
    innodb_checksum_algorithm
    innodb_buffer_pool_instances
    innodb_checksums
    innodb_locks_unsafe_for_binlog
    innodb_log_checksums
    GTID
    slave_parallel_mode
    SLAVE in SQL statements
    slave_run_triggers_for_rbr
    INSERT ... RETURNING
    DELETE ... RETURNING
    REPLACE ... RETURNING
    EXCEPT ALL
    INTERSECT ALL
    WITHOUT OVERLAPS
    JSON_ARRAYAGG
    JSON_OBJECTAGG
    THREAD_POOL_GROUPS
    THREAD_POOL_QUEUES
    THREAD_POOL_STATS
    THREAD_POOL_WAITS
    ANALYZE for statements
    Inferred IS NOT NULL predicates can be used by the range optimizer
    Information Schema SYSTEM_VARIABLES Table
    Aria
    MyISAM
    DROP TABLE
    PCRE2
    System Variables Added in MariaDB 10.5
    Status Variables Added in MariaDB 10.5
    Information Schema SYSTEM_VARIABLES Table
    show_old_temporals
    Security Vulnerabilities Fixed in MariaDB
    FEDERATED ADMIN
    READ_ONLY ADMIN
    REPLICATION MASTER ADMIN
    REPLICATION SLAVE ADMIN
    SET USER
    REPLICATION CLIENT
    BINLOG MONITOR
    SHOW MASTER STATUS
    SHOW BINLOG STATUS
    SHOW BINLOG EVENTS
    BINLOG MONITOR
    REPLICATION SLAVE
    SHOW SLAVE HOSTS
    REPLICATION MASTER ADMIN
    REPLICATION SLAVE
    mysql.global_priv.priv
    SHOW PRIVILEGES
    redo log
    InnoDB buffer pool
    innodb_buffer_page
    innodb_buffer_page_lru
    innodb_buffer_pool_stats
    innodb_cmpmem
    innodb_cmpmem_reset
    innodb_log_files_in_group
    innodb_log_optimize_ddl
    innodb_rollback_segments
    innodb_scrub_log
    innodb_scrub_log_speed
    INFORMATION_SCHEMA.INNODB_TABLESPACES_SCRUBBING
    innodb-background-scrub-data-uncompressed
    innodb-background-scrub-data-compressed
    innodb-background-scrub-data-interval
    innodb-background-scrub-data-check-interval
    innodb_stats_sample_pages
    innodb_undo_logs
    innodb_thread_concurrency
    innodb_commit_concurrency
    innodb_replication_delay
    innodb_concurrency_tickets
    innodb_thread_sleep_delay
    innodb_adaptive_max_sleep_delay
    binlog
    mariadb-binlog
    SHOW BINLOG EVENTS
    SHOW RELAYLOG EVENTS
    default partitions for system versioning
    CREATE DATABASE
    ALTER DATABASE
    ALTER TABLE ... RENAME INDEX / KEY
    ALTER TABLE ... RENAME COLUMN
    ALTER TABLE
    RENAME TABLE
    VISIBLE attribute for indexes
    CTE
    RELEASE_ALL_LOCKS
    GET_LOCK()
    REFERENCES constraint
    VARCHAR
    CHAR
    BLOBs
    multi_range_count
    thread_concurrency
    timed_mutexes
    SHOW SLAVE STATUS
    REPLICATION SLAVE ADMIN
    SUPER
    REPLICATION CLIENT
    SUPER
    SHOW RELAYLOG EVENTS
    REPLICATION SLAVE ADMIN
    REPLICATION SLAVE
    binlog_row_metadata

    This page is licensed: CC BY-SA / Gnu FDL