Release Notes for MariaDB MaxScale 23.08.1
MariaDB MaxScale is an advanced database proxy and query router. MaxScale is a component of MariaDB database products.
MariaDB MaxScale 23.08.1 was released on 2023-09-21. This release is of General Availability (GA) maturity.
This document describes the changes in
MaxScale 23.08.1 when compared to
Fixed Security Vulnerabilities
CVE (with cve.org link)
libmicrohttpd has been updated to version 0.9.76 (MXS-4751)
MaxGUI is a graphical utility that can perform administrative tasks using MaxScale's REST API.
Enhancements in this release include:
Entity Relationship Diagrams (ERD) can be created in the Workspace. (MXS-3735)
Visualization of response time distribution (
response_time_distributionin the REST API) (MXS-3761)
Query Editor displays additional detail (schema object insights) after clicking on a table, procedure, trigger, view, or stored function. Detail includes indexes and foreign keys. (MXS-3991)
Built-in Caching in
Starting with this release,
nosqlprotocol.internal_cacheuses keys created from NoSQL protocol requests and stores NoSQL protocol responses.
The internal cache can be configured by using the following nested configuration syntax:
[My-NoSQL-Listener] ... nosqlprotocol.internal_cache=cache nosqlprotocol.cache.max_size=10M nosqlprotocol.cache.soft_ttl=30s nosqlprotocol.cache.hard_ttl=40s ...
LOAD DATA INFILE from S3
LDI filter enables data loading from S3 API-compatible object storage such as AWS S3, Google Cloud Storage, or locally-run storage like MinIO. (MXS-4618)
File paths that start with
gs://are interpreted as S3 object files.
For example, after filter setup, the following SQL statement would would load the file
my-data.csvfrom the bucket
my-bucketinto the table
LOAD DATA INFILE 'S3://my-bucket/my-data.csv' INTO TABLE t1 FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n';
For additional information, see LDI filter documentation.
Common Configuration Blocks
Configuration blocks can be defined which are common to multiple sections, and then be included in those sections by name.
This can be useful in cases where multiple monitors are configured the same except for their list of servers.
[Monitor-Common] type=include module=mariadbmon user=the_user password=the_password handle_events=false monitor_interval=2000ms backend_connect_timeout = 3s backend_connect_attempts = 5 [Monitor1] type=monitor @include=Monitor-Common servers=Server1, Server2 [Monitor2] type=monitor @include=Monitor-Common servers=Server3, Server3
With MariaDB Monitor (
mariadbmon), during a switchover MariaDB Monitor initiates a new connection to the master with a long timeout, ignoring the limit of
This reduces the probability of timeout when executing long-running statements such as
SET GLOBAL read_only=1
When kicking-out super and read-only admin users, the monitor prevent writes with
FLUSH TABLES WITH READ LOCK
For additional information, see MariaDB Monitor documentation.
Manual Forced Switchover
switchover-forceswaps a running primary with a replica, ignoring most errors.
This command can be useful where an automatic switchover may not happen. For example, manual forced switchover may be needed if the primary server responds to pings but does not perform other commands.
switchover-forceshould be used with caution because it may lead to diverging replication on the old primary.
Safer Transaction Replay
readwritesplit router with
transaction_replay enabled, default transaction replay behavior has changed. (MXS-4505)
transaction_replay_safe_commitcontrols whether to replay transactions that were about to be committed to the server.
The new default behavior is not to replay transactions that were being committed to the server when the connection was lost.
Partial Results and Replay
readwritesplit router, if a query in a transaction is interrupted and the result was partially delivered to the client, the query will be re-executed and the part of the result already delivered to the client will be discarded. (MXS-4549)
fast_universal Causal Reads
fast_universaluses the same mechanism to retrieve GTID position as
fastwhen routing queries.
schemawriter Cache Invalidation
maxctrl call command schemarouter clear <service>
This makes it possible to schedule the clearing of the caches for busy systems where the update of the map takes a long time.
schemawriter Stale Cache Usage
schemawriter router, stale entries in the database map can be used up to
max_staleness seconds. (MXS-4216)
This reduces the impact that a shard update causes to the client applications.
PAM Authentication Sandboxing
PAM authentication can be run in a suid sandbox subprocess. (MXS-3753)
This behavior is enabled with PAM Authenticator when
For additional information, see PAM Authenticator documentation.
Service Password Changeover
When a service password is changed, MaxScale remembers and will use the previous password if the new password does not work. (MXS-4232)
This makes it easier to perform a password changeover, since the password in the backend and the password in MaxScale do not need to be changed simultaneously.
regex Matching Limits
The PCRE2 library used by MaxScale now limits heap memory to 1GB and limits matches to
500000. This change prevents catastrophic backtracking when a regular expression uses nested recursion. (MXS-3531)
REST API JWT Issuer
admin_jwt_issuer configures the value of the
iss field in JWT generated by the MaxScale REST API, allowing clients to see who issued the token. (MXS-4277)
Prior to this release, the issuer was
maxscalefor all tokens.
Logging due to
log_info no longer results in log entries containing extra newlines that are present in the logged SQL statement. (MXS-4385)
Prior to this release, SQL statements were logged verbatim. If the SQL statement contained extra newlines, the log entry would also include those newlines.
Starting with this release, newlines are replaced with the text
\nso that the log line does not contain extra newlines.
MaxGUI UI Improvement
When adding a new query tab, the new query tab automatically uses the current active database of the current active query tab. (MXS-4364)
Region-Aware Bootstrap for MariaDB Xpand
With Xpand monitor, it is possible to limit the nodes that the monitor dynamically detects to those in a specific region.
For additional information, see
region_oidin Xpand monitor documentation.
MariaDB Xpand LDAP Support
In support of LDAP features added in MariaDB Xpand 23.09.1, the MariaDB Authenticator (
mariadbauth) includes a passthrough authentication mode.
Since passwords are sent in clear-text, the MaxScale listener should be configured for SSL (TLS).
For additional information, see MariaDB Authenticator documentation.
Early Connection Metadata
connection_metadata listener parameter controls the set of metadata variables sent to the client during connection creation. (MXS-4635)
By default, the following values are sent:
threads_connected, with the current number of connections
connection_id, with the real 64-bit connection ID
Compatible MariaDB Connectors will use this information from MaxScale instead of querying the values of the variables from the database server. This will speed up connection creation.
connection_timeoutconfiguration parameter has been renamed to
connection_timeoutis an alias to
The use of the old name (
connection_timeout) is deprecated.
max_slave_replication_lagparameter has been renamed to
max_slave_replication_lagis an alias to
The use of the old name (
max_slave_replication lag) is deprecated.
query_classifierconfiguration parameter is deprecated and ignored.
query_classifier_argsconfiguration parameter is deprecated and ignored.
strip_db_escconfiguration parameter is deprecated.
The default behavior of stripping escape characters is in all known cases the correct behavior. This parameter is never required.
Can result in unexpected behavior
log_throttlingis not disabled if
log_infois enabled, which can cause omission of log messages. (MXS-4749)
Connection IDs are missing from error messages. (MXS-4735)
slave_selection_criteriadoes not accept lowercased versions of enumeration values. (MXS-4724)
Graphs in MaxGUI can refresh continually, even when refresh is stopped. (MXS-4477)
Before upgrading to MariaDB MaxScale 23.08.1, back up any existing configuration files.
In alignment to the MariaDB Corporation Engineering Policy, MariaDB MaxScale 23.08.1 is provided for:
CentOS 7 (x86_
Debian 10 (x86_
Debian 11 (x86_
Debian 12 (x86_
Red Hat Enterprise Linux 7 (x86_
Red Hat Enterprise Linux 8 (x86_
Red Hat Enterprise Linux 9 (x86_
Rocky Linux 8 (x86_
Rocky Linux 9 (x86_
SUSE Linux Enterprise Server 15 (x86_
Ubuntu 20.04 (x86_
Ubuntu 22.04 (x86_