Review the official release notes for MariaDB MaxScale 25.01. This page details new features, bug fixes, functional changes, and deprecated components to ensure a smooth upgrade and deployment.
Release 24.02.0 is a Beta release.
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.
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.
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. SeeMariaDB 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. Seeadmin_readonly_hosts andadmin_readwrite_hosts
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. SeeMariaDB Monitor documentation
for more information.
The gtid 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 Limitations document.
RPM and Debian packages are provided for the supported Linux distributions.
Packages can be downloaded here.
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 here.
This page is licensed: CC BY-SA / Gnu FDL
Release 24.02.1 is a GA release.
This document describes the changes in release 24.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 theupgrading document for this MaxScale version.
For any problems you encounter, please consider submitting a bug report on our Jira.
CVE-2023-1667 Fixed by MXS-5011 Upgrade libssh to 0.10.6
CVE-2023-2283 Fixed by MXS-5011 Upgrade libssh to 0.10.6
CVE-2023-48795 Fixed by MXS-5011 Upgrade libssh to 0.10.6
CVE-2023-6004 Fixed by MXS-5011 Upgrade libssh to 0.10.6
CVE-2023-6918 Fixed by MXS-5011 Upgrade libssh to 0.10.6
MXS-4917 Add disk_space_ok option to master_conditions and slave_conditions
MXS-5035 Setting a path argument to empty reads uninitialized memory
MXS-5034 REST-API TLS keys are not validated at runtime
MXS-5033 MaxScale should prevent incompatible TLS certificates from being configured
MXS-5031 enforce_read_only_slaves can set master to read_only
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.
Packages can be downloaded here.
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 here.
This page is licensed: CC BY-SA / Gnu FDL
Release 24.02.2 is a GA release.
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 theupgrading document for this MaxScale version.
For any problems you encounter, please consider submitting a bug report on our Jira.
MXS-5067 Add "enforce_read_only_servers" feature to MariaDB Monitor
MXS-5106 Server version checks are overly pessimistic
MXS-5104 Connection busy error occurs when connecting to a listener in the Query Editor
MXS-5101 MariaDB Monitor can kill connections from other monitors during switchover
MXS-5095 Master Stickiness state is not documented
MXS-5094 Stacktraces fail to be generated when MaxScale is run from the terminal
MXS-5093 SQL API does not return binary data in resultsets
MXS-5091 admin_audit file name does not use log_dir value
MXS-5090 ability to setup .secrets file location
MXS-5085 max_slave_connections=0 may create slave connections after a switchover
MXS-5083 ssl_version in MaxScale and tls_version in MariaDB behave differently
MXS-5082 Password encryption format change in 2.5 is not documented very well
MXS-5081 The values of ssl_version in MaxScale and tls_version in MariaDB accept different values
MXS-5074 Warning about missing slashes around regular expressions is confusing
MXS-5068 users_refresh_time=0s does not work as documented
MXS-5063 Maxscale crash - "terminate called after throwing an instance of 'std::bad_alloc'"
MXS-5051 cmake does not check for unixodbc-dev
MXS-5048 Problem in hostname matching when using regex (%) for user authentication
MXS-5039 cooperative_monitoring_locks can leave stale locks on a server if network breaks
MXS-5038 Maxscale key limitations
MXS-5023 kill user and transaction_replay don't play well together in Galera cluster
MXS-5021 gdb-stacktrace is incorrectly presented as a debug option
MXS-4964 Simple sharding tutorial is out of date
MXS-4902 MariaDB Monitor command reset-replication can be started on a secondary MaxScale
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.
Packages can be downloaded here.
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 here.
This page is licensed: CC BY-SA / Gnu FDL
Release 24.02.3 is a GA release.
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 theupgrading document for this MaxScale version.
For any problems you encounter, please consider submitting a bug report on our Jira.
MXS-5234 webpack warns about yargs
MXS-5232 Large batches of session commands may leave sessions alive for a long time
MXS-5231 Connections to servers in maintenance are sometimes not discarded
MXS-5227 MaxScale does not drop supplementary groups if --user is used
MXS-5226 LICENSE.TXT is a dangling symlink in RPMs
MXS-5213 Erroneous "Cluster gtid domain is unknown" error message during failover
MXS-5209 Reads with max_slave_connections=0 after a switchover do not discard stale connections
MXS-5206 Readwritesplit does not drop connections to severely lagging servers
MXS-5200 CMake 3.28.3 warnings
MXS-5198 Default logrotate config in .deb / docu missing params
MXS-5196 /maxscale/logs/data may return no data if maxlog=0 and syslog=1
MXS-5193 Multi-statement commands may end up being stored in the session command history
MXS-5191 Two cache filters in same service causes errors on session creation
MXS-5190 dotnet EntityFrameworkCore generates insert queries that are getting routed to all nodes as session write
MXS-5179 Active schema is not highlighted in the schema tree explorer
MXS-5171 MaxScale does not have time to open the file during rotation for a new binlog
MXS-5165 MariaDB Monitor rebuild server may try to chown "/var/lib/mysql/" instead of just "/var/lib/mysql"
MXS-5162 Post reboot binlog router entered stuck state
MXS-5160 postinst script prints output while installing
MXS-5159 MaxScale does not use remote address sent in proxy header from client for authenticating the client
MXS-5146 23.08.6 build ppc64le fails
MXS-5135 The GUI should clear all http readonly cookies
MXS-5133 Memory leak in namedserverfilter
MXS-5132 Inbound proxy protocol does not generate the correct error if proxy_protocol_network is not defined
MXS-5131 comment filter uses the wrong module name
MXS-5129 Cache may delete values from LRU but not from storage
MXS-5128 Failed patching passive parameter value
MXS-5127 DEALLOCATE PREPARE is not routed to all nodes
MXS-5126 Segfault in cache filter with default configuration
MXS-5125 Executing identical prepared statements may lose one of them on reconnection
MXS-5121 MaxScale detects wrong server character set
MXS-5109 A logout endpoint for the GUI to clear all http readonly cookies
MXS-4605 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 Limitations document.
RPM and Debian packages are provided for the supported Linux distributions.
Packages can be downloaded here.
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 here.
This page is licensed: CC BY-SA / Gnu FDL
Release 24.02.4 is a GA release.
This document describes the changes in release 24.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 theupgrading document for this MaxScale version.
For any problems you encounter, please consider submitting a bug report on our Jira.
CVE-2023-0437 Fixed by MXS-5400 Upgrade MongoC library to 1.27.5
CVE-2024-7553 Fixed by MXS-5400 Upgrade MongoC library to 1.27.5
MXS-5214 servers_no_promotion should prevent a server from being promoted due to replication change
MXS-5177 Introduce a new core_file variable in MaxScale
MXS-5403 Debug assertion on very large binary protocol prepared statements
MXS-5402 Monitor connections do not check SSL certificate host even when ssl_verify_peer_host is enabled for the server
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()
MXS-5384 maxscale version 24 auth_all_servers not picking up users on replicas
MXS-5383 Alter table editor failed to assign table's collation value
MXS-5378 Nested listener parameters depend on protocol being defined
MXS-5377 Debug assert if backend fails during multi-packet query
MXS-5374 Kafkaimporter doesn't work with MariaDB 11
MXS-5372 timeout in kafkacdc is not a duration type
MXS-5366 Certain special characters in the maxscale user causes async-rebuild-server to fail
MXS-5364 Allow monitor ssh-parameters to be modified at runtime
MXS-5363 GDB stacktraces may hang
MXS-5361 Query editor: Column visibility filter shows wrong checkboxe values after search
MXS-5359 Transaction replay may deadlock with switchover
MXS-5357 Improve MariaDB Monitor documentation on auto_failover and auto_rejoin
MXS-5356 Readwritesplit master_reconnection is incompatible with GET_LOCK
MXS-5355 Switchover may cause two transaction replays to be started
MXS-5351 XA ROLLBACK is not treated as a rollback in MaxScale
MXS-5350 XA END is treated as the transaction commit instead of XA PREPARE
MXS-5344 Kafkaimporter constraint makes it difficult to use with kafkacdc
MXS-5343 Kafkacdc does not mention row-based replication as a requirement
MXS-5341 User account manager hangs on shutdown
MXS-5339 Slow servers may cause OOM situations if prepared statements are used
MXS-5338 Maxscale Admin Audit file should include ip address or host of calling session
MXS-5315 maxctrl destroy session takes only one ID as argument
MXS-5307 MaxScale kafkacdc logs "notice : Started replicating from [x.x.x.x]:3306 at GTID 'N-N-N' at every timeout/reconnection
MXS-5302 Prepared statements should never be removed from session command history
MXS-5298 Kafkacdc always reads last GTID from Kafka on startup
MXS-5296 New entity table is added without default collation
MXS-5273 The --config-check fails if /var/cache/maxscale cannot be read
MXS-5272 Monitor does not show broken external replication in "maxctrl list servers"
MXS-5269 Unexpected response after failed session command
MXS-5268 Read-only error during read-write transaction should trigger transaction replay
MXS-5264 MaxScale installs scripts with non-standard file permissions
MXS-5263 Valgrind reports read from uninitialized GWBUF for ccrfilter
MXS-5259 Retrying of reads on the current primary unnecessarily requires delayed_retry
MXS-5258 delayed_retry should not retry interrupted writes
MXS-5256 SET statements multiple values are not parsed correctly
MXS-5248 Debug assertion due to non-existent dcall ID
MXS-5247 Remove obsolete prelink script
MXS-5245 MaxCtrl does not accept dot notation for nested parameters
MXS-5239 Listener with ssl=false allows user accounts created with REQUIRE SSL to log in
MXS-5236 wsrep_desync behavior is undocumented
MXS-5229 Master Stickiness status not displayed correctly with use_priority
MXS-5218 Binlgorouter purge
MXS-5178 Replicas after maxscale binlog don't get updates
MXS-4933 Using targets=...
in maxctrl create service
should be allowed
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.
Packages can be downloaded here.
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 here.
This page is licensed: CC BY-SA / Gnu FDL
WEBINAR
New innovations in MaxScale 25.01 and Enterprise Platform
Release 25.01.1 is a GA release.
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 our Jira.
If MaxScale is running in a container, it will adapt to amount of resources (CPUs and memory) available in the container. See threads and query_classifier_cache_size for more information.
NoSQL 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 Diff for more information.
A number of components using which a live workload can be captured and later replayed. Please see Wcar 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 monitor documentation for more information.
Enabled REST-API TLS ciphers can be tuned with the global settingadmin_ssl_cipher.
The newtrace_file_dir andtrace_file_size 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 enablinglog_info 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.
NoSQL now implements the commands needed byMongoDB 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 newrouted_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 monitor documentation 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 newhost_cache_size
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. Seemonitor documentation for more information.
NoSQL now implements the commandaggregate and provides a number of aggregation pipe linestages andoperators.
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
MXS-4370 Auto expand active schema node
MXS-4849 Export the visualized configuration graph
MXS-4886 Query Editor: Add UI for creating and altering object
MXS-5228 Visualize active_operations
These are bug-fixes, which are not present in MaxScale 24.02.4, the most recent MaxScale maintenance release.
MXS-4785 KafkaCDC JSON conversion is taking most of the CPU time
MXS-5201 SystemD complains about legacy PID file paths
MXS-5246 Kafkacdc may produce invalid JSON
MXS-5314 Resultset table not fully expanded for inactive query tab
MXS-5332 The /var/lib/maxscale/maxscale.cnf.d should be a part of the packages
MXS-5382 Errors due to max_connections being exceeded are always fatal errors
MXS-5395 Kafkacdc errors for wrong GTID positions are not clear
MXS-5397 NVL and NVL2 are not detected as builtin functions outside of sql_mode=ORACLE
MXS-5401 absolute path to maxctrl.js in binary tarball bin/maxscale script
MXS-5408 rebuild-server does not work with MariaDB 11.4
MXS-5409 list session in GUI shows wrong amount of sessions
MXS-5415 retry_failed_reads is not affected by delayed_retry_timeout
MXS-5419 Duration types that only take seconds return ms as units instead of s
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.
Packages can be downloaded here.
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 here.
This page is licensed: CC BY-SA / Gnu FDL
WEBINAR
New innovations in MaxScale 25.01 and Enterprise Platform
Release 25.01.2 is a GA release.
This document describes the changes in release 25.01.2, when compared to the previous release in the same series.
If you are upgrading from an older major version of MaxScale, please read theupgrading document for this MaxScale version.
For any problems you encounter, please consider submitting a bug report on our Jira.
CVE-2023-39410 Fixed by MXS-5454 Update avro-c to 1.11.4
MXS-5542 kafkacdc commits offsets when it probes GTIDs from Kafka
MXS-5541 Logs Archive page doesn't show useful API error
MXS-5535 Not all parameters are shown when creating a new object in the GUI
MXS-5534 maxpostprocess and maxvisualize do not work when used from a binary tarball
MXS-5533 Remove session_trace parameter from services section
MXS-5532 Diff does not detect anomalous configuration
MXS-5531 Binary tarballs include experimental modules
MXS-5530 Default value of wait_timeout should be the same as in MariaDB
MXS-5529 Session commands with max_slave_connections=0 after switchover do not discard stale connections
MXS-5528 Diff router is not compatible with config-sync
MXS-5527 The "INSERT INTO...RETURNING" syntax breaks causal_reads
MXS-5522 config sync does not ignore port for listeners
MXS-5521 Crash in diff router
MXS-5520 config_sync_password infinitely doubles after maxscale restart & alter command
MXS-5519 Documentation regarding mixing of cooperative_monitoring_locks and passive is unclear
MXS-5518 Documentation of switchover-force lacks warnings
MXS-5513 Config Wizard page is accessible by basic
user
MXS-5511 The Contact view in the GUI has outdated information
MXS-5510 Upgrading to 25.01.1 causes systemd service files to be removed
MXS-5509 WCAR visualization is not included in the package
MXS-5508 Relationship selections auto-cleared when creating a new monitor object
MXS-5507 readwritesplit enables multi-statements regardless of the state of causal_reads
MXS-5505 Revert 60400ee256 MXS-4685: Seek GTIDs incrementally
MXS-5493 Cluster tree is not visualized accurately
MXS-5492 idle_session_pool_time=0s does not fairly share connections
MXS-5490 Address field unexpectedly auto-truncates on the GUI dashboard
MXS-5488 Need Documentation updates for Maxscale install recommendation
MXS-5485 Reads are not retried if connection creation fails due to sub-service failure
MXS-5484 Binlogrouter multidomain support broken in 24.02
MXS-5481 Galera Monitor does not log an error if "SHOW SLAVE STATUS" fails
MXS-5480 disable_sescmd_history=true causes a use-after-free
MXS-5476 "maxctrl alter monitor MyMonitor auto_failover=true" fails
MXS-5471 GUI reference doc links are broken
MXS-5468 use-after-free when stopping capture
MXS-5467 Parallel query execution fails when multiple query tabs are open
MXS-5466 MaxCtrl warnings are very verbose
MXS-5464 Result headers are not fully expanded in the inactive tab when running queries parallelly
MXS-5463 GUI Logs Archive doesn't display latest log on second visit without refresh
MXS-5462 Preserve timestamp when compressing files in Binlogrouter
MXS-5455 Errors during loading of users lack the service name
MXS-5451 GUI tooltip persists on screen after page navigation
MXS-5450 maxctrl list queries fails
MXS-5449 Encrypted passwords cannot be used with maxctrl
MXS-5443 Log message: Unknown prepared statement handler given to MaxScale
MXS-5441 Dropdown inputs in Query Editor table editor are not focusable
MXS-5437 Failed authentication warnings do not mention lack of client-side SSL as the reason of the failure
MXS-5404 The monitor journal file is not discarded aggressively enough.
MXS-5340 ed25519 socket droped when no user_mapping_file
MXS-5314 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 Limitations document.
RPM and Debian packages are provided for the supported Linux distributions.
Packages can be downloaded here.
This page is licensed: CC BY-SA / Gnu FDL