Explore MariaDB MaxScale release notes. This section provides detailed information on new features, bug fixes, and improvements for each version, essential for planning upgrades and deployments.
MariaDB MaxScale 25.01 Release Notes
Learn about the new features, bug fixes, and changes in MariaDB MaxScale 25.01 releases. This section provides detailed release notes for these specific versions.
MariaDB MaxScale 24.02 Release Notes
Learn about the new features, bug fixes, and changes in MariaDB MaxScale 24.02 releases. This section provides detailed release notes for these specific versions.
MariaDB MaxScale 23.08 Release Notes
Learn about the new features, bug fixes, and changes in MariaDB MaxScale 23.08 releases. This section provides detailed release notes for these specific versions.
MariaDB MaxScale 23.02 Release Notes
Learn about the new features, bug fixes, and changes in MariaDB MaxScale 23.02 releases. This section provides detailed release notes for these specific versions.
MariaDB MaxScale 22.08 Release Notes
MariaDB MaxScale 21.06 Release Notes
Old MaxScale Releases
Old release notes for MariaDB MaxScale releases
MariaDB MaxScale 2.5 Release Notes
Learn about the new features, bug fixes, and changes in MariaDB MaxScale 2.5 releases. This section provides detailed release notes for these specific versions.
MariaDB MaxScale 25.10 Release Notes
MariaDB MaxScale 25.10 series changes and improvements
The diagnostic output of maxctrl show filter now shows the rules of a filter, if it has such.
At startup, if there are filters that are not used by any service, or servers that are not referred to by any service or monitor, a warning will be logged.
net_write_timeout now also affects backend connections.
The global settings query_retry and query_retry_timeout, as well as the monitor settings backend_write_timeout and backend_read_timeout have been removed. The settings are still recognized but any configured values are ignored.
The monitor setting backend_connect_timeout has been deprecated. Use backend_timeout instead.
Now possible to clear service and server statistics using maxctrl.
Support for compression protocols has been added to MaxScale. Both the traditional zlib compression as well as the newer zstd based compression protocols are supported by MaxScale.
MaxGUI Query Editor now disables logging for auto-generated queries by default, while queries manually written and executed in the Query Editor are still logged. Logging for both types can now be managed in the General tab of the Preferences dialog.
MaxScale now uses Forward-confirmed reverse DNS whenever resolving client IP addresses to hostnames. This is similar to how MariaDB handles reverse DNS lookups. The debug=disable-fcrdns debug option can be used to disable it in cases where there are issues with DNS servers.
In the output of maxctrl list server, the state of a server and reason for the state are now separated. The state of a server is shown as Read, Write, Up or Down, possibly augmented with Maintenance or Draining|Drained, while the reason for the state is shown in the next column.
Added simple syntax for maxctrl call command that allows object instances to be used in place of the module name. For example, the maxctrl call command mariadbmon switchover MariaDB-Monitor and maxctrl call command MariaDB-Monitor switchover are now both valid.
Simple filters that have no settings are now automatically created by MaxScale whenever a service refers to them by the module name. For example, filters=hintfilter will enable routing hints for a service without having to define a separate filter section in the configuration.
The statistics in readwritesplit and readconnroute that track session activity per backend have been replaced with a generic metric in the service that already tracked the average and maximum duration of a session. The max_session_active_pct and avg_session_active_pct track the maximum and average percentage that a session has been active, that is, when a query has been in execution on a backend server. This can also be thought of as the length of the session with the idle subtracted from it. The max_session_queries and avg_session_queries track the maximum and average number of queries an individual session has done.
MaxScale can now send metrics to an OpenTelemetry Collector.
Added command to MariaDB Monitor.
Added discover-replicas command to both and .
Added bootstrap command to both and .
Added command to MariaDB Monitor.
MariaDB Monitor (rebuild-server, create-backup, restore-from-backup) now support key-value arguments. The commands also support the dry-run-option, which checks if MaxScale configuration and servers support the commands.
MariaDB Monitor backup operation status can be shown in detail with the command.
Available backups can be listed with the MariaDB Monitor list-backups command.
Added setting to MariaDB Monitor.
Added to MariaDB Monitor.
Added role support to monitors and services. See and settings for more information.
MaxCtrl now attempts to read the [maxctrl] section from /etc/maxscale.cnf if the configuration file is present and readable. This can be used to customize the MaxCtrl options at a global level for all users.
The maxctrl create server command has a new --copy option that uses the configuration of an existing server as the default configuration. This makes creating multiple similarly configured servers easier. For example, maxctrl create server server2 --copy server1 address=server2.my.host.com would use the settings of server1 for server2 but use a custom value for the address setting.
Galera Monitor now requires the REPLICA MONITOR privilege and will fail to monitor the servers if lacking it. With MariaDB Server versions older than 10.5, REPLICATION CLIENT is required.
It is now possible to dump the content of the query classifier cache using maxctrl.
Listeners and servers support zero-configuration SSL, as described . See for more information.
Added global setting which forces encryption to be configured everywhere.
By default, MaxScale no longer generates a core file in case of a crash.
The for redirect_url is intercepted and renamed by MaxScale to mxs_rdir_url. This is done to prevent accidental redirections away from MaxScale.
The new parameter can be used to implement in MaxScale.
session_trace_match is now matched for every logged message.
When MaxScale is used with MariaDB 12 or later and the service user has the SET USER grant, the backend connections now log in using the service user credentials and then switch to the client user account using the new SET SESSION AUTHORIZATION feature in MariaDB 12. This makes it possible to use authentication plugins like ed25519 and PARSEC without having to configure anything extra in MaxScale. For more information, refer to the documentation of the setting.
Added support for the PARSEC authentication plugin. The plugin can be used with MariaDB 12 directly and with MariaDB 11.6 or later if the user mapping file is used. For more information, refer to the authenticator documentation.
For more details, please refer to:
The changelog for the previous MaxScale version can be found .
Relative paths do not work when defined in the configuration file
Binlog encryption broken
There are some limitations and known issues within this version of MaxScale.
For more information, please refer to the document.
RPM and Debian packages are provided for the supported Linux distributions.
Packages can be downloaded .
The source code of MaxScale is tagged at GitHub with a tag, which is identical
with the version of MaxScale. For instance, the tag of version X.Y.Z of MaxScale
is maxscale-X.Y.Z. Further, the default branch is always the latest GA version
of MaxScale.
This document describes the changes in release 23.02.17, when compared to the previous release in the same series.
If you are upgrading from an older major version of MaxScale, please read the for this MaxScale version.
For any problems you encounter, please consider submitting a bug report on our Jira.
Bug fixes
MXS-6212 Kafkacdc doesn't log GTID positions when losing ownership of a cluster
maxctrl create report may truncate output
kafkacdc doesn't enable TLS for replication connections
Crash on malformed OK packet
MaxScale uses a hard-coded value of LimitNOFILE=65535 in the systemd service file
maxctrl alter user fails to process purely numeric passwords, resulting in "No password provided" error
Table name parsing doesn't remove identifier quotes
MaxScale WebUI: prevent load Adobe CSS for Internet-restricted sites
There are some limitations and known issues within this version of MaxScale. For more information, please refer to the document.
RPM and Debian packages are provided for the supported Linux distributions.
Packages can be downloaded .
MaxScale 23.02.8 Release Notes
MaxScale 23.02.8 is a Stable (GA) maintenance release of MariaDB MaxScale 23.02, released on 2023-12-05
This document describes the changes in release 23.02.8, when compared to the previous release in the same series.
If you are upgrading from an older major version of MaxScale, please read the upgrading document for
this MaxScale version.
For any problems you encounter, please consider submitting a bug report on our Jira.
New Features
MXS-4862 ssl_version should specify minimum version
Bug fixes
Known Issues and Limitations
There are some limitations and known issues within this version of MaxScale.
For more information, please refer to the Limitations document.
Packaging
RPM and Debian packages are provided for the supported Linux distributions.
Packages can be downloaded .
The source code of MaxScale is tagged at GitHub with a tag, which is identical
with the version of MaxScale. For instance, the tag of version X.Y.Z of MaxScale
is maxscale-X.Y.Z. Further, the default branch is always the latest GA version
of MaxScale.
Parameter table isn't refreshed after update in the GUI
GUI failed to create a monitor in a monitored server detail page
No space or separator between 2 routing targets in the services dashboard
Broken slave promoted to master when no other servers are available
There are some limitations and known issues within this version of MaxScale.
For more information, please refer to the document.
RPM and Debian packages are provided for the supported Linux distributions.
Packages can be downloaded .
The source code of MaxScale is tagged at GitHub with a tag, which is identical
with the version of MaxScale. For instance, the tag of version X.Y.Z of MaxScale
is maxscale-X.Y.Z. Further, the default branch is always the latest GA version
of MaxScale.
Handshake response packet size limit is too strict
Binlog encryption broken
There are some limitations and known issues within this version of MaxScale.
For more information, please refer to the document.
RPM and Debian packages are provided for the supported Linux distributions.
Packages can be downloaded .
The source code of MaxScale is tagged at GitHub with a tag, which is identical
with the version of MaxScale. For instance, the tag of version X.Y.Z of MaxScale
is maxscale-X.Y.Z. Further, the default branch is always the latest GA version
of MaxScale.
MaxScale 23.02.1 is a Stable (GA) release of MariaDB MaxScale 23.02, released on 2023-03-15
This document describes the changes in release 23.02.1, when compared to the previous release in the same series.
If you are upgrading from an older major version of MaxScale, please read the upgrading document for
this MaxScale version.
For any problems you encounter, please consider submitting a bug report on our Jira.
New Features
MXS-4302 Implement a way to specify a list of users or exclude a list of users
Add semi-sync support to Pinloki
Dynamic filter capabilities do not work
"Unknown prepared statement handler" error when connection_keepalive is disabled on a readconnroute service
Empty regex // is not treated as empty
There are some limitations and known issues within this version of MaxScale.
For more information, please refer to the document.
RPM and Debian packages are provided for the supported Linux distributions.
Packages can be downloaded .
The source code of MaxScale is tagged at GitHub with a tag, which is identical
with the version of MaxScale. For instance, the tag of version X.Y.Z of MaxScale
is maxscale-X.Y.Z. Further, the default branch is always the latest GA version
of MaxScale.
kafkacdc doesn't escape db name identifiers resulting in errors
Database names with dashes are not properly escaped when disabling events
Fix for MXS-5196 can break "maxctrl create report"
MaxKeys usage message is obsolete
Rebuild Replica fails when using MaxScale encrypted password for monitor user
There are some limitations and known issues within this version of MaxScale. For more information, please refer to the document.
RPM and Debian packages are provided for the supported Linux distributions.
Packages can be downloaded .
The source code of MaxScale is tagged at GitHub with a tag, which is identical with the version of MaxScale. For instance, the tag of version X.Y.Z of MaxScale is maxscale-X.Y.Z. Further, the default branch is always the latest GA version of MaxScale.
Parameter table isn't refreshed after update in the GUI
GUI failed to create a monitor in a monitored server detail page
No space or separator between 2 routing targets in the services dashboard
Broken slave promoted to master when no other servers are available
There are some limitations and known issues within this version of MaxScale.
For more information, please refer to the document.
RPM and Debian packages are provided for the supported Linux distributions.
Packages can be downloaded .
The source code of MaxScale is tagged at GitHub with a tag, which is identical
with the version of MaxScale. For instance, the tag of version X.Y.Z of MaxScale
is maxscale-X.Y.Z. Further, the default branch is always the latest GA version
of MaxScale.
There are some limitations and known issues within this version of MaxScale.
For more information, please refer to the document.
RPM and Debian packages are provided for the supported Linux distributions.
Packages can be downloaded .
The source code of MaxScale is tagged at GitHub with a tag, which is identical
with the version of MaxScale. For instance, the tag of version X.Y.Z of MaxScale
is maxscale-X.Y.Z. Further, the default branch is always the latest GA version
of MaxScale.
The source code of MaxScale is tagged at GitHub with a tag, which is identical with the version of MaxScale. For instance, the tag of version X.Y.Z of MaxScale is maxscale-X.Y.Z. Further, the default branch is always the latest GA version of MaxScale.
The source code of MaxScale is tagged at GitHub with a tag, which is identical
with the version of MaxScale. For instance, the tag of version X.Y.Z of MaxScale
is maxscale-X.Y.Z. Further, the default branch is always the latest GA version
of MaxScale.
The source code of MaxScale is tagged at GitHub with a tag, which is identical with the version of MaxScale. For instance, the tag of version X.Y.Z of MaxScale is maxscale-X.Y.Z. Further, the default branch is always the latest GA version of MaxScale.
The source code of MaxScale is tagged at GitHub with a tag, which is identical
with the version of MaxScale. For instance, the tag of version X.Y.Z of MaxScale
is maxscale-X.Y.Z. Further, the default branch is always the latest GA version
of MaxScale.
The source code of MaxScale is tagged at GitHub with a tag, which is identical
with the version of MaxScale. For instance, the tag of version X.Y.Z of MaxScale
is maxscale-X.Y.Z. Further, the default branch is always the latest GA version
of MaxScale.
The source code of MaxScale is tagged at GitHub with a tag, which is identical with the version of MaxScale. For instance, the tag of version X.Y.Z of MaxScale is maxscale-X.Y.Z. Further, the default branch is always the latest GA version of MaxScale.
The source code of MaxScale is tagged at GitHub with a tag, which is identical
with the version of MaxScale. For instance, the tag of version X.Y.Z of MaxScale
is maxscale-X.Y.Z. Further, the default branch is always the latest GA version
of MaxScale.
The source code of MaxScale is tagged at GitHub with a tag, which is identical with the version of MaxScale. For instance, the tag of version X.Y.Z of MaxScale is maxscale-X.Y.Z. Further, the default branch is always the latest GA version of MaxScale.
MaxScale 25.10.1 is a Stable (GA) release of MariaDB MaxScale 25.10, released on 2026-01-09
Release Date: 9 Jan 2026
Release 25.10.1 is a GA release.
This document describes the changes in release 25.10.1, when compared to the previous release in the same series.
If you are upgrading from an older major version of MaxScale, please read the for this MaxScale version.
For any problems you encounter, please consider submitting a bug report on our Jira.
External CVEs resolved.
Fixed by Bump gui dependencies to fix vulnerabilities
Fixed by Bump gui dependencies to fix vulnerabilities
Fixed by Bump gui dependencies to fix vulnerabilities
Support Okta SSO in maxscale
Create an ExasolRouter
give maxctrl its own installation package
MaxScale WebUI: prevent load Adobe CSS for Internet-restricted sites
No error message if connection to server fails during start of switchover
SmartRouter should never return anything but resultsets from non-master targets
There are some limitations and known issues within this version of MaxScale. For more information, please refer to the document.
RPM and Debian packages are provided for the supported Linux distributions.
Packages can be downloaded .
The source code of MaxScale is tagged at GitHub with a tag, which is identical with the version of MaxScale. For instance, the tag of version X.Y.Z of MaxScale is maxscale-X.Y.Z. Further, the default branch is always the latest GA version of MaxScale.
MaxScale 24.02.6 is a Stable (GA) maintenance release of MariaDB MaxScale 24.02, released on 2025-06-07
This document describes the changes in release 24.02.6, when compared to the previous release in the same series.
If you are upgrading from an older major version of MaxScale, please read the upgrading document for
this MaxScale version.
For any problems you encounter, please consider submitting a bug report on our Jira.
Bug fixes
MXS-5618 Maxctrl interactive mode doesn't use --tls-verify-server-cert=false
The logout screen is shown when accessing the MaxGUI login view.
optimistic_trx causes a query to hang
Processing of conditional headers is incorrect
MaxCtrl fails to read large inputs from stdin
admin_oidc_url is documented to not be dynamic when in fact it is
REST-API always sends a Connection: close header
Signal 11 crash when enabling causal reads with Galera
Add a Service with a CLUSTER as its target breaks CONFIG SYNC
Aborted connection on backend mariadb with persistpool maxscale
Maxctrl config permission check error message is misleading
Wrong password in interactive mode is only seen after the first command
--secretsdir has no default value
Query Editor default connection type preference is changed unexpectedly
Using PKCS#1 private key in the REST-API results in cryptic errors
Trailing parts of large session command are not routed correctly
Prepared statements fail through schemarouter for ColumnStore
Masking with functions uses wrong rule settings
There are some limitations and known issues within this version of MaxScale. For more information, please refer to the document.
RPM and Debian packages are provided for the supported Linux distributions.
Packages can be downloaded .
The source code of MaxScale is tagged at GitHub with a tag, which is identical with the version of MaxScale. For instance, the tag of version X.Y.Z of MaxScale is maxscale-X.Y.Z. Further, the default branch is always the latest GA version of MaxScale.
List of read-only builtin functions is out-of-date
Config sync does not mark resources as modified
MaxScale 24.02.6 GUI does not reflect parameter changes from Configuration Synchronization
Confusing log message when the wrong connection holds on to the master server lock
The variable disk_space_threshold should be dynamic for Servers
maxctrl does not obfuscate password in ps output
There are some limitations and known issues within this version of MaxScale. For more information, please refer to the guide.
RPM and Debian packages are provided for the supported Linux distributions.
Packages can be downloaded .
The source code of MaxScale is tagged at GitHub with a tag, which is identical with the version of MaxScale. For instance, the tag of version X.Y.Z of MaxScale is maxscale-X.Y.Z. Further, the default branch is always the latest GA version of MaxScale.
MaxScale 23.08.10 is a Stable (GA) maintenance release of MariaDB MaxScale 23.08, released on 2025-06-06
This document describes the changes in release 23.08.10, when compared to the previous release in the same series.
If you are upgrading from an older major version of MaxScale, please read the for this MaxScale version.
For any problems you encounter, please consider submitting a bug report on our Jira.
Bug fixes
MXS-5618 Maxctrl interactive mode doesn't use --tls-verify-server-cert=false
The logout screen is shown when accessing the MaxGUI login view.
optimistic_trx causes a query to hang
Processing of conditional headers is incorrect
MaxCtrl fails to read large inputs from stdin
admin_oidc_url is documented to not be dynamic when in fact it is
REST-API always sends a Connection: close header
Signal 11 crash when enabling causal reads with Galera
Add a Service with a CLUSTER as its target breaks CONFIG SYNC
Aborted connection on backend mariadb with persistpool maxscale
Maxctrl config permission check error message is misleading
Wrong password in interactive mode is only seen after the first command
--secretsdir has no default value
Using PKCS#1 private key in the REST-API results in cryptic errors
Trailing parts of a large session command are not routed correctly
kafkacdc commits offsets when it probes GTIDs from Kafka
Logs Archive page doesn't show a useful API error
Masking with functions uses the wrong rule settings
There are some limitations and known issues within this version of MaxScale. For more information, please refer to thedocument.
RPM and Debian packages are provided for the supported Linux distributions.
Packages can be downloaded .
The source code of MaxScale is tagged at GitHub with a tag, which is identical with the version of MaxScale. For instance, the tag of version X.Y.Z of MaxScale is maxscale-X.Y.Z. Further, the default branch is always the latest GA version of MaxScale.
List of read-only builtin functions is out-of-date
Config sync does not mark resources as modified
MaxScale 24.02.6 GUI does not reflect parameter changes from Configuration Synchronization
Confusing log message when the wrong connection holds on to the master server lock
The variable disk_space_threshold should be dynamic for Servers
maxctrl does not obfuscate password in ps output
There are some limitations and known issues within this version of MaxScale. For more information, please refer to the guide.
RPM and Debian packages are provided for the supported Linux distributions.
Packages can be downloaded .
The source code of MaxScale is tagged at GitHub with a tag, which is identical with the version of MaxScale. For instance, the tag of version X.Y.Z of MaxScale is maxscale-X.Y.Z. Further, the default branch is always the latest GA version of MaxScale.
MaxScale 23.02.14 is a Stable (GA) maintenance release of MariaDB MaxScale 23.02, released on 2025-06-05
This document describes the changes in release 23.02.14, when compared to the previous release in the same series.
If you are upgrading from an older major version of MaxScale, please read the for this MaxScale version.
For any problems you encounter, please consider submitting a bug report on our Jira.
Bug fixes
MXS-5618 Maxctrl interactive mode doesn't use --tls-verify-server-cert=false
The logout screen is shown when accessing the MaxGUI login view.
optimistic_trx causes a query to hang
Processing of conditional headers is incorrect
MaxCtrl fails to read large inputs from stdin
admin_oidc_url is documented to not be dynamic when, in fact, it is
REST-API always sends a Connection: close header
Signal 11 crash when enabling causal reads with Galera
Add a Service with a CLUSTER as its target breaks CONFIG SYNC
Aborted connection on backend mariadb with persistpool maxscale
Maxctrl config permission check error message is misleading
Wrong password in interactive mode is only seen after the first command
--secretsdir has no default value
Using PKCS#1 private key in the REST-API results in cryptic errors
Trailing parts of a large session command are not routed correctly
kafkacdc commits offsets when it probes GTIDs from Kafka
Logs Archive page doesn't show a useful API error
Masking with functions uses the wrong rule settings
There are some limitations and known issues within this version of MaxScale. For more information, please refer to the document.
RPM and Debian packages are provided for the supported Linux distributions.
Packages can be downloaded .
The source code of MaxScale is tagged at GitHub with a tag, which is identical to the version of MaxScale. For instance, the tag of version X.Y.Z of MaxScale is maxscale-X.Y.Z. Further, the default branch is always the latest GA version of MaxScale.
List of read-only builtin functions is out-of-date
Config sync does not mark resources as modified
MaxScale 24.02.6 GUI does not reflect parameter changes from Configuration Synchronization
Confusing log message when the wrong connection holds on to the master server lock
The variable disk_space_threshold should be dynamic for Servers
maxctrl does not obfuscate password in ps output
There are some limitations and known issues within this version of MaxScale. For more information, please refer to the guide.
RPM and Debian packages are provided for the supported Linux distributions.
Packages can be downloaded .
The source code of MaxScale is tagged at GitHub with a tag, which is identical with the version of MaxScale. For instance, the tag of version X.Y.Z of MaxScale is maxscale-X.Y.Z. Further, the default branch is always the latest GA version of MaxScale.
MaxScale 22.08.17 is a Stable (GA) maintenance release of MariaDB MaxScale 22.08, released on 2025-06-04
This document describes the changes in release 22.08.17, when compared to the previous release in the same series.
If you are upgrading from an older major version of MaxScale, please read the upgrading document for this MaxScale version.
For any problems you encounter, please consider submitting a bug report on our Jira.
Bug fixes
MXS-5618 Maxctrl interactive mode doesn't use --tls-verify-server-cert=false
The logout screen is shown when accessing the MaxGUI login view.
optimistic_trx causes a query to hang
Processing of conditional headers is incorrect
MaxCtrl fails to read large inputs from stdin
admin_oidc_url is documented to not be dynamic when in fact it is
REST-API always sends a Connection: close header
Signal 11 crash when enabling causal reads with Galera
Add a Service with a CLUSTER as its target breaks CONFIG SYNC
Aborted connection on backend mariadb with persistpool maxscale
Maxctrl config permission check error message is misleading
Wrong password in interactive mode is only seen after the first command
--secretsdir has no default value
Using PKCS#1 private key in the REST-API results in cryptic errors
Trailing parts of large session command are not routed correctly
kafkacdc commits offsets when it probes GTIDs from Kafka
Logs Archive page doesn't show useful API error
Masking with functions uses wrong rule settings
There are some limitations and known issues within this version of MaxScale. For more information, please refer to the document.
RPM and Debian packages are provided for the supported Linux distributions.
Packages can be downloaded .
The source code of MaxScale is tagged at GitHub with a tag, which is identical with the version of MaxScale. For instance, the tag of version X.Y.Z of MaxScale is maxscale-X.Y.Z. Further, the default branch is always the latest GA version of MaxScale.
MaxScale 22.08.6 is a Stable (GA) maintenance release of MariaDB MaxScale 22.08, released on 2023-05-26
This document describes the changes in release 22.08.6, when compared to the previous release in the same series.
If you are upgrading from an older major version of MaxScale, please read the upgrading document for
this MaxScale version.
For any problems you encounter, please consider submitting a bug report on our Jira.
Bug fixes
MXS-4625 Query classifier does not classify XA transactions correctly.
Partially executed multi-result queries are not treated as partial results
Query classifier does not recognize BEGIN NOT ATOMIC ... END
Query Editor: High memory usage when multiple statements are executed in a batch query
Readwritesplit prefers idle primary over busy replicas
Qlafilter logs responses from non-matched queries
AVX instructions end up being executed on startup
Query canonicalization does not work on scientific numbers
maxctrl classify sends malformed SQL
transaction_replay_max_size default is 1GiB instead of 1MiB
Passwords appear masked even if they are not set
CREATE USER statements aren't obfuscated in the Query Editor history query
Undefined behavior in simd_canonical.cc
Not all passwords were obfuscated in the maxctrl report
Regular expression documentation is inaccurate and lacking
The statement canonicalizer cannot handle comments within statements
KB pages reference mysqlauth and mysqlauth is deprecated for mariadbauth
There are some limitations and known issues within this version of MaxScale.
For more information, please refer to the document.
RPM and Debian packages are provided for the supported Linux distributions.
Packages can be downloaded .
The source code of MaxScale is tagged at GitHub with a tag, which is identical
with the version of MaxScale. For instance, the tag of version X.Y.Z of MaxScale
is maxscale-X.Y.Z. Further, the default branch is always the latest GA version
of MaxScale.
Schemarouter routing logic documentation is out of date
Explicit transactions without a default database do not work as expected with schemarouter
Crash during query replay with service-to-service configuration
Schemarouter should prefer targets which have databases in them for session commands
Schemarouter selects an invalid target for queries that do not target a specific shard
Memory issue in Maxscale
6.4 no longer provides full certificate chain in TLS HELLO
MaxScale crashes when a certificate chain is used with the REST-API
Lost connection to backend server: network error (server1: 104, Connection reset by peer)
Log rotation causes errors in qlafilter
SET STATEMENT variables are not ignored when statements are classified
TLS reloading leaks memory
Rebalancing is not always initiated from the affected worker/thread
pinloki_start_stop is unstable
The rpl_state in binlogrouter is not atomic
There are some limitations and known issues within this version of MaxScale.
For more information, please refer to the document.
RPM and Debian packages are provided for the supported Linux distributions.
Packages can be downloaded .
The source code of MaxScale is tagged at GitHub with a tag, which is identical
with the version of MaxScale. For instance, the tag of version X.Y.Z of MaxScale
is maxscale-X.Y.Z. Further, the default branch is always the latest GA version
of MaxScale.
MariaDB MaxScale 22.08 series changes and improvements
Sessions can now be restarted so that added server are taken into use.
Sessions can now be killed using maxctrl.
MariaDBMonitor can use mariadb-backup to clone the contents of a server.
MariaDBMonitor can issue ColumnStore commands similar to CSMon
MariaDBMonitor settings ignore_external_masters, detect_replication_lagdetect_standalone_master, detect_stale_master and detect_stale_slave have been removed. The first two were ineffective, the latter three are replaced by master_conditions and slave_conditions.
A new Query Rewrite filter, using which queries can be rewritten based upon a template, has been added.
MaxScale no longer logs to both the SystemD journal and MaxScale log by default: the default value of syslog was changed from true to false to reduce the amount of redundant log messages that are logged. To retain the old behavior of logging to both MaxScale's own files and to the SystemD journal, add syslog=true under the [maxscale] section.
The dbfwfilter module that was deprecated in version 6 has now been removed.
MaxGUI Query Editor has changed the type of browser storage from local storage to IndexedDB. As the result, query history, favorite, and configuration are reset. Apart from that, query favorite was renamed to query snippets allowing to quickly insert the query to the editor by typing its prefix. See MaxGUI tutorial
The Xpand monitor now handles group change explicitly.
The Maintenance|Drain state of a server is now synchronized between multiple MaxScale instances if configuration synchronization is enabled.
Causal reads now supported in a multi-MaxScale setup.
The and monitors are deprecated in 22.08.2 and will be removed in 23.02.0.
For more details, please refer to:
The changelog for the previous MaxScale version can be found .
List of read-only builtin functions is out-of-date
REST-API documentation for GET versions of relationship endpoints is missing
Config sync does not mark resources as modified
MaxScale 24.02.6 GUI does not reflect parameter changes from Configuration Synchronization
Confusing log message when the wrong connection holds on to the master server lock
The variable disk_space_threshold should be dynamic for Servers
maxctrl does not obfuscate password in ps output
There are some limitations and known issues within this version of MaxScale. For more information, please refer to the guide.
RPM and Debian packages are provided for the supported Linux distributions.
Packages can be downloaded .
The source code of MaxScale is tagged at GitHub with a tag, which is identical with the version of MaxScale. For instance, the tag of version X.Y.Z of MaxScale is maxscale-X.Y.Z. Further, the default branch is always the latest GA version of MaxScale.
The source code is available .
MaxScale 22.08.8 Release Notes
MaxScale 22.08.8 is a Stable (GA) maintenance release of MariaDB MaxScale 22.08, released on 2023-08-30
This document describes the changes in release 22.08.8, when compared to the previous release in the same series.
If you are upgrading from an older major version of MaxScale, please read the upgrading document for
this MaxScale version.
For any problems you encounter, please consider submitting a bug report on our Jira.
Bug fixes
MXS-4730 GUI default value of inputs in the object creation dialog is empty after closing the dialog
Session command response verification unnecessarily stores PS IDs for readconnroute
Case-sensitiveness of enumerations is not documented
Galeramon does not update replication lag of replicating servers
Implement an option to switch to the old "ping" behaviour in MaxScale
Connection init sql file execution can hang
information_schema is not invalidated as needed
qc_sqlite does not properly parse a RENAME statement
Update maxscale.cnf default file
Cache does not invalidate when a table is ALTERed, DROPed or RENAMEd
SHOW TABLE STATUS FROM some_schema Fails with SchemaRouter
GTID update may block the REST-API
Binlogrouter treats GTID sequences as 32-bit integers
Readwritesplit does not detect unrecoverable situations
Binlogrouter cannot write binlog files larger than 4GiB
Binlogrouter runs out of memory on very large transactions
Replication via binlogrouter temporarily blocks the REST-API
Encrypted passwords are persisted in plaintext
MaxScale BinlogRouter skips large transactions causing data Inconsistency on attached slave
Switchover fails with 'Unknown thread id' error
There are some limitations and known issues within this version of MaxScale.
For more information, please refer to the document.
RPM and Debian packages are provided for the supported Linux distributions.
Packages can be downloaded .
The source code of MaxScale is tagged at GitHub with a tag, which is identical
with the version of MaxScale. For instance, the tag of version X.Y.Z of MaxScale
is maxscale-X.Y.Z. Further, the default branch is always the latest GA version
of MaxScale.
MaxScale 21.06.17 is a Stable (GA) maintenance release of MariaDB MaxScale 21.06, released on 2024-09-02
This document describes the changes in release 21.06.17, when compared to the previous release in the same series.
If you are upgrading from an older major version of MaxScale, please read the upgrading document for
this MaxScale version.
For any problems you encounter, please consider submitting a bug report on our Jira.
Bug fixes
MXS-5232 Large batches of session commands may leave sessions alive for a long time
MaxScale does not drop supplementary groups if --user is used
LICENSE.TXT is a dangling symlink in RPMs
Erroneous "Cluster gtid domain is unknown" error message during failover
Reads with max_slave_connections=0 after a switchover do not discard stale connections
CMake 3.28.3 warnings
Default logrotate config in .deb / docu missing params
/maxscale/logs/data may return no data if maxlog=0 and syslog=1
Multi-statement commands may end up being stored in the session command history
Two cache filters in same service causes errors on session creation
MaxScale does not have time to open the file during rotation for a new binlog
Post reboot binlog router entered stuck state
postinst script prints output while installing
23.08.6 build ppc64le fails
Memory leak in namedserverfilter
comment filter uses the wrong module name
DEALLOCATE PREPARE is not routed to all nodes
MaxScale detects wrong server character set
There are some limitations and known issues within this version of MaxScale.
For more information, please refer to the document.
RPM and Debian packages are provided for the supported Linux distributions.
Packages can be downloaded .
The source code of MaxScale is tagged at GitHub with a tag, which is identical
with the version of MaxScale. For instance, the tag of version X.Y.Z of MaxScale
is maxscale-X.Y.Z. Further, the default branch is always the latest GA version
of MaxScale.
The source code is available .
This page is licensed: CC BY-SA / Gnu FDL
MaxScale 21.06.16 Release Notes
MaxScale 21.06.16 is a Stable (GA) maintenance release of MariaDB MaxScale 21.06, released on 2024-05-29
MaxScale 6.4 was renamed to 21.06 in May 2024. Thus, what would have been released as 6.4.16, was released as 21.06.16. The purpose of this change is to make the versioning scheme used by all MaxScale series identical. 21.06 denotes the year and month when the first 6 release was made.
This document describes the changes in release 21.06.16, when compared to the previous release in the same series.
If you are upgrading from an older major version of MaxScale, please read the upgrading document for
this MaxScale version.
For any problems you encounter, please consider submitting a bug report on our Jira.
New Features
MXS-5067 Add "enforce_read_only_servers" feature to MariaDB Monitor
Bug fixes
Master Stickiness state is not documented
ability to setup .secrets file location
max_slave_connections=0 may create slave connections after a switchover
ssl_version in MaxScale and tls_version in MariaDB behave differently
Password encryption format change in 2.5 is not documented very well
The values of ssl_version in MaxScale and tls_version in MariaDB accept different values
Warning about missing slashes around regular expressions is confusing
Problem in hostname matching when using regex (%) for user authentication
cooperative_monitoring_locks can leave stale locks on a server if network breaks
Maxscale key limitations
enforce_read_only_slaves can set master to read_only
gdb-stacktrace is incorrectly presented as a debug option
During Failover Passive MaxScale route writes to the Old Master
Session commands that are executed early are not validated
--basedir is broken
MariaDB Monitor command reset-replication can be started on a secondary MaxScale
MaxScale should log a warning if failover may lose transactions
There are some limitations and known issues within this version of MaxScale.
For more information, please refer to the document.
RPM and Debian packages are provided for the supported Linux distributions.
Packages can be downloaded .
The source code of MaxScale is tagged at GitHub with a tag, which is identical
with the version of MaxScale. For instance, the tag of version X.Y.Z of MaxScale
is maxscale-X.Y.Z. Further, the default branch is always the latest GA version
of MaxScale.
The source code is available .
This page is licensed: CC BY-SA / Gnu FDL
MariaDB MaxScale 2.5.29 Release Notes
Release 2.5.29 is a GA release.
Released: 25 Oct 2023
This document describes the changes in release 2.5.29, when compared to the previous release in the same series.
If you are upgrading from an older major version of MaxScale, please read the upgrading document for this MaxScale version.
For any problems you encounter, please consider submitting a bug report on our Jira.
MaxScale does not always report the OS version correctly
GUI caching issue
log_throttling should be disabled if log_info is on
There are some limitations and known issues within this version of MaxScale. For more information, please refer to the Limitations document.
RPM and Debian packages are provided for supported the Linux distributions.
Packages can be downloaded .
The source code of MaxScale is tagged at GitHub with a tag, which is identical with the version of MaxScale. For instance, the tag of version X.Y.Z of MaxScale is maxscale-X.Y.Z. Further, the default branch is always the latest GA version of MaxScale.
The source code is available .
MaxScale 25.01.3 Release Notes
MaxScale 25.01.3 is a Stable (GA) maintenance release of MariaDB MaxScale 25.01, released on 2025-06-25
This document describes the changes in release 25.01.3, when compared to the previous release in the same series.
If you are upgrading from an older major version of MaxScale, please see .
For any problems you encounter, please consider submitting a bug report on .
Network options for maxvisualize are not documented
MaxScale 24.02.7 Release Notes
MaxScale 24.02.7 is a Stable (GA) maintenance release of MariaDB MaxScale 24.02, released on 2025-09-08
This document describes the changes in release 24.02.7, when compared to the previous release in the same series.
If you are upgrading from an older major version of MaxScale, please see .
For any problems you encounter, please consider submitting a bug report on .
Add MAXSCALE_USER and MAXSCALE_PASSWORD environment variables
MaxScale 24.02.3 Release Notes
MaxScale 24.02.3 is a Stable (GA) maintenance release of MariaDB MaxScale 24.02, released on 2024-09-09
This document describes the changes in release 24.02.3, when compared to the
previous release in the same series.
If you are upgrading from an older major version of MaxScale, please read the for
this MaxScale version.
For any problems you encounter, please consider submitting a bug
report on .
webpack warns about yargs
MaxScale 24.02.2 Release Notes
MaxScale 24.02.2 is a Stable (GA) maintenance release of MariaDB MaxScale 24.02, released on 2024-05-27
This document describes the changes in release 24.02.2, when compared to the
previous release in the same series.
If you are upgrading from an older major version of MaxScale, please read the for
this MaxScale version.
For any problems you encounter, please consider submitting a bug
report on .
Add "enforce_read_only_servers" feature to MariaDB Monitor
MaxScale 24.02 Changelog
MariaDB MaxScale 24.02 series changes and improvements
The default values of some readwritesplit parameters have been updated. The new default values are:
master_reconnection=true
master_failure_mode=fail_on_write
MaxScale 23.08.6 Release Notes
MaxScale 23.08.6 is a Stable (GA) maintenance release of MariaDB MaxScale 23.08, released on 2024-06-03
This document describes the changes in release 23.08.6, when compared to the
previous release in the same series.
If you are upgrading from an older major version of MaxScale, please read the for
this MaxScale version.
For any problems you encounter, please consider submitting a bug
report on .
Add "enforce_read_only_servers" feature to MariaDB Monitor
MaxScale 23.08 Changelog
MariaDB MaxScale 23.08 series changes and improvements
The global setting skip_permission_checks has been deprecated and is ignored. Monitors start regardless of monitor user permissions.
The uppercase versions of the slave_selection_criteria parameter in readwritesplit have been deprecated. All runtime modifications to the parameters are now saved using the lowercase versions.
MaxScale 23.02.13 Release Notes
MaxScale 23.02.13 is a Stable (GA) maintenance release of MariaDB MaxScale 23.02, released on 2025-03-07
This document describes the changes in release 23.02.13, when compared to the previous release in the same series.
If you are upgrading from an older major version of MaxScale, please read the for
this MaxScale version.
For any problems you encounter, please consider submitting a bug report on .
Early mismatched responses to session commands do not close connections
MaxScale 23.02.11 Release Notes
MaxScale 23.02.11 is a Stable (GA) maintenance release of MariaDB MaxScale 23.02, released on 2024-09-05
This document describes the changes in release 23.02.11, when compared to the previous release in the same series.
If you are upgrading from an older major version of MaxScale, please read the for
this MaxScale version.
For any problems you encounter, please consider submitting a bug report on .
webpack warns about yargs
MaxScale 23.02.10 Release Notes
MaxScale 23.02.10 is a Stable (GA) maintenance release of MariaDB MaxScale 23.02, released on 2024-05-24
This document describes the changes in release 23.02.10, when compared to the previous release in the same series.
If you are upgrading from an older major version of MaxScale, please read the for
this MaxScale version.
For any problems you encounter, please consider submitting a bug report on .
Add "enforce_read_only_servers" feature to MariaDB Monitor
MaxScale 23.02.4 Release Notes
MaxScale 23.02.4 is a Stable (GA) maintenance release of MariaDB MaxScale 23.02, released on 2023-08-29
This document describes the changes in release 23.02.4, when compared to the previous release in the same series.
If you are upgrading from an older major version of MaxScale, please read the for
this MaxScale version.
For any problems you encounter, please consider submitting a bug report on .
GUI default value of inputs in the object creation dialog is empty after closing the dialog
MaxScale 23.02.3 Release Notes
MaxScale 23.02.3 is a Stable (GA) maintenance release of MariaDB MaxScale 23.02, released on 2023-08-04
This document describes the changes in release 23.02.3, when compared to the previous release in the same series.
If you are upgrading from an older major version of MaxScale, please read the for
this MaxScale version.
For any problems you encounter, please consider submitting a bug report on .
Provide a way to show details about all supported MaxScale modules via REST API and/or MaxCtrl
MaxScale 23.02.2 Release Notes
MaxScale 23.02.2 is a Stable (GA) maintenance release of MariaDB MaxScale 23.02, released on 2023-05-26
This document describes the changes in release 23.02.2, when compared to the previous release in the same series.
If you are upgrading from an older major version of MaxScale, please read the for
this MaxScale version.
For any problems you encounter, please consider submitting a bug report on .
Query classifier does not classify XA transactions correctly.
MaxScale 23.02 Changelog
MariaDB MaxScale 23.02 series changes and improvements
A transition from the traditional master/slave terminology to the primary/replica terminology has been started. In the documentation and in the logging the transition has been made, but in configuration settings and command output the traditional terminology is still used. Conceptually, master/slave and primary/replica are completely interchangeable.
MariaDB Monitor now preserves the MASTER_USE_GTID-setting of a replica when redirecting one during switchover and failover. When starting a new replication connection on a previous replica, Slave_Pos is used. When starting a new replication connection on a previous primary, Current_Pos is used.
MaxScale 22.08.16 Release Notes
MaxScale 22.08.16 is a Stable (GA) maintenance release of MariaDB MaxScale 22.08, released on 2025-03-05
This document describes the changes in release 22.08.16, when compared to the
previous release in the same series.
If you are upgrading from an older major version of MaxScale, please read the for
this MaxScale version.
For any problems you encounter, please consider submitting a bug
report on .
Early mismatched responses to session commands do not close connections
MaxScale 22.08.14 Release Notes
MaxScale 22.08.14 is a Stable (GA) maintenance release of MariaDB MaxScale 22.08, released on 2024-09-09
This document describes the changes in release 22.08.14, when compared to the previous release in the same series.
If you are upgrading from an older major version of MaxScale, please read the for
this MaxScale version.
For any problems you encounter, please consider submitting a bug report on .
webpack warns about yargs
MaxScale 22.08.13 Release Notes
MaxScale 22.08.13 is a Stable (GA) maintenance release of MariaDB MaxScale 22.08, released on 2024-06-03
This document describes the changes in release 22.08.13, when compared to the previous release in the same series.
If you are upgrading from an older major version of MaxScale, please read the for
this MaxScale version.
For any problems you encounter, please consider submitting a bug report on .
Add "enforce_read_only_servers" feature to MariaDB Monitor
MaxScale 22.08.7 Release Notes
MaxScale 22.08.7 is a Stable (GA) maintenance release of MariaDB MaxScale 22.08, released on 2023-08-01
This document describes the changes in release 22.08.7, when compared to the previous release in the same series.
If you are upgrading from an older major version of MaxScale, please read the for
this MaxScale version.
For any problems you encounter, please consider submitting a bug report on .
Provide a way to show details about all supported MaxScale modules via REST API and/or MaxCtrl
MaxScale 22.08.5 Release Notes
MaxScale 22.08.5 is a Stable (GA) maintenance release of MariaDB MaxScale 22.08, released on 2023-03-27
This document describes the changes in release 22.08.5, when compared to the
previous release in the same series.
If you are upgrading from an older major version of MaxScale, please read the for
this MaxScale version.
For any problems you encounter, please consider submitting a bug
report on .
Some configuration cause no errors to be logged
MaxScale 22.08.3 Release Notes
MaxScale 22.08.3 is a Stable (GA) maintenance release of MariaDB MaxScale 22.08, released on 2022-12-02
This document describes the changes in release 22.08.3, when compared to the previous release in the same series.
If you are upgrading from an older major version of MaxScale, please read the for
this MaxScale version.
For any problems you encounter, please consider submitting a bug report on .
Query classification data is unintentionally shared between multiple queries
MaxScale 21.06.19 Release Notes
MaxScale 21.06.19 is a Stable (GA) maintenance release of MariaDB MaxScale 21.06, released on 2025-03-04
This document describes the changes in release 21.06.19, when compared to the previous release in the same series.
If you are upgrading from an older major version of MaxScale, please read the for
this MaxScale version.
For any problems you encounter, please consider submitting a bug report on .
Fixed by Container Image vulnerability CVE-2024-21538 (MXS)
MXS-4747 log_throttling is hard to modify via MaxCtrl
MXS-4738 The fact that disable_master_failback does not work with root_node_as_master is not documented
MXS-4735 Connection IDs are missing from error messages
MXS-4724 slave_selection_criteria should accept lowercase version of the values
MXS-4717 information_schema is not invalidated as needed
MXS-4706 Cache does not invalidate when a table is ALTERed, DROPed or RENAMEd
NOTE: The MaxScale package has been renamed from maxscale-enterprise back to maxscale, which may, when repositories are used, require 25.01.1 and 25.01.2 to be removed before installing 25.01.3.
The source code of MaxScale is tagged at GitHub with a tag, which is identical with the version of MaxScale. For instance, the tag of version X.Y.Z of MaxScale is maxscale-X.Y.Z. Further, the default branch is always the latest GA version of MaxScale.
The source code of MaxScale is tagged at GitHub with a tag, which is identical
with the version of MaxScale. For instance, the tag of version X.Y.Z of MaxScale
is maxscale-X.Y.Z. Further, the default branch is always the latest GA version
of MaxScale.
The source code of MaxScale is tagged at GitHub with a tag, which is identical
with the version of MaxScale. For instance, the tag of version X.Y.Z of MaxScale
is maxscale-X.Y.Z. Further, the default branch is always the latest GA version
of MaxScale.
MariaDB-Monitor now requires MariaDB Server 10.4 or newer for failover/ switchover. Server 10.3 is end of life.
Server setting private_address added. Used for detecting and setting up replication. See for more information.
MariaDB-Monitor allows customization of some mariadb-backup settings. See and for more information.
MariaDB-Monitor setting servers_no_promotion now affects primary server selection during MaxScale startup or due to replication topology changes.
Pam authentication now always checks account status. Previously, this check was not performed if MaxScale was configured for username mapping (authenticator_options=pam_backend_mapping=mariadb). This means that if username mapping is configured in the OS pam service config, the final username must be a valid user. This is similar to MariaDB Server behavior.
Support for the legacy SysV and Upstart system managers has been removed. In practice this change will not affect anything as all supported operating systems use SystemD as the system manager and MaxScale has long preferred it over the legacy systems.
The output of maxctrl show service now includes the statistics for the services.
The max_sescmd_history_length and avg_sescmd_history_length statistics in readwritesplit were moved into the core as service statistics. The session command history was moved into the MaxScale core in MaxScale 6 but the statistics were not updated to match this.
Several redundant schemarouter statistics have been either replaced by statistics that are found in the general service statistics output or have been removed if they were irrelevant.
longest_sescmd_chain replaced by max_sescmd_history_length.
queries replaced with routed_packets.
times_sescmd_limit_exceeded has been removed.
sescmd_percentage has been removed.
longest_session replaced with max_session_lifetime.
average_session replaced with avg_session_lifetime.
shortest_session has been removed.
admin_readwrite_hosts and admin_readonly_hosts added. These settings limit the allowed source addresses for admin (REST-API) connections. See for more information.
The alter commands in MaxCtrl now allow modifications to thetargets, servers, filters and cluster parameters for monitors and services. This makes it easier to define the exact set of servers that is to be used by a monitor or a service.
The feature no longer requires modifying session_track_system_variables on the server. MaxScale adds last_gtid to the variable automatically for each session. Clients should not modify it manually.
The now logs the execution of the binary protocol statements as text. This makes it so that for all execution of SQL, the query value in log_data will produce output.
The functionality that the auth_all_servers parameter enabled is automatically enabled by the schemarouter whenever it is used.
The source code of MaxScale is tagged at GitHub with a tag, which is identical
with the version of MaxScale. For instance, the tag of version X.Y.Z of MaxScale
is maxscale-X.Y.Z. Further, the default branch is always the latest GA version
of MaxScale.
By default, readwritesplit will not replay transactions that are about to commit when transaction_replay is enabled. To retain the old behavior where transactions were always replayed, disable transaction_replay_safe_commit.
Readwritesplit will now retry queries with partially returned results if they are done inside a transaction and transaction_replay is enabled.
prune_sescmd_history now also performs history simplification by removing redundant executions of the same statement. This will reduce memory usage in the case when history repeats a small cycle of commands. One example of this is connection pools that prepare the connection with a small set of commands like SET NAMES and SET SQL_MODE.
Common configuration settings can now be specified in a separate section, to be included by other sections.
When changing the service password, the previous password will be retained and continue to be used if the new does not work.
Embedded newlines are removed from logged messages.
Schemarouter database map caches can be cleared with maxctrl call command schemarouter clear <service> where <service> is a service that uses the schemarouter.
Schemarouter now allows stale cache entries to be used while the database map cache is being updated. By default the entries are usable for 150 seconds after they have gone stale. This limit can be configured with themax_staleness parameter.
Added switchover-force command to MariaDB Monitor. This command performs a switchover even if primary server is unresponsive.
Switchover now uses a longer command timeout on the old master. This should remove the need for adjusting monitor setting backend_read_timeout to get switchover to work.
The NoSQL protocol now provides internal caching.
Additional metadata is sent in the connection handshake. For more information, refer to the documentation.
The connection_timeout parameter was renamed to wait_timeout to make the naming of the parameters the same in MaxScale and MariaDB server. The oldconnection_timeout parameter is now an alias to wait_timeout and its use has been deprecated. If used, a warning will be logged that the parameter is deprecated.
The strip_db_esc parameter has been deprecated. The default behavior of stripping the escape characters is in all known cases the correct thing to do. Only broken legacy versions where the grants would be returned without backslash escaping would require this parameter to work.
The Xpand monitor is now region aware.
Passthrough authentication mode added to MariaDBAuth-module. See for more information.
Added pam_mode=suid option to PamAuth module. This option separates the pam system library calls to a separate executable. See for more information. test_pam_login tool updated to support this mode.
Added disk_space_ok option to MariaDB Monitor settings master_conditions and slave_conditions. Enabled by default in master_conditions. See for more information. Only available in MaxScale 23.08.5, 24.02.1 and later.
The source code of MaxScale is tagged at GitHub with a tag, which is identical
with the version of MaxScale. For instance, the tag of version X.Y.Z of MaxScale
is maxscale-X.Y.Z. Further, the default branch is always the latest GA version
of MaxScale.
The source code of MaxScale is tagged at GitHub with a tag, which is identical
with the version of MaxScale. For instance, the tag of version X.Y.Z of MaxScale
is maxscale-X.Y.Z. Further, the default branch is always the latest GA version
of MaxScale.
The source code of MaxScale is tagged at GitHub with a tag, which is identical
with the version of MaxScale. For instance, the tag of version X.Y.Z of MaxScale
is maxscale-X.Y.Z. Further, the default branch is always the latest GA version
of MaxScale.
The source code of MaxScale is tagged at GitHub with a tag, which is identical
with the version of MaxScale. For instance, the tag of version X.Y.Z of MaxScale
is maxscale-X.Y.Z. Further, the default branch is always the latest GA version
of MaxScale.
The source code of MaxScale is tagged at GitHub with a tag, which is identical
with the version of MaxScale. For instance, the tag of version X.Y.Z of MaxScale
is maxscale-X.Y.Z. Further, the default branch is always the latest GA version
of MaxScale.
The source code of MaxScale is tagged at GitHub with a tag, which is identical
with the version of MaxScale. For instance, the tag of version X.Y.Z of MaxScale
is maxscale-X.Y.Z. Further, the default branch is always the latest GA version
of MaxScale.
Added replication_custom_options-setting to both MariaDB Monitor and server. This setting enables e.g. setting SSL certificates for replication connections. See for more information.
Added check_repl_on_stop_slave_timeout setting to MariaDB Monitor. This setting is meant for fault tolerance and diagnostics of STOP SLAVE during failover or switchover. See for more information.
Create-Backup and Restore-From-Backup commands added to MariaDBMonitor.
The csmon and auroramon monitors that were deprecated in 22.08.2 have been removed.
The obsolete maxctrl drain command has been removed. Use maxctrl set server <name> drain to use the built-in draining mechanism.
The maxctrl cluster commands have been removed. Use the built-in to synchronize the configurations of multiple MaxScale instances.
The REST-API is now supports ODBC-type connections in the /sql endpoints. For more information, refer to the SQL resource .
The REST-API query endpoint now supports asynchronous query execution using the async=true option.
The new /sql/:id/etl endpoints allow ETL operations to be done from ODBC data sources into MariaDB servers. For more information on the new API functions, refer to the SQL resource .
The number of routing threads MaxScale uses can now be changed at runtime.
The Audit-Log allows all REST-API calls to be logged.
MaxScale now supports Xpand parallel replication streams that go through MaxScale.
Authentication can now be enabled when Redis is used as the cache storage.
SSL/TLS can now be used in the communication between MaxScale and Redis when Redis is used as the storage for the cache.
Some Cache configuration parameters, most notable the rules, can now be changed at runtime.
Support for inbound proxy protocol added.
Ed25519Auth-plugin added. The plugin enables authentication with the MariaDB Server ed25519 authentication plugin.
MaxGUI Query Editor has been renamed to "Workspace," and its internal storage key has been modified. As a result, the query history, snippets, and user preferences settings are restored to their default values.
The redundant options for create server and create listener that were deprecated in 22.08 have been removed in MaxScale 23.02. The use of explicit options has been superseded by the use of key=value parameters in allcreate commands.
The source code of MaxScale is tagged at GitHub with a tag, which is identical
with the version of MaxScale. For instance, the tag of version X.Y.Z of MaxScale
is maxscale-X.Y.Z. Further, the default branch is always the latest GA version
of MaxScale.
The source code of MaxScale is tagged at GitHub with a tag, which is identical
with the version of MaxScale. For instance, the tag of version X.Y.Z of MaxScale
is maxscale-X.Y.Z. Further, the default branch is always the latest GA version
of MaxScale.
The source code of MaxScale is tagged at GitHub with a tag, which is identical
with the version of MaxScale. For instance, the tag of version X.Y.Z of MaxScale
is maxscale-X.Y.Z. Further, the default branch is always the latest GA version
of MaxScale.
The source code of MaxScale is tagged at GitHub with a tag, which is identical
with the version of MaxScale. For instance, the tag of version X.Y.Z of MaxScale
is maxscale-X.Y.Z. Further, the default branch is always the latest GA version
of MaxScale.
The source code of MaxScale is tagged at GitHub with a tag, which is identical
with the version of MaxScale. For instance, the tag of version X.Y.Z of MaxScale
is maxscale-X.Y.Z. Further, the default branch is always the latest GA version
of MaxScale.
The source code of MaxScale is tagged at GitHub with a tag, which is identical
with the version of MaxScale. For instance, the tag of version X.Y.Z of MaxScale
is maxscale-X.Y.Z. Further, the default branch is always the latest GA version
of MaxScale.
The source code of MaxScale is tagged at GitHub with a tag, which is identical
with the version of MaxScale. For instance, the tag of version X.Y.Z of MaxScale
is maxscale-X.Y.Z. Further, the default branch is always the latest GA version
of MaxScale.
MariaDB MaxScale 25.01 series changes and improvements
The functionality that was enabled by the reuse_prepared_statements parameter in readwritesplit has been moved into the filter module. The reuse_prepared_statements parameter has been removed from readwritesplit.
The functionality that was enabled by the optimistic_trx parameter in readwritesplit has been moved into the filter module. Theoptimistic_trx parameter has been removed from readwritesplit.
Added a safe-option to MariaDB Monitor auto-failover. safe does not perform failover if data loss is certain. Equivalent manual command added. See for more information. This change affects REST-API output: the attributes.parameters.auto_failover-field of the monitor JSON description is now a string.
MariaDB Monitor can perform a write test on the primary server. See for more information.
MariaDB Monitor switchover can be called with key-value arguments. This form also supports leaving the old primary in maintenance mode instead of redirecting it. See for more information.
Allowed REST-API TLS ciphers can be tuned with the global setting .
The transaction_replay_safe_commit parameter in readwritesplit now also disables the replaying of all writes done when autocommit is enabled. This means that transaction replay will never replay a statement that may commit a transaction.
NoSQL protocol has been extended.
Now supports
Initial support for the command aggregate has been added.
When running in a container, MaxScale adapts to the amount of resources available in the container.
MaxGUI Query Editor now requires delimiter changes for compound statements such as stored procedures, functions, etc. See for more information. However, the dedicated SQL editor (opened via "Create Function", "Alter Function", "Create Trigger" etc., in the schema tree explorer) does not require delimiter changes as it handles SQL as a single statement.
MaxGUI Query Editor now automatically injects a LIMIT clause with a default limit of 10000 into every SELECT statement.
The new and parameters can be used to enable a trace log that writes messages from all log levels to a set of rotating log files. If enabled, the symlink/var/log/maxscale/maxscale.trace will point to the latest trace log file. This is a low-overhead alternative to enabling log_info and is intended to be used for debugging application problems in production where the overhead of log_info cannot be afforded.
The and the have been deprecated and will be removed in the next major release. can be used instead.
The configuration setting has been deprecated and will be removed in the next series.
For more details, please refer to:
The changelog for the previous MaxScale version can be found .
MaxScale 24.02.3 is a Beta release of MariaDB MaxScale 24.02, released on 2024-02-27
This document describes the changes in release 24.02, when compared to release 23.08.
For any problems you encounter, please consider submitting a bug report on our Jira.
Changed Features
Add last_gtid to session_track_system_variables automatically when causal_reads is enabled
MaxScale now automatically adds last_gtid to session-levelsession_track_system_variables when causal_reads is enabled. The setting is
only modified at the start of a backend connection, so clients should not modify
it afterwards.
Support non-default datadir with rebuild-server
async-rebuild-server and async-restore-from-backup now auto-detect server
data directory. Alternatively, the data directory can be specified manually when
launching the operations from command line. Also, mariadb-backup memory use and
thread count can be customized in monitor settings. See MariaDB Monitor documentation
for more information.
The legacy SysV init scripts as well as the Upstart files have been
removed. These were never used by MaxScale if it was installed from a RPM or DEB
package.
MaxScale now supports the extended result type information extension to the
MariaDB network protocol. This extension to the protocol was added in MariaDB
10.5 and some MariaDB connectors like Connector/J benefit from it.
Binlog files can now be automatically compressed.
An option to purging binlogs is now to archive them to another file system or for example, to Amazon S3.
Global settings admin_readwrite_hosts and admin_readonly_hosts limit the
hostnames/IPs from which admin (REST-API) clients can log in from. See and
for more information.
private_address is an alternative IP-address or hostname for a server. This is
used by MariaDB Monitor to detect and set up replication. See
for more information.
The parameter now supports the special
values newest that uses the value of @@gtid_binlog_pos and oldest that
scans the output of SHOW BINLOG EVENTS for the earliest GTID.
Numerous additions have been added and improvements made to MaxGUI.
The most notable ones are listed here:
There are some limitations and known issues within this version of MaxScale.
For more information, please refer to the document.
RPM and Debian packages are provided for the supported Linux distributions.
Packages can be downloaded .
The source code of MaxScale is tagged at GitHub with a tag, which is identical
with the version of MaxScale. For instance, the tag of version X.Y.Z of MaxScale
is maxscale-X.Y.Z. Further, the default branch is always the latest GA version
of MaxScale.
Large batches of session commands may leave sessions alive for a long time
Connections to servers in maintenance are sometimes not discarded
MaxScale does not drop supplementary groups if --user is used
LICENSE.TXT is a dangling symlink in RPMs
Query Editor: Unable to fully see error result when previewing a table
Query Editor: Unable to visualize preview data result set
Erroneous "Cluster gtid domain is unknown" error message during failover
Reads with max_slave_connections=0 after a switchover do not discard stale connections
Table header row fails to expand to full width in ERD modeler
Readwritesplit does not drop connections to severely lagging servers
CMake 3.28.3 warnings
Default logrotate config in .deb / docu missing params
/maxscale/logs/data may return no data if maxlog=0 and syslog=1
Multi-statement commands may end up being stored in the session command history
Two cache filters in same service causes errors on session creation
dotnet EntityFrameworkCore generates insert queries that are getting routed to all nodes as session write
MaxScale does not have time to open the file during rotation for a new binlog
Query Editor "Filter By" and "Group By" work improperly
Post reboot binlog router entered stuck state
Downgrading to 23.08 from 24.02 removes some required directories
postinst script prints output while installing
MaxScale does not use remote address sent in proxy header from client for authenticating the client
23.08.6 build ppc64le fails
The GUI should clear all http readonly cookies
Memory leak in namedserverfilter
Inbound proxy protocol does not generate the correct error if proxy_protocol_network is not defined
comment filter uses the wrong module name
DEALLOCATE PREPARE is not routed to all nodes
Segfault in cache filter with default configuration
Executing identical prepared statements may lose one of them on reconnection
MaxScale detects wrong server character set
A logout endpoint for the GUI to clear all http readonly cookies
Monitor should drop the connection when faced with an Access Denied error
There are some limitations and known issues within this version of MaxScale.
For more information, please refer to the document.
RPM and Debian packages are provided for the supported Linux distributions.
Packages can be downloaded .
The source code of MaxScale is tagged at GitHub with a tag, which is identical
with the version of MaxScale. For instance, the tag of version X.Y.Z of MaxScale
is maxscale-X.Y.Z. Further, the default branch is always the latest GA version
of MaxScale.
MaxScale 23.08.9 is a Stable (GA) maintenance release of MariaDB MaxScale 23.08, released on 2025-03-07
This document describes the changes in release 23.08.9, when compared to the
previous release in the same series.
If you are upgrading from an older major version of MaxScale, please read the upgrading document for
this MaxScale version.
For any problems you encounter, please consider submitting a bug
report on our Jira.
Bug fixes
MXS-5533 Remove session_trace parameter from services section
Session commands with max_slave_connections=0 after switchover do not discard stale connections
The "INSERT INTO...RETURNING" syntax breaks causal_reads
config sync does not ignore port for listeners
config_sync_password infinitely doubles after maxscale restart & alter command
Documentation of switchover-force lacks warnings
The Contact view in the GUI has outdated information
Relationship selections auto-cleared when creating a new monitor object
readwritesplit enables multi-statements regardless of the state of causal_reads
Cluster tree is not visualized accurately
idle_session_pool_time=0s does not fairly share connections
Need Documentation updates for Maxscale install recommendation
Galera Monitor does not log an error if "SHOW SLAVE STATUS" fails
disable_sescmd_history=true causes a use-after-free
MaxCtrl warnings are very verbose
Errors during loading of users lack the service name
maxctrl list queries fails
Encrypted passwords cannot be used with maxctrl
Log message: Unknown prepared statement handler given to MaxScale
Backend connections with fail with EAGAIN
Failed authentication warnings do not mention lack of client-side SSL as the reason of the failure
MaxScale 24.02.04 not closing DB Connections properly
Authentication errors are sometimes not read if backend TLS is enabled
Duration types that only take seconds return ms as units instead of s
retry_failed_reads is not affected by delayed_retry_timeout
list session in GUI shows wrong amount of sessions
rebuild-server does not work with MariaDB 11.4
The monitor journal file is not discarded aggressively enough.
Debug assertion on very large binary protocol prepared statements
Monitor connections do not check SSL certificate host even when ssl_verify_peer_host is enabled for the server
NVL and NVL2 are not detected as builtin functions outside of sql_mode=ORACLE
Kafkacdc errors for wrong GTID positions are not clear
Errors due to max_connections being exceeded are always fatal errors
Certain special characters in the maxscale user causes async-rebuild-server to fail
ed25519 socket droped when no user_mapping_file
Resultset table not fully expanded for inactive query tab
There are some limitations and known issues within this version of MaxScale.
For more information, please refer to the document.
RPM and Debian packages are provided for the supported Linux distributions.
Packages can be downloaded .
The source code of MaxScale is tagged at GitHub with a tag, which is identical
with the version of MaxScale. For instance, the tag of version X.Y.Z of MaxScale
is maxscale-X.Y.Z. Further, the default branch is always the latest GA version
of MaxScale.
MaxScale 23.02.0 is a Beta release of MariaDB MaxScale 23.02, released on 2023-02-22
This document describes the changes in release 23.02, when compared to release 22.08.
For any problems you encounter, please consider submitting a bug report on our Jira.
Changed Features
MariaDBMonitor
MariaDBMonitor now preserves the MASTER_USE_GTID-setting of a replica when
redirecting one during switchover and failover. When starting a new
replication connection on a previous replica, Slave_Pos is used. When starting
a new replication connection on a previous primary, Current_Pos is used.
Dropped Features
The csmon monitor has been dropped.
Was deprecated in 22.08.2.
The auroramon monitor has been dropped.
maxctrl cluster commands have been removed.
Was deprecated in 22.08.2.
New Features
REST-API
ODBC Type SQL Connections
The POST /sql REST-API endpoint can now use an ODBC driver to connect to an
external data source. To make the use of these new ODBC connections easier, a
new endpoint for canceling active queries was added. The POST /sql/:id/cancel
endpoint will interrupt the ongoing operation on the given connection.
For more information on how ODBC type connections differ from native MariaDB
connections, refer to the SQL resource .
Asynchronous Query API
The POST /sql/:id/queries now supports the async=true request option. When
enabled, the results of the query will be delivered asynchronously via the newly
added GET /sql/:id/queries/:query_id endpoint.
To make the use of the API easier, the latest asynchronous query result can be
retrieved multiple times. Results can also be explicitly discarded with the newDELETE /sql/:id/queries/:query_id endpoint.
ETL/Data Migration Service
The newly added ODBC type connections can be used with the new /sql/:id/etl
endpoints to perform data migration operations from external ODBC data sources
into MariaDB. The initial version supports MariaDB-to-MariaDB and
PostgreSQL-to-MariaDB migrations as well as generic migrations done via the ODBC
catalog functions.
For more information on the new API functions, refer to the SQL resource .
MaxScale can read an inbound proxy protocol header and relay the information to
backends. See
for more information.
These commands backup and restore database contents to/from an external drive.
See
for more information.
It is now possible to change at runtime the number of threads MaxScale
uses for routing client traffic. See
for more information.
Some configuration parameters, most notable the ,
can now be changed at runtime.
The REST-API calls to MaxScale can now be logged. See
for more information.
Authentication can be enabled when Redis is used as the cache storage. See for more information.
SSL/TLS can now be used in the communication between MaxScale and
the Redis server when the latter is used as the storage for the
cache. See for more information.
maxctrl (list|show) sessions and MaxGUI now show for each session ani/o activity number that gives an indication of the load of a particular
session. The number is the count of I/O operations performed for the session
during the previous 30 seconds.
MariaDB Server ed25519 authentication plugin support added. See for more information.
The maxctrl list and show commands now display timestamps using the
locale and timezone of the client computer.
Numerous additions have been added and improvements made to MaxGUI.
The most notable ones are listed here:
Add Views, Functions, and Indexes to the Query Editor schema sidebar.
Store user preferences.
ETL/Data Migration service GUI. Instructions on using it can be found
Query Editor - A query tab becomes unusable when a connection is not successfully reconnected.
There are some limitations and known issues within this version of MaxScale.
For more information, please refer to the document.
RPM and Debian packages are provided for the supported Linux distributions.
Packages can be downloaded .
The source code of MaxScale is tagged at GitHub with a tag, which is identical
with the version of MaxScale. For instance, the tag of version X.Y.Z of MaxScale
is maxscale-X.Y.Z. Further, the default branch is always the latest GA version
of MaxScale.
Empty passwords are shown as non-empty if password encryption is enabled
Crash in MariaDBParser::Helper::get_query_info()
Nested listener parameters depend on protocol being defined
In the previous version of MaxScale, maxctrl was implemented as a JavaScript
script that was run using the node interpreter on the platform. That introduced
a dependency on node that earlier was not present. In this version of MaxScale,
maxctrl is again a native executable without that dependency.
There are some limitations and known issues within this version of MaxScale.
For more information, please refer to the document.
RPM and Debian packages are provided for the supported Linux distributions.
Packages can be downloaded .
The source code of MaxScale is tagged at GitHub with a tag, which is identical
with the version of MaxScale. For instance, the tag of version X.Y.Z of MaxScale
is maxscale-X.Y.Z. Further, the default branch is always the latest GA version
of MaxScale.
The source code is available .
This page is licensed: CC BY-SA / Gnu FDL
MaxScale 2.5 Limitations and Known Issues
This document lists known issues and limitations in MariaDB MaxScale and its plugins. Since limitations are related to specific plugins, this document is divided into several sections.
Limitations and Known Issues within MariaDB MaxScale
Configuration limitations
Multiple MaxScales on same server
Security limitiations
MariaDB 10.2
MariaDB Default Values
Query Classification
Prepared Statements
Protocol limitations
Limitations with MySQL/MariaDB Protocol support (MariaDBClient)
Authenticator limitations
Limitations in the GSSAPI authenticator
Limitations in the MySQL authenticator (MariaDBAuth)
Filter limitations
Database Firewall limitations (dbfwfilter)
Tee filter limitations (tee)
Monitor limitations
Limitations with Galera Cluster Monitoring (galeramon)
Router limitations
In versions 2.1.2 and earlier, the configuration files are limited to 1024 characters per line. This limitation was increased to 16384 characters in MaxScale 2.1.3. MaxScale 2.3.0 increased this limit to 16777216 characters.
In versions 2.2.12 and earlier, the section names in the configuration files were limited to 49 characters. This limitation was increased to 1023 characters in MaxScale 2.2.13.
Starting with MaxScale 2.4.0, on systems with Linux kernels 3.9 or newer due to the addition of SO_REUSEPORT support, it is possible for multiple MaxScale instances to listen on the same network port if the directories used by both instances are completely separate and there are no conflicts which can cause unexpected splitting of connections. This will only happen if users explicitly tell MaxScale to ignore the default directories and will not happen in normal use.
The parser of MaxScale correctly parses WITH statements, but fails to collect columns, functions and tables used in the SELECT defining the WITH clause.
Consequently, the database firewall will not block WITH statements where the SELECT of the WITH clause refers to forbidden columns.
MaxScale assumes that certain configuration parameters in MariaDB are set to their default values. These include but are not limited to:
autocommit: Autocommit is enabled for all new connections.
tx_read_only: Transactions use READ WRITE permissions by default.
Follow the Jira issue to track the progress on this limitation.
XA transactions are not detected as transactions by MaxScale. This means that all XA commands will be treated as unknown commands and will be treated as operations that potentially modify the database (in the case of readwritesplit, the statements are routed to the master).
MaxScale will not track the XA transaction state which means that any SELECT queries done inside an XA transaction can be routed to servers that are not part of the XA transaction.
This limitation can be avoided on the client side by disabling autocommit before any XA transactions are done. The following example shows how a simple XA transaction is done via MaxScale by disabling autocommit for the duration of the XA transaction.
For its proper functioning, MaxScale needs in general to be aware of the transaction state and autocommit mode. In order to be that, MaxScale parses statements going through it.
However, if a transaction is commited or rolled back, or the autocommit mode is changed using a prepared statement, MaxScale will miss that and its internal state will be incorrect, until the transaction state or autocommit mode is changed using an explicit statement.
For instance, after the following sequence of commands, MaxScale will still think autocommit is on:
To ensure that MaxScale functions properly, do not commit or rollback a transaction or change the autocommit mode using a prepared statement.
Compression is not included in the server handshake.
If a KILL [CONNECTION] <ID> statement is executed, MaxScale will intercept it. If the ID matches a MaxScale session ID, it will be closed, similarly to how MariaDB does it. If the KILL CONNECTION USER <user> form is given, all connections with a matching username will be closed.
MariaDB MaxScale does not support KILL QUERY ID <query_id>
Currently, MariaDB MaxScale only supports GSSAPI authentication when the backend connections use GSSAPI authentication. Client side GSSAPI authentication with a different backend authentication module is not supported.
MySQL old style passwords are not supported. MySQL versions 4.1 and newer use a new authentication protocol which does not support pre-4.1 style passwords.
When users have different passwords based on the host from which they connect MariaDB MaxScale is unable to determine which password it should use to connect to the backend database. This results in failed connections and unusable usernames in MariaDB MaxScale.
Only a subset of netmasks are supported for the Host-column in the mysql.user-table (and related tables). Specifically, if the Host is of the form base_ip/netmask, then the netmask must only contain the numbers 0 or 255. For example, a netmask of 255.255.255.0 is fine while 255.255.255.192 is not.
The Database Firewall filter does not support multi-statements. Using them will result in an error being sent to the client.
The Tee filter does not support binary protocol prepared statements. The execution of a prepared statements through a service that uses the tee filter is not guaranteed to succeed on the service where the filter branches to as it does on the original service.
This possibility exists due to the fact that the binary protocol prepared statements are identified by a server-generated ID. The ID sent to the client from the main service is not guaranteed to be the same that is sent by the branch service.
A server can only be monitored by one monitor. Two or more monitors monitoring the same server is considered an error.
The default master selection is based only on MIN(wsrep_local_index). This can be influenced with the server priority mechanic described in the Galera Monitor manual.
Refer to individual router documentation for a list of their limitations.
MaxScale 25.10.3 Release Notes
Release 25.10.3 is a GA release.
Release Date: 15 Jun 2026
This document describes the changes in release 25.10.3, when compared to the previous release in the same series.
If you are upgrading from an older major version of MaxScale, please read the for this MaxScale version.
For any problems you encounter, please consider submitting a bug report on .
Although a maintenance release, MaxScale 25.10.3 introduces some significant new functionality that, in order to not change the dependencies of exiting packages, are delivered in packages of their own.
Contains , a MaxScale router that is capable of routing requests to an Exasol Analytics Engine.
MaxScale 24.02.5 Release Notes
MaxScale 24.02.5 is a Stable (GA) maintenance release of MariaDB MaxScale 24.02, released on 2025-03-10
This document describes the changes in release 24.02.5, when compared to the
previous release in the same series.
If you are upgrading from an older major version of MaxScale, please read the for
this MaxScale version.
For any problems you encounter, please consider submitting a bug
report on .
Remove session_trace parameter from services section
MaxScale 23.08.2 Release Notes
MaxScale 23.08.2 is a Stable (GA) maintenance release of MariaDB MaxScale 23.08, released on 2023-10-30
This document describes the changes in release 23.08.2, when compared to the
previous release in the same series.
If you are upgrading from an older major version of MaxScale, please read the for
this MaxScale version.
For any problems you encounter, please consider submitting a bug
report on .
Fixed by Update pcre2 to 10.42
MaxScale 23.02.12 Release Notes
MaxScale 23.02.12 is a Stable (GA) maintenance release of MariaDB MaxScale 23.02, released on 2024-11-27
This document describes the changes in release 23.02.12, when compared to the previous release in the same series.
If you are upgrading from an older major version of MaxScale, please read the for
this MaxScale version.
For any problems you encounter, please consider submitting a bug report on .
Fixed by Upgrade MongoC library to 1.27.5
MaxScale 23.02.9 Release Notes
MaxScale 23.02.9 is a Stable (GA) maintenance release of MariaDB MaxScale 23.02, released on 2024-03-05
This document describes the changes in release 23.02.9, when compared to the previous release in the same series.
If you are upgrading from an older major version of MaxScale, please read the for
this MaxScale version.
For any problems you encounter, please consider submitting a bug report on .
Fixed by Upgrade libssh to 0.10.6
MaxScale 22.08.15 Release Notes
MaxScale 22.08.15 is a Stable (GA) maintenance release of MariaDB MaxScale 22.08, released on 2024-12-09
This document describes the changes in release 22.08.15, when compared to the previous release in the same series.
If you are upgrading from an older major version of MaxScale, please read the for
this MaxScale version.
For any problems you encounter, please consider submitting a bug report on .
Fixed by Upgrade MongoC library to 1.27.5
MaxScale 22.08.12 Release Notes
MaxScale 22.08.12 is a Stable (GA) maintenance release of MariaDB MaxScale 22.08, released on 2024-03-11
This document describes the changes in release 22.08.12, when compared to the previous release in the same series.
If you are upgrading from an older major version of MaxScale, please read the for
this MaxScale version.
For any problems you encounter, please consider submitting a bug report on .
Fixed by Upgrade libssh to 0.10.6
MaxScale 22.08.9 Release Notes
MaxScale 22.08.9 is a Stable (GA) maintenance release of MariaDB MaxScale 22.08, released on 2023-10-30
This document describes the changes in release 22.08.9, when compared to the previous release in the same series.
If you are upgrading from an older major version of MaxScale, please read the for
this MaxScale version.
For any problems you encounter, please consider submitting a bug report on .
Fixed by Update pcre2 to 10.42
MaxScale 22.08.2 Release Notes
MaxScale 22.08.2 is a Stable (GA) maintenance release of MariaDB MaxScale 22.08, released on 2022-10-20
This document describes the changes in release 22.08.2, when compared to the previous release in the same series.
If you are upgrading from an older major version of MaxScale, please read the for
this MaxScale version.
For any problems you encounter, please consider submitting a bug report on .
Allow engine selection for Kafka Importer
Dropped Features
Legacy SysV init scripts
Deprecated Features
New Features
MXS-3616 Support MARIADB_CLIENT_EXTENDED_TYPE_INFO
The source code of MaxScale is tagged at GitHub with a tag, which is identical
with the version of MaxScale. For instance, the tag of version X.Y.Z of MaxScale
is maxscale-X.Y.Z. Further, the default branch is always the latest GA version
of MaxScale.
type statements. If a query by a query ID is to be killed, it needs to be done directly on the backend databases.
Any KILL commands executed using a prepared statement are ignored by MaxScale. If any are executed, it is highly likely that the wrong connection ends up being killed.
The change user command (COM_CHANGE_USER) only works with standard authentication.
If a COM_CHANGE_USER succeeds on MaxScale yet fails on the server the session ends up in an inconsistent state. This can happen if the password of the target user is changed and MaxScale uses old user account data when processing the change user. In such a situation, MaxScale and server will disagree on the current user. This can affect e.g. reconnections.
Configuration limitations
Multiple MaxScales on same server
Security limitiations
MariaDB 10.2
MariaDB Default Values
Query Classification
Prepared Statements
Protocol limitations
Limitations with MySQL/MariaDB Protocol support (MariaDBClient)
Authenticator limitations
Limitations in the GSSAPI authenticator
Limitations in the MySQL authenticator (MariaDBAuth)
Filter limitations
Database Firewall limitations (dbfwfilter)
Tee filter limitations (tee)
Monitor limitations
Limitations with Galera Cluster Monitoring (galeramon)
The source code of MaxScale is tagged at GitHub with a tag, which is identical
with the version of MaxScale. For instance, the tag of version X.Y.Z of MaxScale
is maxscale-X.Y.Z. Further, the default branch is always the latest GA version
of MaxScale.
MXS-5177 Introduce a new core_file variable in MaxScale
MXS-5398 Some log messages are not logged when session_trace is used
MXS-5394 Empty passwords are shown as non-empty if password encryption is enabled
MXS-5387 Crash in MariaDBParser::Helper::get_query_info()
Nested listener parameters depend on protocol being defined
Debug assert if backend fails during multi-packet query
Kafkaimporter doesn't work with MariaDB 11
timeout in kafkacdc is not a duration type
Allow monitor ssh-parameters to be modified at runtime
GDB stacktraces may hang
Transaction replay may deadlock with switchover
Improve MariaDB Monitor documentation on auto_failover and auto_rejoin
Switchover may cause two transaction replays to be started
XA ROLLBACK is not treated as a rollback in MaxScale
XA END is treated as the transaction commit instead of XA PREPARE
Kafkaimporter constraint makes it difficult to use with kafkacdc
Kafkacdc does not mention row-based replication as a requirement
User account manager hangs on shutdown
Slow servers may cause OOM situations if prepared statements are used
Maxscale Admin Audit file should include ip address or host of calling session
maxctrl destroy session takes only one ID as argument
MaxScale kafkacdc logs "notice : Started replicating from [x.x.x.x]:3306 at GTID 'N-N-N' at every timeout/reconnection
Prepared statements should never be removed from session command history
Kafkacdc always reads last GTID from Kafka on startup
The --config-check fails if /var/cache/maxscale cannot be read
Monitor does not show broken external replication in "maxctrl list servers"
Read-only error during read-write transaction should trigger transaction replay
MaxScale installs scripts with non-standard file permissions
Valgrind reports read from uninitialized GWBUF for ccrfilter
Retrying of reads on the current primary unnecessarily requires delayed_retry
delayed_retry should not retry interrupted writes
SET statements multiple values are not parsed correctly
Debug assertion due to non-existent dcall ID
Remove obsolete prelink script
MaxCtrl does not accept dot notation for nested parameters
Listener with ssl=false allows user accounts created with REQUIRE SSL to log in
wsrep_desync behavior is undocumented
Master Stickiness status not displayed correctly with use_priority
Replicas after maxscale binlog don't get updates
In the previous version of MaxScale, maxctrl was implemented as a JavaScript
script that was run using the node interpreter on the platform. That introduced
a dependency on node that earlier was not present. In this version of MaxScale,
maxctrl is again a native executable without that dependency.
There are some limitations and known issues within this version of MaxScale.
For more information, please refer to the Limitations document.
RPM and Debian packages are provided for the supported Linux distributions.
The source code of MaxScale is tagged at GitHub with a tag, which is identical
with the version of MaxScale. For instance, the tag of version X.Y.Z of MaxScale
is maxscale-X.Y.Z. Further, the default branch is always the latest GA version
of MaxScale.
The source code of MaxScale is tagged at GitHub with a tag, which is identical
with the version of MaxScale. For instance, the tag of version X.Y.Z of MaxScale
is maxscale-X.Y.Z. Further, the default branch is always the latest GA version
of MaxScale.
MXS-5398 Some log messages are not logged when session_trace is used
MXS-5394 Empty passwords are shown as non-empty if password encryption is enabled
MXS-5387 Crash in MariaDBParser::Helper::get_query_info()
Nested listener parameters depend on protocol being defined
Debug assert if backend fails during multi-packet query
Kafkaimporter doesn't work with MariaDB 11
timeout in kafkacdc is not a duration type
Allow monitor ssh-parameters to be modified at runtime
GDB stacktraces may hang
Transaction replay may deadlock with switchover
Improve MariaDB Monitor documentation on auto_failover and auto_rejoin
Switchover may cause two transaction replays to be started
XA ROLLBACK is not treated as a rollback in MaxScale
XA END is treated as the transaction commit instead of XA PREPARE
Kafkaimporter constraint makes it difficult to use with kafkacdc
Kafkacdc does not mention row-based replication as a requirement
User account manager hangs on shutdown
Slow servers may cause OOM situations if prepared statements are used
maxctrl destroy session takes only one ID as argument
MaxScale kafkacdc logs "notice : Started replicating from [x.x.x.x]:3306 at GTID 'N-N-N' at every timeout/reconnection
Prepared statements should never be removed from session command history
Kafkacdc always reads last GTID from Kafka on startup
The --config-check fails if /var/cache/maxscale cannot be read
Read-only error during read-write transaction should trigger transaction replay
MaxScale installs scripts with non-standard file permissions
Valgrind reports read from uninitialized GWBUF for ccrfilter
Retrying of reads on the current primary unnecessarily requires delayed_retry
delayed_retry should not retry interrupted writes
SET statements multiple values are not parsed correctly
Debug assertion due to non-existent dcall ID
Remove obsolete prelink script
MaxCtrl does not accept dot notation for nested parameters
The No Backslash Escapes checkbox in the result export dialog is confusing
Listener with ssl=false allows user accounts created with REQUIRE SSL to log in
wsrep_desync behavior is undocumented
Master Stickiness status not displayed correctly with use_priority
Replicas after maxscale binlog don't get updates
In the previous version of MaxScale, maxctrl was implemented as a JavaScript
script that was run using the node interpreter on the platform. That introduced
a dependency on node that earlier was not present. In this version of MaxScale,
maxctrl is again a native executable without that dependency.
There are some limitations and known issues within this version of MaxScale.
For more information, please refer to the Limitations document.
RPM and Debian packages are provided for the supported Linux distributions.
The source code of MaxScale is tagged at GitHub with a tag, which is identical
with the version of MaxScale. For instance, the tag of version X.Y.Z of MaxScale
is maxscale-X.Y.Z. Further, the default branch is always the latest GA version
of MaxScale.
The source code of MaxScale is tagged at GitHub with a tag, which is identical
with the version of MaxScale. For instance, the tag of version X.Y.Z of MaxScale
is maxscale-X.Y.Z. Further, the default branch is always the latest GA version
of MaxScale.
The source code of MaxScale is tagged at GitHub with a tag, which is identical
with the version of MaxScale. For instance, the tag of version X.Y.Z of MaxScale
is maxscale-X.Y.Z. Further, the default branch is always the latest GA version
of MaxScale.
The source code of MaxScale is tagged at GitHub with a tag, which is identical
with the version of MaxScale. For instance, the tag of version X.Y.Z of MaxScale
is maxscale-X.Y.Z. Further, the default branch is always the latest GA version
of MaxScale.
servers_no_promotion should prevent a server from being promoted due to replication change
Introduce a new core_file variable in MaxScale
Debug assertion on very large binary protocol prepared statements
Monitor connections do not check SSL certificate host even when ssl_verify_peer_host is enabled for the server
Some log messages are not logged when session_trace is used
In the previous version of MaxScale, maxctrl was implemented as a JavaScript
script that was run using the node interpreter on the platform. That introduced
a dependency on node that earlier was not present. In this version of MaxScale,
maxctrl is again a native executable without that dependency.
There are some limitations and known issues within this version of MaxScale.
For more information, please refer to the document.
RPM and Debian packages are provided for the supported Linux distributions.
Packages can be downloaded .
The source code of MaxScale is tagged at GitHub with a tag, which is identical
with the version of MaxScale. For instance, the tag of version X.Y.Z of MaxScale
is maxscale-X.Y.Z. Further, the default branch is always the latest GA version
of MaxScale.
Some log messages are not logged when session_trace is used
Empty passwords are shown as non-empty if password encryption is enabled
Crash in MariaDBParser::Helper::get_query_info()
In the previous version of MaxScale, maxctrl was implemented as a JavaScript
script that was run using the node interpreter on the platform. That introduced
a dependency on node that earlier was not present. In this version of MaxScale,
maxctrl is again a native executable without that dependency.
There are some limitations and known issues within this version of MaxScale.
For more information, please refer to the document.
RPM and Debian packages are provided for the supported Linux distributions.
Packages can be downloaded .
The source code of MaxScale is tagged at GitHub with a tag, which is identical
with the version of MaxScale. For instance, the tag of version X.Y.Z of MaxScale
is maxscale-X.Y.Z. Further, the default branch is always the latest GA version
of MaxScale.
Add disk_space_ok option to master_conditions and slave_conditions
Log message on releasing exclusive locks when no lock majority is confusing
Top-level service reconnection may cause a use-after-free
Maxscale fail to initiate maxscale.service (Missing /var/run/maxscale) directory
There are some limitations and known issues within this version of MaxScale.
For more information, please refer to the document.
RPM and Debian packages are provided for the supported Linux distributions.
Packages can be downloaded .
The source code of MaxScale is tagged at GitHub with a tag, which is identical
with the version of MaxScale. For instance, the tag of version X.Y.Z of MaxScale
is maxscale-X.Y.Z. Further, the default branch is always the latest GA version
of MaxScale.
MaxScale 23.08.0 is a Beta release of MariaDB MaxScale 23.08, released on 2023-09-04
This document describes the changes in release 23.08, when compared to
release 23.02.
For any problems you encounter, please consider submitting a bug
report on our Jira.
Changed Features
Switchover improvements
During switchover, MariaDB-Monitor creates a new connection to the master with
a long timeout, ignoring the limit of backend_read_timeout. This reduces the
probability of long commands such as set global read_only=1 timing out. When
kicking out super and read-only admin users, monitor prevent writes with
"flush tables with read lock". See monitor documentation
for more information.
No newlines in logged messages
Earlier when the SQL sent by a client was logged due to log_info being enabled,
the SQL was logged verbatim, which would cause the log to contain extra newlines
in case the SQL did. From 23.08 forward, newlines are replaced with the text ,
so that a logged line will not contain any extra newlines.
The connection_timeout parameter was renamed to wait_timeout and the old
name is now an alias to the new name. The use of the old name is deprecated.
The Readwritesplitmax_slave_replication_lag parameter was renamed tomax_replication_lag and the old name is now an alias for the new name.
The use of the old name is deprecated.
The configuration parameters query_classifier and query_classifier_args
have been deprecated and are ignored.
The strip_db_esc parameter is deprecated and will be removed in a future
release. The default behavior of stripping escape characters is in all known
cases the correct thing to do and as such this parameter is never required.
The PCRE2 library used by MaxScale now limits the heap memory to 1GB and the
matching limit to 500000 matches. This change was done to prevent catastrophic
backtracing that occurred when regular expressions used nested recursion
e.g. SELECT.*.*FROM.*.*t1.
The NoSQL protocol module now supports internal caching. Since this
cache uses keys created from NoSQL protocol requests and stores NoSQL
protocol responses, it is more efficient than the regular cache filter.
More information about this functionality can be found .
This version of switchover performs the switch even if the primary server is
unresponsive i.e. responds to pings but does not perform any commands in a
reasonable time. May lead to diverging replication on the old primary. See
for more information.
The causal_reads=fast_universal mode uses the same mechanism to retrieve the
GTID position that the universal mode uses but behaves like the fast mode
when routing queries.
The schemarouter database map cache can now be manually cleared with a MaxCtrl
command:
This makes it possible to schedule the clearing of the caches for busy systems
where the update of the map takes a long time.
Stale entries in the schemarouter database map can now be used up tomax_staleness seconds. This reduces the impact that a shard update causes to
the client applications.
When the service password is changed, MaxScale will remember and use the previous
password if the new does not work. This makes it easier to manage the changing of
the password, as the password in the backend and in MaxScale need not be changed
simultaneously. More information about this functionality can be found .
The iss field of the JWTs that the REST-API in MaxScale generates can now be
configured with admin_jwt_issuer. This allows REST-API clients to see who
issued the token.
It is now possible to specify options in an include-section, to be included
by other sections. This is useful, for instance, if there are multiple monitors
that otherwise are identically configured, but for their list of servers. More
information about this functionality can be found .
The new transaction_replay_safe_commit variable controls whether
about-to-commit transaction are replayed when transaction_replay is
enabled. The new default is to not replay transactions that were being committed
when the connection to the server was lost.
Passthrough authentication mode for MariaDBAuth-module. See for more information.
If a query in a transaction is interrupted and the result was partially
delivered to the client, readwritesplit will now retry the execution of the
query and discard the already delivered part of the result.
The adds support for LOAD DATA LOCAL INFILE
from S3 compatible storage.
The new connection_metadata listener parameter controls the set of metadata
variables that are sent to the client during connection creation.
By default the values of the system variables character_set_client,character_set_connection, character_set_results, max_allowed_packet,system_time_zone, time_zone and tx_isolation are sent as well as the
current number of connections as the threads_connected variable and the real
64-bit connection ID as connection_id.
Compatible MariaDB connectors will use this information from MaxScale instead of
querying the values of the variables from the database server which greatly
speeds up connection creation.
It is now possible to limit the nodes the Xpand monitor dynamically detects
to those residing in a specific region. See
and for more information.
Numerous additions have been added and improvements made to MaxGUI.
The most notable ones are listed here:
Add ERD modeler to the
workspace. Instructions on using it can be found .
Show schema objects
insights. Instructions on using it can be found .
Auto choose active schema for new query tab.
There are some limitations and known issues within this version of MaxScale.
For more information, please refer to the document.
RPM and Debian packages are provided for the supported Linux distributions.
Packages can be downloaded .
The source code of MaxScale is tagged at GitHub with a tag, which is identical
with the version of MaxScale. For instance, the tag of version X.Y.Z of MaxScale
is maxscale-X.Y.Z. Further, the default branch is always the latest GA version
of MaxScale.
@@last_gtid and @@last_insert_id are treated differently
GTIDs used by causal_reads=global cannot be reset without restarting MaxScale
There are some limitations and known issues within this version of MaxScale.
For more information, please refer to the document.
RPM and Debian packages are provided for the supported Linux distributions.
Packages can be downloaded .
The source code of MaxScale is tagged at GitHub with a tag, which is identical
with the version of MaxScale. For instance, the tag of version X.Y.Z of MaxScale
is maxscale-X.Y.Z. Further, the default branch is always the latest GA version
of MaxScale.
MaxScale 25.01.1 is a Stable (GA) release of MariaDB MaxScale 25.01, released on 2025-01-16
This document describes the changes in release 25.01, when compared to release 24.02.
For any problems you encounter, please consider submitting a bug report on .
If MaxScale is running in a container, it will adapt to amount of resources (CPUs and memory) available in the container. See and for more information.
now supports the exclusion of any field and not only _id. Further, fields can also be added and the value of an existing field reset using expressions.
Diff is a router using which the behaviour of two servers can be compared. Please see for more information.
MXS-4562 When MaxScalle is installed from tarball and starded without -d option --basedir=. is not parsed properly and full directory needs to be specified
MXS-4538 No valid servers in cluster 'MariaDB-Monitor'
MXS-4457 Duplicate values in servers are silently ignored
A number of components using which a live workload can be captured and later replayed. Please see
for more information.
Added a safe-option to MariaDB Monitor auto-failover. safe does not perform failover if data loss is certain. Equivalent manual command added. See for more information. This change affects REST-API output: the attributes.parameters.auto_failover-field of the monitor JSON description is now a string.
Enabled REST-API TLS ciphers can be tuned with the global setting .
The new and parameters can be used to enable a trace log that writes messages from all log levels to a set of rotating log files.
This feature is an alternative to enabling which is not always feasible in a production system due to the high volume of log data that it creates. This overhead of writing large amounts of trace logging data could be mitigated by placing the log directory on a volatile in-memory filesystem but this risks losing important warning and error messages if the system were to be restarted.
The new trace logging mechanism combines the best of both worlds by writing the normal log messages to the MaxScale log while also writing the info level log messages into a separate set of rotating log files. This way, the important messages are kept even if the system is restarted while still allowing the low-level trace logging to be used to analyze the root causes of client application problems.
now implements the commands needed by MongoDB Compass, which now can be used for browsing NoSQL collections.
In addition to the existing routed_packets counter in the service and server statistics, the number of reads and writes is also tracked with the new routed_writes and routed_reads counters.
With transaction_replay_safe_commit=true (the default), readwritesplit will no longer replay statements that were executed with autocommit=1. This means that a statement like INSERT INTO software(name) VALUES ('MariaDB') will not be replayed if it's done outside of a transaction and its execution was interrupted. This feature makes transaction_replay safer by default and avoids duplicate execution of statements that may commit a transaction.
MariaDB Monitor can perform a write test on the primary server. Monitor can be configured to perform a failover if the write test fails. This may help deal with storage engine or disk hangups. See for more information.
Similar to MariaDB, MaxScale now stores the last 128 hostnames returned by reverse name lookups. This improves the performance of clusters where clients are authenticated based on a hostname instead of a plain IP address. The new parameter can be used to control the size of the cache and the cache can be disabled with host_cache_size=0.
MaxScale now supports the protocol extensions added in MariaDB 11.5.1 where the bulk execution of statements returns multiple results.
MariaDB Monitor module command switchover can now be called with key-value arguments. This form also supports leaving the old primary in maintenance mode instead of redirecting it. See for more information.
now implements the command and provides a number of aggregation pipe line and .
Numerous additions have been added and improvements made to MaxGUI. The most notable ones are listed here:
MXS-3852 Show Only SQL editor Sessions/Connections Status Separately On Maxscale GUI
MXS-3952 Auto-inject LIMIT and OFFSET, and allow no limit
The source code of MaxScale is tagged at GitHub with a tag, which is identical with the version of MaxScale. For instance, the tag of version X.Y.Z of MaxScale is maxscale-X.Y.Z. Further, the default branch is always the latest GA version of MaxScale.
MaxScale 25.10.0 is a Stable (GA) release of MariaDB MaxScale 25.10, released on 2025-10-22
Release date: 22 Oct 2025
Release 25.10.0 is a GA release.
This document describes the changes in release 25.10, when compared to release 25.01.
For any problems you encounter, please consider submitting a bug report on our Jira.
Changed Features
Dropped Features
The global settings query_retry and query_retry_timeout, as well as the monitor settings backend_write_timeout and backend_read_timeout have been removed. The settings are still recognized but any configured values are ignored.
The global settings event.authentication_failure.facility and event.authentication_failure.level have been deprecated and renamed to event_authentication_failure_facility and event_authentication_failure_level respectively.
The monitor setting backend_connect_timeout has been deprecated. Use backend_timeout instead.
Restores the old primary server to primary status once it rejoins the cluster after failover. See for more information.
Manually alters replication topology.
MaxScale can now send metrics to an OpenTelemetry Collector.
The Galera monitor can now bootstrap itself from an existing Galera cluster. Please see the Galera Monitor for more information.
Lists available backups in the backup storage.
If MaxScale is used with MariaDB 12.0 and the service user has the required grants to switch users, the backend authentication will be done with the service user credentials and the new SET SESSION AUTHORIZATION command is used to switch the user account to the one that the client is requesting. This makes the authentication between MaxScale and MariaDB very flexible and allows it to use an efficient, secure and fast authentication mechanism like ed25519 or PARSEC while still supporting all possible authentication mechanisms between the client and MaxScale.
To disable this feature, add use_service_credentials=false to the server section.
When creating a server using maxctrl it is now possible to copy all nonspecified settings from an existing server.
MariaDB Monitor backup operation status can be shown in detail with the command.
MariaDB Monitor (rebuild-server, create-backup, restore-from-backup) now support key-value arguments. The commands also support the dry-run-option, which checks if MaxScale configuration and servers support the commands.
If there is a [maxctrl] section in the MaxScale configuration file, maxctrl will read settings from there if it's readable. This makes it easier to enable encryption and to define the credentials that are used to access MaxScale.
With the initial_status setting, the initial state of all servers can be set to either down, up, read or write. This allows manual assignment of server states for special cases where monitoring is either not needed or doesn't produce the expected result.
The first value in the maxctrl call command can now also be the name of an object in MaxScale instead of the module name. This makes it much more convenient to call the module command of the correct object.
For example, maxctrl call command mariadbmon switchover My-Monitor can now be done with maxctrl call command My-Monitor switchover.
MaxScale now supports the newer zstd as well as the older zlib compression at the protocol level. Unlike MariaDB and MySQL, which have a fixed compression threshold of 50 bytes, MaxScale can be customized to compress at a custom threshold with the mariadbprotocol.compression_threshold setting to reduce the CPU cost for small payloads.
To disable support for the protocol level compression, set mariadbprotocol.compression=none in the listeners.
A filter that does not have any configuration settings can be directory used in the configuration section of a service, without a configuration section of its own. See the for more information.
The implicit filter can be used for preventing writes to a server.
The NoSQL protocol now supports the use of indexes. See for more information.
MaxScale now supports the use of multiple authentication plugins for both client and backend authentication. The set of supported plugins can be configured with the authenticator setting in the listeners. For example to enable both traditional mysql_native_password and the newer PARSEC authentication, use authenticator=mariadbauth,parsecauth in the listeners.
MaxScale now contains a that first learns what statements are allowed and then rejects statements that are not allowed.
Added and commands to Galera Monitor. bootstrap populates an empty monitor. discover-replicas finds new servers to add to the monitor and optionally removes disconnected servers.
Added , and commands to MariaDB Monitor. scan-topology is mainly useful in checking if all servers in the replication cluster are monitored. bootstrap populates an empty monitor. discover-replicas finds new servers to add to the monitor and optionally removes disconnected servers.
MaxScale will rename the redirect_url server variable change in the response from a server to mxs_rdir_url before the packet is returned to clients. This is to prevent someone from inadvertently bypassing MaxScale by doing a SET GLOBAL redirect_url through MaxScale. Redirecting clients away from MaxScale, should be done via maxctrl alter service ... redirect_url=<URL>.
MaxScale now has a configuration setting using which clients can be redirected away from MaxScale.
Using the new it is possible to affect the server selection order in ReadConnRoute.
With the --fields flag the output of maxctrl can be customized. For instance:
MaxScale now enforces the REQUIRE (X509|ISSUER|SUBJECT|CIPHER) clauses on user definitions. Please see the server documentation for more information.
Monitors and service will activate the configured role when logging in. See and settings for more information.
By default, MaxScale no longer generates a core file when it crashes. Please see for more information.
excludes listed servers from cooperative monitoring.
When configuration file parsing fails in an early phase, the actual offending line will now be logged in the error message to make it easier to pinpoint the problem.
MaxScale now supports authentication.
In the output of maxctrl list server, the state of a server and reason for the state are now separated. The state of a server is shown as Read, Write, Up or Down, possibly augmented with Maintenance or Draining|Drained, while the reason for the state is shown in the next column. For instance, in a Primary/Replica cluster, the reason for the state Read may be Primary, read_only, indicating that although the server is the primary, it has read_only
Using maxctrl, it is now possible to clear both server and service statistics.
MaxScale can connect to a MariaDB Server that is using a self-signed certificate and verify the certificate. See for more information.
MaxScale can generate a self-signed certificate and a supporting client can verify it. See for more information.
Using maxctrl it is now possible to dump the content of the query classifier cache to a file. The cache can be dumped as json, as pretty formatted json and as json lines, i.e. as json objects separated by a newline.
At startup, if there are filters that are not used by any service, or servers that are not referred to by any service or monitor, a warning will be logged.
The maxctrl list servers command now also has a customizable field for replication lag information. To use it, add replication-lag to the list in the --fields option.
The global setting forces encryption to be configured everywhere.
A new feature in the readwritesplit router that synchronizes committed transactions on one or more replicas by waiting for the transaction to be replicated. It has two modes of operation: the soft mode synchronizes the transactions but proceeds normally if a synchronization timeout occurs and the hard mode which will close the client session if synchronization times out. The sync_transaction_max_lag setting can be used to adjust when the throttling takes place and sync_transaction_timeout controls the maximum amount of lag that the client applications will experience.
This feature can be used to limit the amount of replication lag that the cluster will see. It also provides a way to have fully synchronous replication with MariaDB with stronger durability guarantees than is possible with semi-synchronous replication.
The MaxScale GUI and REST-API now use role based access control to restrict the operations that users can do. The admin and basic roles both retain their old behavior of the former being allowed to do anything and the latter being only able to perform read-only operations. The new editor role has the ability to also modify objects but it lacks the ability to create, modify or delete users and roles. The new sql role is only allowed to access the query API and the Workspace in the GUI.
User-defined roles can also be added with the maxctrl create role command. The permissions that the roles have are admin for creating users, edit for creating, modifying and destroying objects, view for viewing information about objects and MaxScale itself and sql for accessing the SQL query API.
Run custom SQL on a server when it gains a primary or replica role. See and for more information.
It is now possible to use passphrase protected certificate keys. Please see and for more information.
Numerous additions have been added and improvements made to MaxGUI. The most notable ones are listed here:
Highlight changed parameters
Query Editor: Add UI for creating and altering users
Backup operations UI
There are some limitations and known issues within this version of MaxScale. For more information, please refer to the document.
RPM and Debian packages are provided for the supported Linux distributions.
MariaDB MaxScale 21.06 series changes and improvements
NOTE MaxScale 6.4 was renamed to 21.06 in May 2024. Thus, what would have been released as 6.4.16 in June, was released as 21.06.16. The purpose of this change is to make the versioning scheme used by all MaxScale series identical. 21.06 denotes the year and month when the first 6 release was made.
MariaDB MaxScale 21.06
Added multiplex_timeout. It sets the time a session can wait for a backend connection to become available when using connection sharing (i.e. idle_session_pool_time).
The hintrouter module was removed in MaxScale 21.06.18. The module was non-functional.
For more details, please refer to:
Nosqlprotocol now supports both SSL and authentication.
A large number of client connections can now share a smaller number of backend connections.
MaxGUI now shows which MaxScale node is in control when cooperative monitoring is enabled.
For more details, please refer to:
Significant improvements and feature additions to MaxGUI
Significant improvements to nosqlprotocol
Transaction Performance Monitoring Filter functionality moved to Qlafilter
Most filters can now be reconfigured at runtime
For more details, please refer to:
The versioning scheme has changed; earlier this would have been version 2.6.
A nosqlprotocol protocol module that implements the MongoDB® wire protocol has been introduced.
The ColumnStore monitor is now exclusively intended for ColumnStore version 1.5.
For more details, please refer to:
MaxAdmin has been removed.
MaxGUI, a new browser based tool for configuring and managing MaxScale is introduced.
MaxInfo-router and the related httpd-protocol have been removed.
Server weights have been removed.
For more details, please refer to:
A Clustrix specific monitor has been added.
A new router, Smart Router, capable of routing a query to different backends depending on the characteristics of the query has been added.
Transaction replaying is now performed also in conjunction with server initiated transaction rollbacks.
For more details, please refer to:
Runtime Configuration of the Cache
User Specified Syslog Facility and Level for Authentication Errors
config reload removed from MaxAdmin (was deprecated in 2.2)
For more details, please refer to:
Limited support from Pluggable Authentication Modules (PAM).
Proxy protocol support for backend connections.
REST-API for obtaining information about and for manipulating the resources of MaxScale.
MaxCtrl, a new command line client for administering MaxScale implemented in terms of the REST-API.
For more details, please refer to:
MariaDB MaxScale is licensed under MariaDB BSL 1.1.
Hierarchical configuration files are now supported.
Logging is now performed in a way compatible with logrotate(8).
Persistent connections are reset upon reuse.
For more details, please refer to:
MariaDB MaxScale is licensed under MariaDB BSL.
SSL can be used in the communication between MariaDB MaxScale and the backend servers.
The number of allowed connections can explicitly be throttled.
MariaDB MaxScale can continue serving read request even if the master has gone down.
For more details, please refer to:
Authentication now allows table level resolution of grants. MaxScale service users will now need SELECT privileges on mysql.tables_priv to be able to authenticate users at the database and table level.
Firewall filter allows whitelisting.
Client-side SSL works.
For more details, please refer to:
Added support for persistent backend connections
The binlog server is now an integral component of MariaDB MaxScale.
The logging has been changed; instead of different log files there is one log file and different message priorities.
For more details, please refer to:
Logfiles have been renamed. The log names are now named error.log, messages.log, trace.log and debug.log.
For more details, please refer to:
Schemarouter now also allows for an upper limit to session commands.
Schemarouter correctly handles SHOW DATABASES responses that span multiple buffers.
Readwritesplit and Schemarouter now allow disabling of the session command history.
For more details, please refer to:
NOTE: MariaDB MaxScale default installation directory has changed to /usr/local/mariadb-maxscale and the default password for MaxAdmin is now ´mariadb´.
New modules added
Binlog router
Firewall filter
Multi-Master monitor
For more details, please refer to:
This page is licensed: CC BY-SA / Gnu FDL
Filtering can now be used in the KafkaCDC router.
The user is now informed if runtime changes are made to configuration objects that are defined in static configuration files.
Synchronous mode for the Tee filter
New list queries command for MaxCtrl that lists all active queries
MaxScale can read client user accounts from a file and map them to backend users. See service setting and listener setting for more information.
The ColumnStore monitor can now automatically adapt to changes in the cluster configuration.
The Database Firewall filter has been deprecated.
If extra_port is defined for a server, it's used by default for monitor and user account manager connections. Normal port is used if the extra-port connection fails due to too low extra_max_connections-setting on the backend.
The deprecated required and disabled values for the ssl parameter have been removed.
Backend connection multiplexing added. See for more information.
Defaults for maxctrl can now be specified in the file ~/maxctrl.cnf
PAM Authenticator can map PAM users to MariaDB users.
MariaDB-Monitor can launch monitor script when slave server exceeds replication lag limit (script_max_replication_lag).
MariaDB-Monitor can disable read_only on master server (enforce_writable_master).
A graphical user interface SQL queries tool for writing, running SQL queries and visualizing the results have been introduced.
Services can now directly route to other services with the help of the parameter.
Server parameters protocol and authenticator have been deprecated. Any definitions are ignored.
Listeners support multiple authenticators.
The replication lag of a slave server must now be less than whereas in older versions the replication lag had to be less than or equal to the configured limit.
The global settings auth_read_timeout and auth_write_timeout have been deprecated. Any definitions are ignored.
The ColumnStore monitor is now capable of monitoring ColumnStore 1.5 in addition to 1.0 and 1.2.
MariaDB-Monitor supports cooperative monitoring. See for more information.
The MaxScale cache can now be shared between two MaxScale instances, in which case either memcached or Redis can be used as cache storage. Further, the cache can now also perform table level invalidations and be specific to a particular user.
A completely new binlog router implementation.
New routers, and .
Service-to-service routing is now possible with the targets parameter.
TLS CRL and peer host verification support.
Multiple modes of operation for causal_reads.
Names starting with @@ are reserved for use by MaxScale.
Names can no longer contain whitespace.
Servers can now be drained.
The servers of a service can now be defined using a monitor.
Durations can now be specified as hours, minutes, seconds or milliseconds.
MaxCtrl commands list sessions, show sessions and show session <id> support reverse DNS lookup of client addresses. The conversion is activated by adding the --rdns-option to the command.
The following MariaDB-Monitor settings have been removed and cause a startup error if defined: mysql51_replication, multimaster and allow_cluster_recovery. The setting detect_replication_lag is deprecated and ignored.
enforce_simple_topology-setting added to MariaDB-Monitor.
The mqfilter has been deprecated.
MariaDBMonitor features added, modified and removed
A Comment filter has been added.
Services and filters can be created at runtime via the REST API
Runtime router reconfiguration is now possible
New Throttle filter that replaces and extends on the limit_queries functionality
MaxCtrl
The create monitor command now accepts a list of key-value parameters
The new drain server drains the server of connections
A new interactive input mode was added
Readwritesplit
Automatic transaction replay allows transactions to be migrated between servers
Master connections can now be re-opened
Writes with autocommit enabled can be automatically retried
Consistent reads on slaves via MASTER_GTID_WAIT
Transaction load balancing for normal transactions
Support for runtime router reconfiguration
A new load balancing method: ADAPTIVE_ROUTING
Experimental resultset concatenation router, cat
The schema router is now capable of table family sharding.
The binlog router can now automatically switch to secondary masters when replicating from a Galera cluster in case the primary master goes down.
MaxScale now has a systemd compatible watchdog.
Server setting authenticator_options is no longer used and any value is ignored.
Firewall can now prevent the use of functions in conjunction with certain columns.
Parser of MaxScale extended to support window functions and CTEs.
Parser of MaxScale extended to support PL/SQL compatibility features of upcoming 10.3 release.
Prepared statements are now parsed and the execution of read only ones will be routed to slaves.
Server states are persisted, so in case of crash and restart MaxScale has the correct server state quicker.
Monitor scripts are executed synchronously, so they can safely perform actions that change the server states.
The Masking filter can now both obfuscate and partially mask columns.
Binlog router supports MariaDB 10 GTID at both ends.
KILL CONNECTION can now be used through MaxScale.
Environment variables can now be used in the MaxScale configuration file.
By default, MaxScale can no longer be run as root.
The MySQL Monitor is now capable of performing failover and switchover of the master. There is also limited capability for rejoining nodes.
Galera monitor now consistently chooses the same node as master.
Galera Monitor can set the preferred donor nodes list.
The configuration can now be altered dynamically, and the changes have persisted.
There is now a monitor for Amazon Aurora clusters.
MySQL Monitor now has a multi-master mode.
MySQL Monitor now has a failover mode.
Named Server Filter now supports wildcards for source option.
Binlog Server can now be configured to encrypt binlog files.
New filters, cache, ccrfilter, insertstream, masking, and maxrows are introduced.
GSSAPI based authentication can be used
Prepared statements are now in the database firewall filtered exactly like non-prepared statements.
The firewall filter can now filter based on function usage.
MaxScale now supports IPv6
The security of MaxAdmin has been improved; Unix domain sockets can be used in the communication with MariaDB MaxScale and the Linux identity can be used for authorization.
MariaDB MaxScale can in real time make binlog events available as raw AVRO or as JSON objects (beta level functionality).
.
RabbitMQ logging filter
Schema Sharding router
Added option to use high precision timestamps in logging.
Readwritesplit router now returns the master server's response.
New readwritesplit router option added. It is now possible to control the amount of memory readwritesplit sessions will consume by limiting the amount of session modifying statements they can execute.
Minimum required CMake version is now 2.8.12 for package building.
Session idle timeout added for services. More details can be found in the configuration guide.
Monitor API is updated to 2.0.0. Monitors with earlier versions of the API no longer work with this version of MariaDB MaxScale.
MariaDB MaxScale now requires libcurl and libcurl development headers.
Nagios plugins added.
Notification service added.
Readconnrouter has a new "running" router_option. This allows it to use any running server as a valid backend server.
Database names can be stripped of escape characters with the strip_db_esc service parameter.