What's New in MariaDB Enterprise Server 10.5?
This page is part of MariaDB's Documentation.
The parent of this page is: What's new in older releases?
Topics on this page:
Overview
MariaDB Enterprise Server 10.5 introduces the new features listed below.
Notable Features
Enterprise ColumnStore Storage Engine
The ColumnStore storage engine is a columnar storage engine that provides distributed, columnar storage for scalable analytical processing and smart transactions.
MariaDB Enterprise Server 10.5 includes an enterprise version of the ColumnStore storage engine as a plugin:
It includes MariaDB Enterprise ColumnStore 5, which has many improvements.
The installation process has been massively simplified.
The multi-node implementation has been completely rebuilt to use a REST API for orchestration.
See What's New in MariaDB Enterprise ColumnStore 5? for more details.
Other Features
Embracing the MariaDB Name
MariaDB Enterprise Server 10.5 uses the "MariaDB" name in more places:
It uses MariaDB in many error messages that previously referred to MySQL.
It uses
DBD::MariaDB
for bundled Perl scripts that previously usedDBD::mysql
.It uses new MariaDB-based names as the primary names for many executables. The old names are still supported for backward compatibility using symbolic links. The new MariaDB-based names were first introduced in MariaDB Enterprise Server 10.4. However, in that version, the old names were still the primary names for the executables, and the new names were supported using symbolic links. See below for the new MariaDB-based names:
Old Executable Name
New Executable Name
mysql
mysqld
mariabackup
mysql_plugin
mysql_upgrade
mysql_waitpid
mysqladmin
mysqlbinlog
mysqlcheck
mysqldump
mysqlimport
mysqlshow
mysqlslap
mysql_client_test
mariadb-client-test
mysql_client_test_embedded
mariadb-client-test-embedded
mysql_config
mariadb-config
mysql_convert_table_format
mariadb-convert-table-format
mysql_embedded
mariadb-embedded
mysql_find_rows
mariadb-find-rows
mysql_fix_extensions
mariadb-fix-extensions
mysql_install_db
mariadb-install-db
mysql_ldb
mariadb-ldb
.mysql_secure_installation
mariadb-secure-installation
mysql_setpermission
mariadb-setpermission
mysql_tzinfo_to_sql
mariadb-tzinfo-to-sql
mysql_upgrade_service
mariadb-upgrade-service
mysql_upgrade_wizard
mariadb-upgrade-wizard
mysqld_multi
mariadbd-multi
mysqld_safe
mariadbd-safe
mysqld_safe_helper
mariadbd-safe-helper
mysqldumpslow
mariadb-dumpslow
mysqlhotcopy
mariadb-hotcopy
mysqltest
mariadb-test
mysqltest_embedded
mariadb-test-embedded
Packaging
MariaDB Enterprise Server 10.5 includes some packaging improvements:
It includes a new
mariadb-conv
command-line tool to encode/decode MariaDB-encoded file system names.Binary tarball packages have the following changes:
Embedded server (
libmysqld
) has been removed.Debug symbols have been stripped from non-server binaries.
The server binary (mariadbd) retains its debug symbols, so that stack traces contain readable function names.
Binary tarball size has been reduced from over 1 GB to around 300 MB.
It removes the TokuDB storage engine from packages.
It removes the Cassandra storage engine from packages.
It removes support for RHEL6 and CentOS 6.
InnoDB Storage Engine
The InnoDB storage engine is an ACID-compliant storage engine that is very performant and reliable for general purpose transactional workloads.
MariaDB Enterprise Server 10.5 includes many significant improvements to the InnoDB storage engine:
It implements a new thread pool for InnoDB background tasks, which allows for InnoDB to use system resources more efficiently.
It reduces semaphore contention in several areas to help the system perform better under high concurrency:
It reduces semaphore contention when accessing the buffer pool.
It removes the ability to configure multiple buffer pool instances, since it does not reduce contention.
It reduces semaphore contention when executing DROP TABLE statements.
It uses table metadata locks instead of internal InnoDB semaphores for certain background operations.
It adds instrumentation that informs the server's thread pool about semaphore waits, so that the thread pool can let other client connections perform work while a client connection is waiting on a semaphore.
It improves performance in several areas:
It uses a new InnoDB redo log format that is more efficient.
It removes the ability to configure multiple InnoDB redo log files, since it does not help performance.
It optimizes access to certain InnoDB page header fields.
It optimizes how the change buffer is merged.
It optimizes how InnoDB scrubs deleted data.
It improves stability in several areas:
It improves how InnoDB scrubs deleted data by ensuring that scrubbing operations are properly written to the InnoDB redo log.
It receives foreign key metadata from the server, rather than relying on an internal SQL parser.
It allows prepared XA transactions to be properly recovered after a client disconnects.
It allows the number of InnoDB purge threads to be changed dynamically without a server restart. As a consequence, the innodb_
purge_ system variable can be changed dynamically with the SET GLOBAL statement.threads It allows the InnoDB redo log to be resized dynamically without a server restart. As a consequence, the innodb_
log_ system variable can be changed dynamically with the SET GLOBAL statement.file_ size It allows the number of InnoDB I/O threads to be changed dynamically without a server restart. As a consequence, the innodb_
read_ and innodb_io_ threads write_ system variables can be changed dynamically with the SET GLOBAL statement.io_ threads
Spider Storage Engine
The Spider storage engine allows you to build complex and powerful distributed databases using federated and sharded tables.
MariaDB Enterprise Server 10.5 contains several enhancements for the Spider storage engine:
It adds support for an ODBC foreign data wrapper. This feature has beta maturity.
It adds the information_
schema.SPIDER_ table.WRAPPER_ PROTOCOLS
Aria Storage Engine
The Aria storage engine is a crash-safe storage engine that is incredibly fast for read-only workloads.
MariaDB Enterprise Server 10.5 contains several enhancements for the Aria storage engine:
It handles the BACKUP STAGE BLOCK_
COMMIT statement by blocking commits to Aria tables, which allows for safer backups with MariaDB Backup.It increases the index length limit for Aria tables from 1000 bytes to 2000 bytes.
S3 Storage Engine
MariaDB Enterprise Server 10.5 contains several enhancements to the S3 storage engine:
The S3 storage engine allows tables to be archived in S3-compatible storage.
Tables can be archived in S3 by executing ALTER TABLE ... ENGINE=S3.
After the table has been archived, it becomes read-only.
The S3 storage engine supports partitioning.
The S3 storage engine supports replication.
Privileges Comparison ES10.4 and ES10.5.8-5
MariaDB Enterprise Server 10.5 adds privileges that allow operations that previously required the SUPER. The following table is a summary of the changes between MariaDB Enterprise Server 10.4 and MariaDB Enterprise Server 10.5.8-5. More specific detail is found in MariaDB Replication, and in MariaDB Reference.
Privilege
Present in ES10.4?
Present in ES10.5.8-5?
Notes
no
yes
Allows the user to execute PURGE BINARY LOGS statements.
Allows the user to SET the following system variables:no
yes
Legacy REPLICATION CLIENT privilege is an alias for this new privilege, but the capabilities have changed.
Unlike legacy REPLICATION CLIENT privilege, BINLOG MONITOR can no longer execute SHOW SLAVE STATUS, SHOW REPLICA STATUS in ES10.5.
BINLOG MONITOR allows the user to execute SHOW BINLOG EVENTS statements.
BINLOG MONITOR allows the user to execute SHOW BINLOG STATUS statements.
BINLOG MONITOR allows the user to execute SHOW BINARY LOGS statements.
BINLOG MONITOR allows the user to execute SHOW MASTER STATUS statements.
If a user upgrades from ES10.4 or earlier to ES10.5.8-5 or later, any users with REPLICATION CLIENT or REPLICATION SLAVE privileges will automatically be granted the REPLICA MONITOR privilege. This privilege upgrade happens upon server startup, so
mysql_upgrade
is not required.The upgrade behavior does not apply to minor release upgrades that upgrade from ES10.5.6-4 or earlier ES10.5.x to ES10.5.8-5 or later.
no
yes
Allows the user to execute BINLOG statements, which are output by mariadb-binlog.
Allows the user to execute SET TIMESTAMP statements when secure_
timestamp is set toreplication
. Allows the user to set the session values of several system variables that are usually included in BINLOG statements:no
yes
Skips the execution of init_
connect when the user connects.Ignores max_
connections when the user connects.Ignores max_
user_ when the user connects.connections Ignores max_
password_ when the user connects.errors Allows the user to kill connections owned by other users with the KILL statement.
Allows the user to set system variables:thread_pool_mode
no
yes
Allows the user to execute CREATE SERVER statements.
Allows the user to execute ALTER SERVER statements.
Allows the user to execute DROP SERVER statements.
no
yes
Allows the user to write data even if the read_
only system variable is enabled.Allows the user to execute DROP TRIGGER statements even if the read_
only system variable is enabled.Allows the user to execute START TRANSACTION READ WRITE statements even if the read_
only system variable is enabled. Allows the user to set system variables:no
yes
REPLICA MONITOR is a new privilege in ES10.5.8-5 and was not present in earlier releases.
REPLICA MONITOR can execute:
If a user upgrades from ES10.4 or earlier to ES10.5.8-5 or later, any users with REPLICATION CLIENT or REPLICATION SLAVE privileges will automatically be granted the REPLICA MONITOR privilege. This privilege upgrade happens upon server startup, so
mysql_upgrade
is not required.The upgrade behavior does not apply to minor release upgrades that upgrade from ES10.5.6-4 or earlier ES10.5.x to ES10.5.8-5 or later.
REPLICA MONITOR is an alias for SLAVE MONITOR which is also new in ES10.5.8-5.
yes
no
Replaced by BINLOG MONITOR in 10.5. REPLICATION CLIENT can be used as an alias for BINLOG MONITOR but the capabilities for BINLOG MONITOR are different than those of legacy REPLICATION CLIENT. Unlike legacy REPLICATION CLIENT privilege, BINLOG MONITOR can no longer execute SHOW SLAVE STATUS, SHOW REPLICA STATUS in ES10.5. REPLICATION CLIENT as an alias for BINLOG MONITOR:
Allows the user to execute SHOW BINLOG EVENTS statements.
Allows the user to execute SHOW BINLOG STATUS statements.
Allows the user to execute SHOW BINARY LOGS statements.
Allows the user to execute SHOW MASTER STATUS statements.
If a user upgrades from ES10.4 or earlier to ES10.5.8-5 or later, any users with REPLICATION CLIENT or REPLICATION SLAVE privileges will automatically be granted the REPLICA MONITOR privilege. This privilege upgrade happens upon server startup, so
mysql_upgrade
is not required.The upgrade behavior does not apply to minor release upgrades that upgrade from ES10.5.6-4 or earlier ES10.5.x to ES10.5.8-5 or later.
no
yes
Allows the user to execute SHOW REPLICA HOSTS statements.
Allows the user to execute SHOW SLAVE HOSTS statements.
Allows the user to set system variables:no
yes
Added in ES10.5 as an alias for REPLICATION SLAVE.
yes
yes
Can be used as an alias for REPLICATION REPLICA.
In ES10.5 REPLICATION SLAVE can no longer execute SHOW RELAYLOG EVENTS. In ES10.5 versions earlier than ES10.5.8-5, SHOW RELAYLOG EVENTS requires REPLICATION REPLICA ADMIN. In ES10.5.8-5, SHOW RELAYLOG EVENTS requires REPLICA MONITOR.
In ES10.5 REPLICATION SLAVE can no longer execute SHOW BINLOG EVENTS. SHOW BINLOG EVENTS requires BINLOG MONITOR.
If a user upgrades from ES10.4 or earlier to ES10.5.8-5 or later, any users with REPLICATION CLIENT or REPLICATION SLAVE privileges will automatically be granted the REPLICA MONITOR privilege. This privilege upgrade happens upon server startup, so
mysql_upgrade
is not required.The upgrade behavior does not apply to minor release upgrades that upgrade from ES10.5.6-4 or earlier ES10.5.x to ES10.5.8-5 or later.
no
yes
Alias for REPLICATION SLAVE ADMIN
Capabilities changed in ES10.5.8-5 with the following abilities removed from REPLICATION SLAVE ADMIN and now granted with REPLICA MONITOR:
Allows the user to execute BINLOG statements, which are output by mariadb-binlog.
Allows the user to execute CHANGE MASTER TO statements.
Allows the user to execute START ALL REPLICAS statements.
Allows the user to execute START ALL SLAVES statements.
Allows the user to execute START REPLICA statements.
Allows the user to execute START SLAVE statements.
Allows the user to execute STOP ALL REPLICAS statements.
Allows the user to execute STOP ALL SLAVES statements.
Allows the user to execute STOP REPLICA statements.
Allows the user to execute STOP SLAVE statements.
Allows the user to set system variables:no
yes
Alias for REPLICATION REPLICA ADMIN see REPLICATION REPLICA ADMIN for details.
no
yes
Allows the user to set the definer of views, triggers, stored procedures, stored functions, and events.
Allows the user to view the definer of an object, even if the user account no longer exists.
no
yes
SLAVE MONITOR is a new privilege in ES10.5.8-5 and was not present in earlier releases.
SLAVE MONITOR can execute:
If a user upgrades from ES10.4 or earlier to ES10.5.8-5 or later, any users with REPLICATION CLIENT or REPLICATION SLAVE privileges will automatically be granted the SLAVE MONITOR privilege. This privilege upgrade happens upon server startup, so
mysql_upgrade
is not required.The upgrade behavior does not apply to minor release upgrades that upgrade from ES10.5.6-4 or earlier ES10.5.x to ES10.5.8-5 or later.
SLAVE MONITOR is an alias for REPLICA MONITOR which is also new in ES10.5.8-5.
yes
yes
The SUPER privilege is present in ES10.4 and ES10.5 but the capabilities have changed. New privileges have been added in ES10.5 to provide finer grained control and reduce the need to grant
SUPER
privileges.With the addition of the new privileges in ES10.5,
SUPER
:
no longer executes SHOW MASTER STATUS, SHOW BINLOG STATUS, and SHOW BINARY LOGS. Those require BINLOG MONITOR in ES10.5.
no longer sets the definer for views, triggers, functions, procedures, and events in ES10.5. Those capabilities require SET USER in ES10.5.
no longer ignores the read_
only system variable in ES10.5. That capability requires READ ONLY ADMIN in ES10.5 no longer kills threads owned by other users and bypass limits on connection and authentication failures. Those capabilities require CONNECTION ADMIN in ES10.5
no longer executes CREATE SERVER, ALTER SERVER, DROP SERVER in ES10.5. Those capabilities require FEDERATED ADMIN in ES10.5.
no longer executes PURGE BINARY LOGS in ES10.5. PURGE BINARY LOGS requires BINLOG ADMIN in ES10.5.
Privileges Comparison ES10.4 and ES10.5 before ES10.5.8-5
MariaDB Enterprise Server 10.5 adds privileges that allow operations that previously required the SUPER. The following table is a summary of the changes between MariaDB Enterprise Server 10.4 and MariaDB Enterprise Server 10.5 before MariaDB Enterprise Server 10.5.8-5. More specific detail is found in MariaDB Replication, and in MariaDB Privileges Reference.
Privilege
Present in ES10.4?
Present in ES10.5 before ES10.5.8-5?
Notes
no
yes
Allows the user to execute PURGE BINARY LOGS statements.
Allows the user to set system variables:no
yes
Legacy REPLICATION CLIENT privilege is an alias for this new privilege, but the capabilities have changed.
BINLOG MONITOR can no longer execute SHOW SLAVE STATUS, SHOW REPLICA STATUS in ES10.5.
BINLOG MONITOR allows the user to execute SHOW BINLOG EVENTS statements.
BINLOG MONITOR allows the user to execute SHOW BINLOG STATUS statements.
BINLOG MONITOR allows the user to execute SHOW BINARY LOGS statements.
BINLOG MONITOR allows the user to execute SHOW MASTER STATUS statements.
If a user upgrades from ES10.4 or earlier to ES10.5.8-5 or later, any users with REPLICATION CLIENT or REPLICATION SLAVE privileges will automatically be granted the REPLICA MONITOR privilege. This privilege upgrade happens upon server startup, so
mysql_upgrade
is not required.The upgrade behavior does not apply to minor release upgrades that upgrade from ES10.5.6-4 or earlier ES10.5.x to ES10.5.8-5 or later.
no
yes
Allows the user to execute BINLOG statements, which are output by mariadb-binlog.
Allows the user to execute SET TIMESTAMP statements when secure_
timestamp is set toreplication
. Allows the user to set the session values of several system variables that are usually included in BINLOG statements:no
yes
Skips the execution of init_
connect when the user connects.Ignores max_
connections when the user connects.Ignores max_
user_ when the user connects.connections Ignores max_
password_ when the user connects.errors Allows the user to kill connections owned by other users with the KILL statement.
Allows the user to set system variables:thread_pool_mode
no
yes
Allows the user to execute CREATE SERVER statements.
Allows the user to execute ALTER SERVER statements.
Allows the user to execute DROP SERVER statements.
no
yes
Allows the user to write data even if the read_
only system variable is enabled.Allows the user to execute DROP TRIGGER statements even if the read_
only system variable is enabled.Allows the user to execute START TRANSACTION READ WRITE statements even if the read_
only system variable is enabled. Allows the user to set system variables:yes
no
Replaced by BINLOG MONITOR in 10.5.
If a user upgrades from ES10.4 or earlier to ES10.5.8-5 or later, any users with REPLICATION CLIENT or REPLICATION SLAVE privileges will automatically be granted the REPLICA MONITOR privilege. This privilege upgrade happens upon server startup, so
mysql_upgrade
is not required.The upgrade behavior does not apply to minor release upgrades that upgrade from ES10.5.6-4 or earlier ES10.5.x to ES10.5.8-5 or later.
no
yes
Allows the user to execute SHOW REPLICA HOSTS statements.
Allows the user to execute SHOW SLAVE HOSTS statements.
Allows the user to set system variables:no
yes
Added in ES10.5 as an alias for REPLICATION SLAVE
If a user upgrades from ES10.4 or earlier to ES10.5.8-5 or later, any users with REPLICATION CLIENT or REPLICATION SLAVE privileges will automatically be granted the REPLICA MONITOR privilege. This privilege upgrade happens upon server startup, so
mysql_upgrade
is not required.The upgrade behavior does not apply to minor release upgrades that upgrade from ES10.5.6-4 or earlier ES10.5.x to ES10.5.8-5 or later..
yes
yes
Can be used as an alias for REPLICATION REPLICA.
In ES10.5 REPLICATION SLAVE can no longer execute SHOW RELAYLOG EVENTS that requires REPLICATION SLAVE ADMIN.
In ES10.5 REPLICATION SLAVE can no longer execute SHOW BINLOG EVENTS that requires BINLOG MONITOR.
no
yes
Alias for REPLICATION SLAVE ADMIN
Allows the user to execute BINLOG statements, which are output by mariadb-binlog.
Allows the user to execute CHANGE MASTER TO statements.
Allows the user to execute SHOW ALL REPLICAS STATUS statements.
Allows the user to execute SHOW ALL SLAVES STATUS statements.
Allows the user to execute SHOW RELAYLOG EVENTS statements.
Allows the user to execute SHOW REPLICA STATUS statements.
Allows the user to execute SHOW SLAVE STATUS statements.
Allows the user to execute START ALL REPLICAS statements.
Allows the user to execute START ALL SLAVES statements.
Allows the user to execute START REPLICA statements.
Allows the user to execute START SLAVE statements.
Allows the user to execute STOP ALL REPLICAS statements.
Allows the user to execute STOP ALL SLAVES statements.
Allows the user to execute STOP REPLICA statements.
Allows the user to execute STOP SLAVE statements.
Allows the user to set system variables:no
yes
Alias for REPLICATION REPLICA ADMIN see REPLICATION REPLICA ADMIN for details.
no
yes
Allows the user to set the definer of views, triggers, stored procedures, stored functions, and events.
Allows the user to view the definer of an object, even if the user account no longer exists.
yes
yes
The SUPER privilege is present in ES10.4 and ES10.5 but the capabilities have changed. New privileges have been added in ES10.5 to provide finer grained control and reduce the need to grant
SUPER
privileges.With the addition of the new privileges in ES10.5,
SUPER
:
no longer executes SHOW MASTER STATUS, SHOW BINLOG STATUS, and SHOW BINARY LOGS. Those require BINLOG MONITOR in ES10.5.
no longer sets the definer for views, triggers, functions, procedures, and events in ES10.5. Those capabilities require SET USER in ES10.5.
no longer ignores the read_
only system variable in ES10.5. That capability requires READ ONLY ADMIN in ES10.5 no longer kills threads owned by other users and bypass limits on connection and authentication failures. Those capabilities require CONNECTION ADMIN in ES10.5
no longer executes CREATE SERVER, ALTER SERVER, DROP SERVER in ES10.5. Those capabilities require FEDERATED ADMIN in ES10.5.
no longer executes PURGE BINARY LOGS in ES10.5. PURGE BINARY LOGS requires BINLOG ADMIN in ES10.5.
MariaDB Replication
MariaDB Enterprise Server 10.5 improves MariaDB Replication:
It allows extended table metadata to be written to the binary log by configuring the binlog_
row_ system variable.metadata It changes the default parallel replication mode from
conservative
tooptimistic
.It renames the
REPLICATION CLIENT
privilege toBINLOG MONITOR
, but it still supports the old name.It allows replication-related operations that previously required the
SUPER
privilege to theBINLOG MONITOR
(formerlyREPLICATION CLIENT
):Privilege
Newly Granted Operations
BINLOG MONITOR
(formerlyREPLICATION CLIENT
)Allows the user to execute SHOW BINLOG STATUS statements.
Allows the user to execute SHOW BINLOG EVENTS statements.
Allows the user to execute SHOW BINARY LOGS statements.
Allows the user to execute SHOW MASTER STATUS statements.
It adds new replication-related privileges to allow operations that previously required the
SUPER
privilege:Privilege
Granted Operations
BINLOG ADMIN
Allows the user to execute PURGE BINARY LOGS statements.
- Allows the user to set system variables:
BINLOG REPLAY
Allows the user to execute BINLOG statements, which are output by mariadb-binlog.
Allows the user to execute SET TIMESTAMP statements when secure_
timestamp is set toreplication
.- Allows the user to set the session values of several system variables that are usually included in BINLOG statements:
REPLICATION MASTER ADMIN
Allows the user to execute SHOW REPLICA HOSTS statements.
Allows the user to execute SHOW SLAVE HOSTS statements.
- Allows the user to set system variables:
REPLICATION SLAVE ADMIN
Allows the user to execute BINLOG statements, which are output by mariadb-binlog.
Allows the user to execute CHANGE MASTER TO statements.
Allows the user to execute SHOW ALL REPLICAS STATUS statements.
Allows the user to execute SHOW ALL SLAVES STATUS statements.
Allows the user to execute SHOW RELAYLOG EVENTS statements.
Allows the user to execute SHOW REPLICA STATUS statements.
Allows the user to execute SHOW SLAVE STATUS statements.
Allows the user to execute START ALL REPLICAS statements.
Allows the user to execute START ALL SLAVES statements.
Allows the user to execute START REPLICA statements.
Allows the user to execute START SLAVE statements.
Allows the user to execute STOP ALL REPLICAS statements.
Allows the user to execute STOP ALL SLAVES statements.
Allows the user to execute STOP REPLICA statements.
Allows the user to execute STOP SLAVE statements.
- Allows the user to set system variables:
It adds aliases for statements that contain the word
SLAVE
that also allow the wordREPLICA
:It adds the shutdown_
wait_ system variable to control whether a replication-aware shutdown is the default shutdown behavior.for_ slaves
MariaDB Enterprise Cluster
MariaDB Enterprise Server 10.5 improves support for
:It allows Galera Cluster to be configured to prohibit DDL replication to only the storage engines that support Galera Cluster by configuring the wsrep_
strict_ system variable.ddl It adds full GTID support to Galera Cluster.
It adds an inconsistency voting protocol to mitigate the harm of inconsistencies by choosing very carefully which inconsistent nodes need to abort.
It adds support for non-blocking operations when wsrep_
OSU_ is set tomethod NBO
, including:ALTER TABLE operations executed in
SHARED
orEXCLUSIVE
locking mode.CREATE INDEX operations executed in
SHARED
orEXCLUSIVE
locking mode.DROP INDEX operations.
OPTIMIZE TABLE operations.
It adds a "black box" for Galera troubleshooting. The black box holds debug log messages in memory, which can be analyzed in case of a crash.
The default value for
gcache.size
in wsrep_provider_ has been changed to 1 GB.options
Temporal Data
MariaDB Enterprise Server 10.5 improves support for Temporal Data Tables:
It allows system-versioned tables that are partitioned on an interval of
SYSTEM_TIME
to be configured with a specific start date and time, which can make partition management more user-friendly.It allows application-time period tables to be configured to prohibit overlapping time periods.
SQL Functionality
MariaDB Enterprise Server 10.5 improves SQL functionality in several areas:
It changes the behavior of the DROP TABLE statement to forcefully drop the table, even if the storage engine can't find the table.
It changes the behavior of the ANALYZE TABLE statement, so that it no longer flushes the table definition cache, so that it performs better under concurrency.
It changes the behavior of the ANALYZE statement to show the time spent checking the
WHERE
clause.It adds support for INSERT ... RETURNING statements.
It adds support for REPLACE ... RETURNING statements.
It adds support for the
EXCEPT ALL
clause in SELECT statements.It adds support for the
INTERSECT ALL
clause in SELECT statements.It adds support for the
CYCLE
clause in common table expressions (CTEs).It adds support for
COMMENT
option for CREATE DATABASE and ALTER DATABASE statements.It adds support for ALTER TABLE IF EXISTS ....
It adds support for ALTER TABLE ... RENAME INDEX.
It adds support for ALTER TABLE ... RENAME COLUMN.
It adds support for defining foreign keys using
REFERENCE
clauses in column definitions.It adds support for the
VISIBLE
option in index definitions, which can be needed to import dumps from MySQL.It adds support for the
WITHOUT OVERLAP
option in index definitions that are defined for application-time period tables.It adds support for the
STARTS
option for system-versioned tables that are partitioned on an interval ofSYSTEM_TIME
.It adds support for the JSON_
ARRAYAGG() function.It adds support for the JSON_
OBJECTAGG() function.It adds support for the
RELEASE_ALL_LOCKS()
function.It adds support for the OVERLAPS() function.
It adds support for a new Data Type API, so that plugins can define custom data types.
It adds support for the INET6 data type, which can be used to represent IPv4 and IPv6 addresses.
It changes the way that TIMESTAMP, DATETIME, and TIME columns that use the pre-MariaDB 10.0 format are displayed in the output of SHOW CREATE TABLE and DESCRIBE and in the value of the information_
schema.COLUMNS.COLUMN_ column. Columns using the older format will have a comment that saysTYPE /* mariadb-5.3 */
.
Security
MariaDB Enterprise Server 10.5 includes several security improvements:
It allows a server to be configured to require secure connections by configuring the require_
secure_ system variable.transport If this mode is enabled, then all TCP connections must use TLS.
Local connections that connect using a Unix socket or a named pipe are also allowed.
It adds the
CONNECTION_TYPE
column to the performance_schema.threads table, which can be used to determine which connections are using TLS.It renames the
REPLICATION CLIENT
privilege toBINLOG MONITOR
, but it still supports the old name.It allows replication-related operations that previously required the
SUPER
privilege to theBINLOG MONITOR
(formerlyREPLICATION CLIENT
):Privilege
Newly Granted Operations
BINLOG MONITOR
(formerlyREPLICATION CLIENT
)Allows the user to execute SHOW BINLOG STATUS statements.
Allows the user to execute SHOW BINARY LOGS statements.
Allows the user to execute SHOW MASTER STATUS statements.
It adds new privileges to allow operations that previously required the
SUPER
privilege.Privilege
Granted Operations
Allows the user to execute PURGE BINARY LOGS statements.
- Allows the user to set system variables:
Allows the user to execute BINLOG statements, which are output by mariadb-binlog.
Allows the user to execute SET TIMESTAMP statements when secure_
timestamp is set toreplication
.- Allows the user to set the session values of several system variables that are usually included in BINLOG statements:
CONNECTION ADMIN
Skips the execution of init_
connect when the user connects.Ignores max_
connections when the user connects.Ignores max_
user_ when the user connects.connections Ignores max_
password_ when the user connects.errors Allows the user to kill connections owned by other users with the KILL statement.
- Allows the user to set system variables:
thread_pool_mode
FEDERATED ADMIN
Allows the user to execute CREATE SERVER statements.
Allows the user to execute ALTER SERVER statements.
Allows the user to execute DROP SERVER statements.
READ ONLY ADMIN
Allows the user to write data even if the read_
only system variable is enabled.Allows the user to execute DROP TRIGGER statements even if the read_
only system variable is enabled.Allows the user to execute START TRANSACTION READ WRITE statements even if the read_
only system variable is enabled.- Allows the user to set system variables:
REPLICATION MASTER ADMIN
Allows the user to execute SHOW REPLICA HOSTS statements.
Allows the user to execute SHOW SLAVE HOSTS statements.
- Allows the user to set system variables:
REPLICATION SLAVE ADMIN
Allows the user to execute BINLOG statements, which are output by mariadb-binlog.
Allows the user to execute CHANGE MASTER TO statements.
Allows the user to execute SHOW ALL REPLICAS STATUS statements.
Allows the user to execute SHOW ALL SLAVES STATUS statements.
Allows the user to execute SHOW RELAYLOG EVENTS statements.
Allows the user to execute SHOW REPLICA STATUS statements.
Allows the user to execute SHOW SLAVE STATUS statements.
Allows the user to execute START ALL REPLICAS statements.
Allows the user to execute START ALL SLAVES statements.
Allows the user to execute START REPLICA statements.
Allows the user to execute START SLAVE statements.
Allows the user to execute STOP ALL REPLICAS statements.
Allows the user to execute STOP ALL SLAVES statements.
Allows the user to execute STOP REPLICA statements.
Allows the user to execute STOP SLAVE statements.
- Allows the user to set system variables:
SET USER
Allows the user to set the definer of views, triggers, stored procedures, stored functions, and events.
Allows the user to view the definer of an object, even if the user account no longer exists.
HashiCorp Vault Encryption Plugin
MariaDB Enterprise Server 10.5 introduces an encryption plugin to support for HashiCorp Vault:
It allows HashiCorp Vault to manage encryption keys for data-at-rest encryption.
It communicates with the remote KMS using TLS.
It supports key rotation.
Performance Schema
MariaDB Enterprise Server 10.5 includes several Performance Schema improvements:
It adds support for some of the instrumentation and tables included in MySQL 5.7.
It adds the
CONNECTION_TYPE
column to the threads table, which can be used to determine which connections are using TLS.It adds new instrumentation for the following:
Memory
Metadata locks
Prepared statements
Stored procedures
Transactions
SX-Locks
Status variables
User variables
It adds the following new tables:
Information Schema
MariaDB Enterprise Server 10.5 includes several Information Schema improvements:
It adds the
GLOBAL_VALUE_PATH
column to the information_schema.SYSTEM_ table, which can be used to determine which configuration file a variable's global value was read from.VARIABLES It adds new tables to monitor the internals of the thread pool on Linux:
It removes the information_
schema.INNODB_ table.TABLESPACES_ SCRUBBING It changes some other InnoDB-related Information Schema tables in minor ways.
Thread Pool
MariaDB Enterprise Server 10.5 includes several thread pool improvements:
It improves how it calculates the number of currently active threads, which can help prevent deadlocks.
It improves performance under very bursty workloads by basing the thread creation rate and the throttling interval on the values of the thread_
pool_ and thread_stall_ limit pool_ system variables.oversubscribe It adds new Information Schema tables to monitor the internals of the thread pool on Linux:
Protocol
MariaDB Enterprise Server 10.5 includes several protocol improvements:
XA Transactions
MariaDB Enterprise Server 10.5 includes some XA transaction improvements:
It allows prepared XA transactions to be properly recovered after a client disconnects.
Internals
MariaDB Enterprise Server 10.5 includes some internal improvements:
Its internal regular expression library has been upgraded from PCRE to PCRE2.
It adds support for a new Data Type API, so that plugins can define custom data types.
For a complete list of changes, see MariaDB Enterprise Server 10.5.4-2 release notes.