Release 25.01.3 is a GA release. It was released on 2025-06-25.
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.
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 read the upgrading document for this MaxScale version.
For any problems you encounter, please consider submitting a bug report on our Jira.
MXS-5626 Network options for maxvisualize are not documented
MXS-5625 maxpostprocess install failure leaves a corrupt installation
MXS-5618 Maxctrl interactive mode doesn't use --tls-verify-server-cert=false
MXS-5613 The logout screen is shown when accessing the MaxGUI login view.
MXS-5599 Processing of conditional headers is incorrect
MXS-5598 MaxCtrl fails to read large inputs from stdin
MXS-5597 admin_oidc_url is documented to not be dynamic when in fact it is
MXS-5590 REST-API always sends a Connection: close header
MXS-5588 Signal 11 crash when enabling causal reads with Galera
MXS-5584 Diff-router does not decrypt password before stopping replication
MXS-5583 Diff-router should log more information when starting
MXS-5582 Add a Service with a CLUSTER as its target breaks CONFIG SYNC
MXS-5581 Diff-router's behaviour is confusing when it fails to start
MXS-5577 Aborted connection on backend mariadb with persistpool maxscale
MXS-5576 Maxctrl config permission check error message is misleading
MXS-5567 Wrong password in interactive mode is only seen after the first command
MXS-5566 --secretsdir has no default value
MXS-5564 Query Editor default connection type preference is changed unexpectedly
MXS-5563 Using PKCS#1 private key in the REST-API results in cryptic errors
MXS-5556 Trailing parts of large session command are not routed correctly
MXS-5544 Prepared statements fail through schemarouter for Columnstore
MXS-5525 Masking with functions uses wrong rule settings
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: Copyright © 2025 MariaDB. All rights reserved.
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 the upgrading 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: Copyright © 2025 MariaDB. All rights reserved.
Release 25.01.1 is a GA release. It was 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 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 setting admin_ssl_cipher.
The new trace_file_dir and trace_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 enabling log_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 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 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 new host_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. See monitor documentation for more information.
NoSQL now implements the command aggregate and provides a number of aggregation pipe line stages and operators.
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: Copyright © 2025 MariaDB. All rights reserved.
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 MXS-1350 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.
SET autocommit=0;
XA START 'MyXA';
INSERT INTO test.t1 VALUES(1);
XA END 'MyXA';
XA PREPARE 'MyXA';
XA COMMIT 'MyXA';
SET autocommit=1;
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:
set autocommit=1
PREPARE hide_autocommit FROM "set autocommit=0"
EXECUTE hide_autocommit
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>
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.
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.
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.
CVE-2022-1586 Fixed by MXS-4806 Update pcre2 to 10.42
CVE-2022-1587 Fixed by MXS-4806 Update pcre2 to 10.42
CVE-2022-41409 Fixed by MXS-4806 Update pcre2 to 10.42
CVE-2017-7186 Fixed by MXS-4804 Update pcre2 to 10.36
CVE-2017-8399 Fixed by MXS-4804 Update pcre2 to 10.36
CVE-2017-8786 Fixed by MXS-4804 Update pcre2 to 10.36
CVE-2020-7105 Fixed by MXS-4757 Update libhiredis to 1.0.2.
CVE-2023-27371 Fixed by MXS-4751 Update libmicrohttpd to version 0.9.76
MXS-4807 MaxScale does not always report the OS version correctly
MXS-4756 GUI caching issue
MXS-4749 log_throttling should be disabled if log_info is on
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
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 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.
Release 2.5.28 is a GA release.
Released: 21 Aug 2023
This document describes the changes in release 2.5.28, 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.
MXS-4722 Case-sensitiveness of enumerations is not documented
MXS-4721 Galeramon does not update replication lag of replicating servers
MXS-4720 Implement an option to switch to the old "ping" behaviour in MaxScale
MXS-4719 Connection init sql file execution can hang
MXS-4714 qc_sqlite does not properly parse a RENAME statement
MXS-4701 GTID update may block the REST-API
MXS-4700 Binlogrouter treats GTID sequences as 32-bit integers
MXS-4696 Readwritesplit does not detect unrecoverable situations
MXS-4695 Binlogrouter always opens a new binlog on startup
MXS-4691 Binlogrouter cannot write binlog files larger than 4GiB
MXS-4690 Binlogrouter runs out of memory on very large transactions
MXS-4684 Detect ALTER EVENT failure on MariaDB 11.0
MXS-4681 Encrypted passwords are persisted in plaintext
MXS-4677 MaxScale BinlogRouter skips large transactions causing data Inconsistency on attached slave
MXS-4675 Switchover fails with 'Unknown thread id' error
MXS-4672 Document grants needed for MariaDB 11.1
MXS-4664 xpandmon diagnostics are not useful
MXS-4613 binlogrouter shows MaxScale's binary log coordinates in SHOW SLAVE STATUS
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 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.
Release 2.5.27 is a GA release.
Released: 27 Jul 2023
This document describes the changes in release 2.5.27, 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.
MXS-4541 Provide a way to show details about all supported MaxScale modules via REST API and/or MaxCtrl
MXS-4676 REST-API documentation is wrong about which server parameters can be modified
MXS-4670 The fact that readconnroute doesn't block writes with router_options=slave is not documented
MXS-4665 Listener creation error is misleading
MXS-4659 Cache filter hangs if statement consists of multiple packets.
MXS-4657 Add human readable message text to API errors like 404
MXS-4656 Setting session_track_trx_state=true leads to OOM kiled.
MXS-4642 Document that the Xpand service-user requires "show databases" privilege
MXS-4617 expire_log_duration not working
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 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.
Release 2.5.26 is a GA release.
Released: 23 May 2023
This document describes the changes in release 2.5.26, 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.
MXS-4615 Partially executed multi-result queries are not treated as partial results
MXS-4614 Query classifier does not recognize BEGIN NOT ATOMIC ... END
MXS-4611 Readwritesplit prefers idle primary over busy replicas
MXS-4586 transaction_replay_max_size default is 1GiB instead of 1MiB
MXS-4560 Not all passwords were obfuscated in the maxctrl report
MXS-4550 Regular expression documentation is inaccurate and lacking
MXS-4502 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 Limitations document.
RPM and Debian packages are provided for supported the 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.
Release 2.5.25 is a GA release.
Released: 30 Mar 2023
This document describes the changes in release 2.5.25, 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.
MXS-4566 RHEL8 Packages for 23.02.1 and 22.08.5
MXS-4557 Binlogrouter breaks if event size exceeds INT_MAX
MXS-4556 Maxscale ignores lower_case_table_names=1 on config file
MXS-4548 The statement canonicalizer cannot handle comments within statements
MXS-4524 Wrong server version assumption
MXS-4515 MaxScale leaks sessions if they are closed when writeq throttling is enabled
MXS-4514 skip_name_resolve is not modifiable at runtime
MXS-4510 Uncaught exception in binlogrouter
MXS-4504 IP wildcard values are not permitted in host values while using data masking
MXS-4494 Replication breaks if binlogfilter excludes events
MXS-4489 PHP program reports different collation_connection when connecting via Maxscale
MXS-4476 Memory leak in smartrouter
MXS-4474 MaxScale hangs with warning about "Worker 1 attempted to send a message to worker 1"
MXS-4473 Hang in smartrouter under heavy load
MXS-4469 Schemarouter routing logic documentation is out of date
MXS-4459 Improve match/exclude documentation for avrorouter and kafkacdc
MXS-4197 pinloki_start_stop is unstable
MXS-3972 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 Limitations document.
RPM and Debian packages are provided for supported the 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.
Release 2.5.24 is a GA release.
Released: 4 Jan 2023
This document describes the changes in release 2.5.24, 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.
MXS-4450 6.4 no longer provides full certificate chain in TLS HELLO
MXS-4440 Lost connection to backend server: network error (server1: 104, Connection reset by peer)
MXS-4439 Maxscale is failing with Resource temporarily unavailable errors
MXS-4423 Rebalancing is not always initiated from the affected worker/thread
MXS-4404 Maxscale: KafkaCDC writes to current_gtid.txt causes high disk utilisation.
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 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.
Release 2.5.23 is a GA release.
Released: 28 Nov 2022
This document describes the changes in release 2.5.23, 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.
MXS-4348 Full SASL support is not enabled for kafka modules
MXS-4317 Smartrouter interrupts the wrong query
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 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.
Release 2.5.22 is a GA release.
Released: 11 Oct 2022
This document describes the changes in release 2.5.22, 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.
MXS-4332 REST API reports unknown parameters with warnings and not errors
MXS-4331 Altering servers fails if SSL is enabled
MXS-4321 Error from missing --secure option is not helpful
MXS-4313 MaxCtrl misinterprets some arguments
MXS-4312 REST API accepts empty resource IDs
MXS-4304 MariaDB-Monitor spams log with connection errors if server is both [Maintenance] and [Down]
MXS-4283 Race condition in KILL command processing
MXS-4279 "sub" field not set for JWTs
MXS-4269 UPDATE with user variable modification is treated as a session command
MXS-4240 MXS-4239 readconnroute module routing read queries to inconsistent slave node
MXS-4239 Maxscale shows replication status as [Slave, Running] even when replication credentials are wrong
MXS-4227 MaxCtrl incompatibility with MemoryDenyWriteExecute=true is not documented
MXS-4224 connection_timeout not documented to only take effect on the top level service
MXS-4209 KILL command doesn't work correctly if persistent connections are enabled
MXS-4198 MaxScale fails to validate its own certificate when the chain of trust is unknown to OpenSSL
MXS-4196 Readconnroute load balancing behavior is not well documented
MXS-4156 Update documentation on required monitor privileges
MXS-4148 Log warning if reverse name resolution takes significant time
MXS-4094 Allow empty token when client is replying to AuthSwitchRequest
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 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.
Release 2.5.21 is a GA release.
Released: 8 Jul 2022
This document describes the changes in release 2.5.21, 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.
MXS-2904 Document MaxScale performance tuning
MXS-4194 Reported size for query classifier cache keeps growing
MXS-4181 MaxScale w/SSL doesn't work on FIPS RHEL7
MXS-4166 Filter diagnostics are not shown in maxctrl show filters
MXS-4165 Servers with priority=0 are selected as Master
MXS-4164 Debug assertion when cat session ends
MXS-4160 Maxscale galeramon + max_slave_replication_lag = Could not find valid server for target type TARGET_SLAVE
MXS-4152 Schemarouter performance degrades as the number of tables increases
MXS-4151 Schemarouter duplicate checks are excessively slow
MXS-4146 Xpand MaxScale Tutorial in KB doesn't work
MXS-4141 connection_keepalive=0 causes a memory leak
MXS-4139 connection_keepalive sends pings even if client is idle
MXS-4138 Race condition in binlogrouter
MXS-4134 /etc/maxscale.cnf.d/ is not created by package installation
MXS-4132 router_options=master ignores rank for first server
MXS-4127 MaxCtrl: list services does not include other targets
MXS-4121 MaxCtrl is limited to 2GB of memory
MXS-4120 Avrorouter crash with a SEQUENCE engine table
MXS-4115 Maxscale prints user/pass with CHANGE MASTER command in logfile while failover.
MXS-4110 Schemarouter does not ignore the sys schema
MXS-4100 connection_keepalive=0 causes a memory leak
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 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.
Release 2.5.20 is a GA release.
Released: 10 May 2022
This document describes the changes in release 2.5.20, 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.
MXS-3997 Name threads for better CPU usage view
MXS-3665 Provide more feedback on TLS cipher mismatch
MXS-4110 Schemarouter does not ignore the sys schema
MXS-4109 The /user/inet endpoint fails schema validation
MXS-4103 Binlogrouter doesn't decrypt passwords
MXS-4096 Binlog Routers SHOW SLAVE STATUS does not show SSL information
MXS-4093 User account manager does not detect db-level priv changes
MXS-4092 schemarouter: duplicate tables found, if table differs on upper lower case only
MXS-4086 REST API allows deletion of last user
MXS-4074 Status of boostrap servers not always the same as the status of corresponding runtime servers
MXS-4053 The cache does not handle multi-statements properly.
MXS-4045 Add maxctrl command for dumping the whole REST API output
MXS-4040 Mariadbmon constantly logs errors if event scheduler is disabled
MXS-4039 Debug assert with connection_keepalive and slow server
MXS-4038 maxctrl reload service does not bypass the users refresh rate limit
MXS-4034 Persistent connection pool is not automatically flushed
MXS-4024 CDC protocol logs a notice message for each new connection
MXS-4023 Schema auto-generation is not documented
MXS-4022 Avrorouter doesn't log an error for failed SHOW CREATE TABLE
MXS-4008 Query classifier cache does not properly record all used memory
MXS-4004 Race condition in KILL command execution
MXS-4003 GSSAPI authenticator documentation is out of date
MXS-4002 KILL commands leave no trace in the log
MXS-4001 The Cache filter cannot cope with the Redis server closing the connection
MXS-4000 Binlogrouter creates malformed replication events
MXS-3954 Got below signal 11 error after upgrading maxscale version maxscale 6.2.1
MXS-3945 Sync marker mismatch while reading Avro file
MXS-3931 Check certificates with extendedKeyUsage options set for correct purpose flags
MXS-3808 Improve Rest API performance
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 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.
Release 2.5.19 is a GA release.
Released: 11 Feb 2022
This document describes the changes in release 2.5.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 upgrading document for this MaxScale version.
For any problems you encounter, please consider submitting a bug report on our Jira.
MXS-3989 Rebalancing may cause MaxScale to crash
MXS-3978 Binlog router appends -BinlogRouter to master version string again and again ...
MXS-3973 Session capabilities are not frozen on session startup
MXS-3966 MariaDBMonitor does not log connection error on startup
MXS-3959 Transaction replay doesn't reset transaction on implicit commit
MXS-3958 MaxScale stalls and crashes occasionally
MXS-3949 "transaction" is always parsed as a reserved word
MXS-3947 Read-only transaction behavior is not documented
MXS-3932 Xpand monitor doesn't show full configuration in diagnostic output
MXS-3886 Hang in RoutingWorker::execute_concurrently semaphore.hh:146
MXS-3865 Shutdown bug
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 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.
Release 2.5.18 is a GA release.
Released: 12 Jan 2022
This document describes the changes in release 2.5.18, 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.
MXS-3938 Debug assert in xpandmon
MXS-3934 Linking a service at runtime to an xpandmon doesn't work
MXS-3933 Avro reader client can fail
MXS-3928 MaxScale logs a warning when users are loaded from a Xpand cluster
MXS-3920 Can't connect to MaxScale when schema uses utf8mb4 chars >= U0080
MXS-3897 MaxScale crashes when executing CDC process to kafka
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 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.
Release 2.5.17 is a GA release.
Released: 13 Dec 2021
This document describes the changes in release 2.5.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.
MXS-3885 MaxScale unconditionally loads global options from /etc/maxscale.cnf.d/maxscale.cnf
MXS-3872 test_kafkacdc fails in 2.5
MXS-3871 Kerberos tests are skipped in 2.5
MXS-3870 The pam_authentication_2fa test fails very often
MXS-3858 core dumps from system-tests (meta bug)
MXS-3857 Pinloki initial gtid scan incorrectly reads entire files
MXS-3856 Errors with causal_reads and read-only transactions
MXS-3845 Sending binlog events is inefficient
MXS-3832 Document privileges required for procs_priv system table
MXS-3826 Allow maintenance mode to be set on Galera cluster master
MXS-3824 Allow symbolic link for path to directory /usr/share/maxscale/gui
MXS-3817 The location of the GUI web directory isn't documented
MXS-3816 Queries are not always counted as reads with router_options=slave
MXS-3815 maxscale crash
MXS-3814 maxscale rpl_state is empty
MXS-3810 SQL_MODE parsing sometimes fails
MXS-3809 When MariaDBMonitor acquires lock majority, the log message gives the impression that auto_failover is enabled even when it is not configured
MXS-3801 Unexpected internal state with read-only cursor and result with one row
MXS-3800 Not enough information in server state change messages
MXS-3782 session_track_trx_state set to true causes incorrect routing of SELECT
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 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.
Release 2.5.16 is a GA release.
Released: 12 Oct 2021
This document describes the changes in release 2.5.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.
MXS-3805 Binlogrouter error messages aren't specific enough
MXS-3804 Result size accounting is wrong
MXS-3799 Destroyed monitors are not deleted
MXS-3798 Race condition in service destruction
MXS-3790 Fix luafilter
MXS-3788 Debug assertion with default config and transaction_replay=true
MXS-3779 binlogrouter logs warnings for ignored SQL
MXS-3766 Not able to insert data on Masking enabled table
MXS-3759 Client hangs forever when server failed or restarted
MXS-3756 KILL behavior is not well documented
MXS-3748 Crash when unified log cannot be created
MXS-3747 Empty strings aren't serialized as quoted strings
MXS-3746 type=listener is added twice in listener serialization
MXS-3738 maxctrl show dbusers does nothing
MXS-3734 show binlog error msg is incorrect
MXS-3728 Binlogrouter crashes when GTID is not found
MXS-3718 MaxScale killed by watchdog timeout
MXS-3657 CCR Filter ignores PCRE2 option ignorecase
MXS-3580 Avrorouter should store full GTID coordinates
MXS-3331 Could not bind connecting socket to local address
MXS-3298 DNS server failure crashes Maxscale
MXS-3254 Monitor failover fails
MXS-3063 error : Sync marker mismatch.
MXS-3060 Failed to load current GTID
MXS-3050 Setting Up MaxScale documentation should include instructions on how to configure the MaxScale grants in ClustrixDB
MXS-3049 error : [avrorouter] Reading Avro file failed with error 'MAXAVRO_ERR_VALUE_OVERFLOW'.
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 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.
Release 2.5.15 is a GA release.
Released: 18 Aug 2021
This document describes the changes in release 2.5.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 upgrading document for this MaxScale version.
For any problems you encounter, please consider submitting a bug report on our Jira.
MXS-3719 Readwritesplit logs wrong warning when replication lag is not available
MXS-3704 MaxScale always advertises the SESSION_TRACK capability even with servers that don't support it (XPand)
MXS-3703 Requirement to use cluster with xpandmon is not documented
MXS-3698 "maxctrl classify" fails with an exception
MXS-3695 Causal Consistency with MaxScale's Read/Write Split Router issue
MXS-3694 MXS - crash when cache is used with invalidate and hard_ttl
MXS-3692 Improve host pattern error message
MXS-3679 Mismatching user or source prevents session creation
MXS-3674 Deadlock in binlogrouter
MXS-3673 Draining servers is not documented
MXS-3550 write statistic is incremented for slaves
MXS-3532 Do not allow Galera master to be set to Drain
MXS-3508 causal_reads=global results in missing data reads
MXS-3478 admin_host missed on the static configuration parameters list
MXS-3474 Strange persistent pool connection stats
MXS-3299 Parse error when connecting (through binlog router) from mysql-connector-j
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 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.
Release 2.5.14 is a GA release.
Released: 21 Jul 2021
This document describes the changes in release 2.5.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 upgrading document for this MaxScale version.
For any problems you encounter, please consider submitting a bug report on our Jira.
MXS-3650 Maxscale crashes while logging to GUI
MXS-3623 Race condition in persistent connections
MXS-3622 Backend connection isn't closed right after authentication failure
MXS-3617 writeq throttling can lose response packets
MXS-3615 Clarify session_track_system_variables requirement for readwritesplit's causal_reads parameter
MXS-3595 Listener subresource returns wrong response on service-listener mismatch
MXS-3590 MaxCtrl documentation for the reload command is broken
MXS-3588 BULK pipelining error
MXS-3578 Unexpected result state when using connection_keepalive
MXS-3574 Output examples in the REST API documentation are out of date
MXS-2890 5.5.5 prefix is always added even with version_string=8.0.16
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 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.
Release 2.5.13 is a GA release.
Released: 4 Jun 2021
This document describes the changes in release 2.5.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 upgrading document for this MaxScale version.
For any problems you encounter, please consider submitting a bug report on our Jira.
MXS-3589 qc_sqlite handles current_timestamp etc. explicitly
MXS-3586 Maxscale tries to execute write statement on slave
MXS-3585 query classifier crashes after upgrade from 2.5.11 to 2.5.12
MXS-3582 [readwritesplit] Failed to execute session command
MXS-3581 Replicator component doesn't check node state for every operation
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 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.
NOTE After 2.5.12 was released, a serious regression was noticed. Do not use MaxScale 2.5.12, but install or upgrade to MaxScale 2.5.13 that contains a fix for the regression.
Release 2.5.12 is a GA release.
Released: 26 May 2021
This document describes the changes in release 2.5.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 upgrading document for this MaxScale version.
For any problems you encounter, please consider submitting a bug report on our Jira.
MXS-3566 EXPLAIN leaks memory
MXS-3565 COM_STMT_EXECUTE target selection is too restrictive when no metadata is provided
MXS-3548 Plugin name comparison is case-sensitive
MXS-3538 Removal of authenticator_options is not documented in upgrade documents
MXS-3536 max_slave_connections=0 doesn't work as expected
MXS-3535 user variable is not collected if it's in join clause
MXS-3533 MaxScale doesn't advertise the SESSION_TRACK capability
MXS-3529 Maxscale is not compatible with the latest cmake 3.20
MXS-3528 Maxscale source repo contains old boost-1.73.0.tar.gz which is not buildable with latest cmake on ARM
MXS-3524 alter syslog is not supported during runtime
MXS-3479 Disabling maxlog doesn't fully prevent it from being written to
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 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.
Release 2.5.11 is a GA release.
Released: 4 May 2021
This document describes the changes in release 2.5.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 upgrading document for this MaxScale version.
For any problems you encounter, please consider submitting a bug report on our Jira.
MXS-3509 Syslog output is not filtered according to current log configuration
MXS-3505 option lazy_connect not fully effective
MXS-3504 Kafkacdc doesn't reconnect on replication error
MXS-3487 Old master connection is left open after transaction migration
MXS-3483 MaxCtrl doesn't strip colors from non-tty output
MXS-3472 Transaction Replay: transactions not replayed after Xpand group change
MXS-3471 After "clock has been changed to REALTIME" in syslog maxscale crashes
MXS-3468 Read statistics are wrong with master_accept_reads and read-only transactions
MXS-3462 Updates to services don't propagate upwards to other services that use them
MXS-3459 Malformed packet SQL=LOAD DATA LOCAL INFILE... ERROR 2027
MXS-3454 Prepared statement inside trx not tracked with transaction_replay
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 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.
Release 2.5.10 is a GA release.
Released: 25 Mar 2021
This document describes the changes in release 2.5.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 upgrading document for this MaxScale version.
For any problems you encounter, please consider submitting a bug report on our Jira.
MXS-3450 COM_FIELD_LIST is classified as a write
MXS-3449 Maxscale sets MASTER_GTID_WAIT timeout to zero, when causal_reads_timeout is less than 1s
MXS-3448 Unable to disable maxlog
MXS-3445 SET DEFAULT ROLE is not classified as a write
MXS-3436 Packet received out-of-order. Expected 1; got 3
MXS-3433 Monitor does not set session autocommit if it connects to a server first
MXS-3427 The 'INFORMATION_SCHEMA.SESSION_STATUS' feature is disabled; see the documentation for 'show_compatibility_56'
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 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.
Release 2.5.9 is a GA release.
Released: 10 Mar 2021
This document describes the changes in release 2.5.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.
MXS-3428 Regression in max_slave_replication_lag
MXS-3426 MaxScale with SSL in Azure Cloud not working properly
MXS-3419 Token authentication doesn't perform authorization
MXS-3416 causal_reads=global returns an unexpected OK packet
MXS-3409 Need more GRANTs to be documented for connecting to xpand direct using xpandmon
MXS-3404 maxscale write in the slave with function
MXS-3392 Reset implementation on failing prepared statement
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 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.
Release 2.5.8 is a GA release.
Released: 18 Feb 2021
This document describes the changes in release 2.5.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.
MXS-3408 ASAN reports leaks in the query classifier
MXS-3404 maxscale write in the slave with function
MXS-3403 The Cache Filter cannot deal with batched requests
MXS-3400 maxscale crash with memcache on ubuntu 20
MXS-3399 QC heap-buffer-overflow
MXS-3396 Default /etc/maxscale.cnf for MaxScale 2.5 comments direct user to MaxScale 2.4 documents
MXS-3395 Problems with prepared statements with more than 2^16 columns
MXS-3380 MaxScale crash loop with cache filter + Redis
MXS-3366 COM_CHANGE_USER rejected by 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 supported the 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.
Release 2.5.7 is a GA release.
Released: 27 Jan 2021
This document describes the changes in release 2.5.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 upgrading document for this MaxScale version.
For any problems you encounter, please consider submitting a bug report on our Jira.
MXS-3193 Allow the binlog router to replicate from Galera cluster with failover.
MXS-3383 Debug assertion with delayed_retry and master failure
MXS-3374 MaxScale fails to update IP for a existing node that reappears with a IP change
MXS-3370 Asynchronicity of tee filter isn't documented
MXS-3365 Missing match setting in filter(s) results in no match at all
MXS-3360 MaxCtrl option --authenticator-options doesn't work
MXS-3354 Duplicate space interpreted as a command
MXS-3353 Tee filter loses statements if branch target is slower
MXS-3348 KafkaCDC :Failed to read replicated event
MXS-3347 Hint syntax documentation isn't exact
MXS-3346 When using --basedir, mysql/plugin dir needs to be writable
MXS-3342 Persistent connections cause signal 11 when no matching connection is found
MXS-3339 Hang with prepared statement and slow servers
MXS-3337 galeramon queries only status, not variables
MXS-3323 Database grants with wildcards should be matched using LIKE operator
MXS-3318 Parsing error with comment
MXS-3309 The administration tutorial is lacking
MXS-3303 A user with just EXECUTE on PROCEDURE privileges to the database, failing to connect via maxscale with database name mentioned.
MXS-3238 REST API SSL Configuration Vulnerabilities
MXS-3158 Failover/switchover modifies event character set and collation
MXS-2627 Document how to customize MaxScale's systemd unit file
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 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.
Release 2.5.6 is a GA release.
Released: 15 Dec 2020
This document describes the changes in release 2.5.6, when compared to the previous release in the same series.
For any problems you encounter, please consider submitting a bug report on our Jira.
NOTE After the release of 2.5.6 it was noticed that configuring the same server for both the persistent pool (configuration settings persistpoolmax
and persistmaxtime
) and the proxy protocol (configuration setting proxy_protocol
) may in some situations lead to a crash. Using either one is ok. We will release 2.5.7 with a fix for this as soon as possible (January 2021).
MXS-3129 Add Switchover to WebGUI
MXS-3338 Last statement in read-only transaction doesn't trigger transaction replay
MXS-3335 MaxScale 2.5.6 and Xpand Direct connection issue with xpandmon
MXS-3334 Master failure triggers replay of read-only transaction
MXS-3333 Malformed error messages
MXS-3328 Persistent Connections on Maxscale 2.5 seem to break client authentication
MXS-3327 Memcachd/Redis cache storage must be disabled if memcached/redis not reachable
MXS-3326 Host class does not accept all valid domain names.
MXS-3325 Redis cache storage does not accept dashes in server names.
MXS-3316 Redis cache storage must be disabled if Redis not connectible
MXS-3313 MaxScale cache must use timeout when connecting to redis/memcached
MXS-3312 MaxScale not allowing login and sometimes crashes when cache server not available
MXS-3311 routed_packets not updated by readconnroute
MXS-3307 Multiple binlogrouters in the same MaxScale
MXS-3301 MaxScale does not recognize xpand properly
MXS-3295 Layout of classify REST API endpoint stores non-parameter data in parameters object
MXS-3293 Backticks not stripped in USE statements.
MXS-3292 Unable to execute use database
MXS-3283 Scramble should be composed of characters
MXS-3282 Select query inside transactions are routed to slave with session_track_trx_state=true
MXS-3272 maxctrl not prompt directy for the password
MXS-3271 dump_last_statements=on_close doesn't log session ID
MXS-3270 MaxScale 2.5.5 crashes with signal 11
MXS-3264 The event mechanism is not configured.
MXS-3256 Match pinloki initial setup to that of MariaDB server
MXS-3251 Hang on shutdown when executing KILL query
MXS-3248 "error : (1672) Unexpected result state" with connection_keepalive
MXS-3199 KafkaCDC read stream data too slow
MXS-3172 Database grants with escape characters do not work (strip_db_esc)
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 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.
Release 2.5.5 is a GA release.
Released: 21 Oct 2020
This document describes the changes in release 2.5.5, when compared to the previous release in the same series.
For any problems you encounter, please consider submitting a bug report on our Jira.
Now packages are signed by MariaDB Enterprise key. Public key is here MariaDB-Enterprise-GPG-KEY
MXS-3244 Default the binlogrouter master port to 3306 (CHANGE MASTER TO)
MXS-3242 Hang on repeated master disconnection
MXS-3235 Insertstream streams autocommit inserts
MXS-3229 Hang with COM_SET_OPTION
MXS-3223 Monitor re-uses mysql-handle when using extra-port
MXS-3218 Crash with LOAD DATA LOCAL INFILE
MXS-3212 Server SSL configuration cannot be defined at runtime
MXS-3200 Abort due to double free or corruption after "Write to Client DCB ... state DCB_STATE_POLLING failed"
MXS-3198 MariadbMon documentation needs to take 10.5 privilege changes into account
MXS-3157 Write MaxGUI system test
MXS-3142 Misleading error when SSL not used when it is required
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 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.
Release 2.5.4 is a GA release.
Released: 29 Sep 2020
This document describes the changes in release 2.5.4, when compared to the previous release in the same series.
For any problems you encounter, please consider submitting a bug report on our Jira.
MXS-3202 Additional grants not mentioned in upgrading document
MXS-3196 Errors can be returned in wrong order
MXS-3194 Reply with an error if a replica tries to connect with log_file/log_pos
MXS-3191 New binlog router should clearly says that it does not file/pos based options in CHANGE MASTER
MXS-3181 Binlog Router should understand all monitor queries
MXS-3177 Fix download link in documentation
MXS-3176 MaxGUI logs admin user out after dbfwfilter is added to MaxScale config file
MXS-3175 Make pinloki deployment simple and observeable
MXS-3171 PHP 7.2 + PDO - invalid HandShakeResponse
MXS-3167 Access Denied for User Error when Upgrading to 2.5.x and Using Binlogrouter
MXS-3165 cache_inside_transactions vs cache_in_transactions
MXS-3164 Handle AuthSwitchRequest-packet properly in standard auth plugin
MXS-3163 Wrong type for server and global modules
MXS-3160 PLUGIN_AUTH_LENENC_CLIENT_DATA capability not set
MXS-3150 MaxGUI should redirect to 404 page if id of details route doesn't exist
MXS-3149 Monitor should remove [Master] when starting swithover
MXS-3148 Binlogrouter doesn't accept trailing semicolons
MXS-3147 Pinloki should not create logically empty binlog files.
MXS-3143 FOUND_ROWS() not routed to previous target
MXS-3140 Deleting a resource causes navigating to login page.
MXS-3130 Documentation for the source parameter is inaccurate
MXS-3110 bad handshake error in maxscale 2.5.1
MXS-2680 Monitor type not shown in show monitors
MXS-1998 Shard map refresh is not logged on any level
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 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.
Release 2.5.2 is a GA release.
Released: 14 Aug 2020
This document describes the changes in release 2.5.2, when compared to the previous release in the same series.
For any problems you encounter, please consider submitting a bug report on our Jira.
MXS-3099 Add AddNode/RemoveNode to the Columnstore Monitor
MXS-2383 Support PAM authentications involving more than simple password exchanges
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 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.
Release 2.5.1 is a GA release.
Released: 16 Jul 2020
This document describes the changes in release 2.5.1, when compared to the previous release in the same series.
For any problems you encounter, please consider submitting a bug report on our Jira.
MXS-3015 Sort attribute lists returned by maxctrl alphabetically
MaxGUI can now be accessed in a testing mode without configuring SSL. For more information, please refer to the MaxGUI document.
MXS-3072 Failed to query server 'server1' for user account info. Wrong number of resultsets to multiquery
MXS-3052 kafkaCDC how to set GTID
MXS-3041 QC bug with keyword handler
MXS-2996 Query Type of 'SELECT ... LOCK IN SHARE MODE;'
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 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.
Release 2.5.0 is a Beta release.
Released: 18 Jun 2020
This document describes the changes in release 2.5.0, when compared to release 2.4.
For any problems you encounter, please consider submitting a bug report at Jira.
Network throttling (writeq_high_water and writeq_low_water) is now on by default. This will prevent MaxScale from running out of memory when large database dumps are restored through it. This change will not affect performance in any significant way.
Servers with duplicate network details (address and port) are treated as a configuration error. There should exist only one server object in MaxScale for each actual database.
Server parameters are now checked and unknown parameters are treated as a configuration error. This can cause old configurations with unknown parameters to fail.
Servers without a monitor now start in the Down state instead of the Running state. This means that servers without a monitor need to have their state set manually.
connection_keepalive
Previously this feature was a readwritesplit feature. In MaxScale 2.5.0 it has been converted into a core MaxScale feature and it can be used with all routers. In addition to this, the keepalive mechanism now also keeps completely idle connections alive (MXS-2505).
The default timeout values for user loading have been changed.
auth_connect_timeout
changed from 3 to 10 second
auth_read_timeout
deprecated and ignored
auth_write_timeout
deprecated and ignored
In the case of a regular MariaDB cluster (monitored by the MariaDB monitor), it is no longer possible to set the master server to maintenance or draining mode, but a switchover must be performed first.
The settings detect_stale_master
, detect_standalone_master
and detect_stale_slave
are replaced by the more flexible master_conditions
and slave_conditions
. The old settings may still be used, but will be removed in a later version.
The encrypted passwords feature has been updated to be more secure. Users are recommended to generate a new encryption key and re-encrypt their passwords using the maxkeys
and maxpasswd
utilities. Old passwords still work.
Several changes, see here for more details.
Listeners are now a separate resource from services. The old listeners entry point is deprecated and its use is discouraged.
Use maxctrl or maxgui instead.
As maxadmin, that could be used over a unix domain socket, has been removed it is no longer possible to enable/disable unix users as MaxScale administrators.
The following deprecated parameters have been removed.
non_blocking_polls
poll_sleep
log_trace
and log_messages
that were synonyms for log_info
and log_notice
respectively.
The maxinfo-router and the httpd-protocol have been removed.
Server parameters protocol
and authenticator
have been deprecated. Any definitions are ignored.
The use of percentage values in max_slave_connections
has been deprecated.
The timeout to maxctrl can now be specified using duration suffixes, e.g. --timeout 5s
.
The new targets
parameter for services can be used to list both servers and other services as routing targets. This allows complex setups to be used where one service routes the query to another service.
MariaDB connection attributes are now forwarded to the backend servers.
MaxGUI is a new browser based configuration and management tool for MaxScale that complements the command line tool maxctrl
.
Please see the documentation for more information.
Invalidation
The MaxScale cache is now capable of performing invalidation of cache entries. See the documentation for more information.
New Cache Storage Modules
The following storage modules have been added: storage_memcached storage_redis
When either of these are used, the cache can be shared between two MaxScale instances.
User specific cache
It is now possible to specify that each user should have a cache of his/her own. Having a user-specific cache ensures that it is impossible for a user to obtain access to data he/she should not have access to, something which may be possible if a shared cache is used, as the cache filter is not aware of grants. Please see the documentation for details.
If the load of the threads of MaxScale differs by a certain amount, MaxScale is now capable of moving sessions from one thread to another so that all threads are evenly utilized. Please refer to rebalance_period and rebalance_threshold for more information.
The Columnstore monitor is now capable of monitoring Columnstore versions 1.0, 1.2 and 1.5. In addition, some cluster management operations are available for Columnstore 1.5. Please see the documentation for details.
MariaDB-Monitor supports cooperative monitoring. See cooperative monitoring for more information.
multiple authenticators per listener
connection_init_sql_file
mysql_clear_password support for PAM authenticator
See configuration guide and pam plugin documentation for more details.
Added support for peer hostname verification in connections that use TLS.
Added support for certificate revocation lists
The causal reads feature has been extended with a global mode, which uses latest known GTID and waits for slave to replicate, and a fast mode, which routes queries to the master if no up-to-date slave is found.
The router now supports setups where multiple servers contain the same database or table. This allows a more resilient setup where a failure of one shard doesn't cause a complete outage.
The credentials the clients use to connect to the schemarouter no longer need to exist on all of the databases used by the service. This reduces the amount of access required by the clients that use the schemarouter.
The mirror
router is a new router designed for data consistency and database behavior verification during system upgrades. It can export the measured data as JSON into either a file or into a Kafka broker.
New module that replicates data changes in a MariaDB master into a Kafka broker formatted as JSON objects. Refer to the KafkaCDC documentation for more details.
Token authentication via JWT.
Sparse fieldsets allow reduced network overhead for requests.
Result filtering allows retrieval of a subset of a resource collection.
REST API resources now use the SHA1 of the returned result as the object ETag. This fixes the problem where the ETag was not updated even when the result changed due to internal MaxScale processes.
Module parameter types are now described for the server and core MaxScale objects.
Listeners are now a separate resource from services. The old listeners entry point is deprecated and its use is discouraged.
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 Linux distributions supported by MariaDB Enterprise.
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 X.Y.Z. Further, master always refers to the latest released non-beta version.
The source code is available here.
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
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 (MySQLAuth)
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.
Follow the MXS-1350 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.
SET autocommit=0;
XA START 'MyXA';
INSERT INTO test.t1 VALUES(1);
XA END 'MyXA';
XA PREPARE 'MyXA';
XA COMMIT 'MyXA';
SET autocommit=1;
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:
set autocommit=1
PREPARE hide_autocommit FROM "set autocommit=0"
EXECUTE hide_autocommit
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.
MariaDB MaxScale does not support KILL QUERY ID <query_id>
type statements. If a query by a query ID is to be killed, it needs to be done directly on the backend databases.
The KILL
commands are executed asynchronously and the results are ignored. Due to this, they will always appear to succeed even if the user is lacking the permissions.
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.
Release 2.4.19 is a GA release.
Released: 10 Jan 2022
This document describes the changes in release 2.4.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 upgrading document for this MaxScale version.
For any problems you encounter, please consider submitting a bug report on our Jira.
MXS-3892 schema router flood information schemas with queries
MXS-3885 MaxScale unconditionally loads global options from /etc/maxscale.cnf.d/maxscale.cnf
MXS-3879 MaxScale doesn't load maxscale section in persistent file after restart
MXS-3873 Crash in qc_sqlite
MXS-3617 writeq throttling can lose response packets
MXS-3585 query classifier crashes after upgrade from 2.5.11 to 2.5.12
MXS-3310 Amend documentation on keytab file location to mention the possibility to use the environment variable KRB5_KTNAME
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 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.
Release 2.4.18 is a GA release.
Released: 2 Nov 2021
This document describes the changes in release 2.4.18, 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.
MXS-3800 Not enough information in server state change messages
MXS-3609 Some statistics use 32-bit integers
MXS-3582 [readwritesplit] Failed to execute session command
MXS-3538 Removal of authenticator_options is not documented in upgrade documents
MXS-3535 user variable is not collected if it's in join clause
MXS-3533 MaxScale doesn't advertise the SESSION_TRACK capability
MXS-3529 Maxscale is not compatible with the latest cmake 3.20
MXS-3487 Old master connection is left open after transaction migration
MXS-3415 --export-config uses default file permissions
MXS-3114 Listener creation via REST API with sockets doesn't work
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 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.
Release 2.4.17 is a GA release.
Released: 8 Mar 2021
This document describes the changes in release 2.4.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.
MXS-3425 Crash with LOAD DATA LOCAL INFILE and retain_last_statements
MXS-3424 retain_last_statements cannot be disabled at runtime
MXS-3404 maxscale write in the slave with function
MXS-3392 Reset implementation on failing prepared statement
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 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.
Release 2.4.16 is a GA release.
Released: 17 Feb 2021
This document describes the changes in release 2.4.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.
MXS-3408 ASAN reports leaks in the query classifier
MXS-3404 maxscale write in the slave with function
MXS-3399 QC heap-buffer-overflow
MXS-3345 --basedir overrides more specific settings like --connector_plugindir
MXS-3330 Fatal: MaxScale 2.4.14 received fatal signal 11
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 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.
Release 2.4.15 is a GA release.
Released: 21 Jan 2021
This document describes the changes in release 2.4.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 upgrading document for this MaxScale version.
For any problems you encounter, please consider submitting a bug report on our Jira.
MXS-3360 MaxCtrl option --authenticator-options doesn't work
MXS-3346 When using --basedir, mysql/plugin dir needs to be writable
MXS-3337 galeramon queries only status, not variables
MXS-3326 Host class does not accept all valid domain names.
MXS-3325 Redis cache storage does not accept dashes in server names.
MXS-3324 Internal connections should explicitly set the autocommit state.
MXS-3318 Parsing error with comment
MXS-3314 Lack of prepared statement support for causal_reads is not documented
MXS-3158 Failover/switchover modifies event character set and collation
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 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.
Release 2.4.14 is a GA release.
Released: 25 Nov 2020
This document describes the changes in release 2.4.14, when compared to the previous release in the same series.
For any problems you encounter, please consider submitting a bug report on our Jira.
NOTE 2.4.14 is the last release that is made available for RHEL6, which reaches its EOL at the end of November.
MXS-3297 Extended MariaDB capabilities are not read correctly
MXS-3295 Layout of classify REST API endpoint stores non-parameter data in parameters object
MXS-3293 Backticks not stripped in USE statements.
MXS-3273 Connection lost when unrelated server loses Slave status
MXS-3272 maxctrl not prompt directy for the password
MXS-3240 Uom variable from maxscale api /maxscale/threads
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 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.
Release 2.4.13 is a GA release.
Released: 19 Oct 2020
This document describes the changes in release 2.4.13, when compared to the previous release in the same series.
For any problems you encounter, please consider submitting a bug report on our Jira.
Now packages are signed by MariaDB Enterprise key. Public key is here MariaDB-Enterprise-GPG-KEY
MXS-3220 MaxScale crashes in gwbuf_set_type() upon query retry
MXS-3200 Abort due to double free or corruption after "Write to Client DCB ... state DCB_STATE_POLLING failed"
MXS-3198 MariadbMon documentation needs to take 10.5 privilege changes into account
MXS-3177 Fix download link in documentation
MXS-3165 cache_inside_transactions vs cache_in_transactions
MXS-3149 Monitor should remove [Master] when starting swithover
MXS-3143 FOUND_ROWS() not routed to previous target
MXS-3132 Monitor timeout defaults are wrong
MXS-3131 Monitor module not displayed in show monitors
MXS-3123 Documentation: KB page for 2.4 does not mention maxctrl way to rotate the log
MXS-2680 Monitor type not shown in show monitors
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 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.
Release 2.4.12 is a GA release.
This document describes the changes in release 2.4.12, when compared to the previous release in the same series.
For any problems you encounter, please consider submitting a bug report on our Jira.
MXS-3121 At SIGSEGV time, the statement currently being parsed should be logged.
MXS-3120 Crash in qc_sqlite.
MXS-3115 Error loading kubernetes mounted cnf
MXS-3113 No message in new log after rotate
MXS-3106 'Cannot assign requested address'
MXS-3101 getpeername()' failed on file descriptor
MXS-3100 Potential memory leak
MXS-3089 Backend not closed on failed session command
MXS-619 creating many short sessions in parallel leads to errors
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 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.
Release 2.4.11 is a GA release.
Released: 15 Jul 2020
This document describes the changes in release 2.4.11, when compared to the previous release in the same series.
For any problems you encounter, please consider submitting a bug report on our Jira.
MXS-3069 Unnecessary AuthSwitchRequest with old clients
MXS-3064 User loading query can run into charset collation problems
MXS-3059 Crash in Galera monitor
MXS-3057 session_trace enables all log levels
MXS-3055 DCB write errors with abstracted services
MXS-3054 Crash with persistent connections, schemarouter and local services abstracted as servers
MXS-3041 QC bug with keyword handler
MXS-3038 readwritesplit router should not open new connections to slaves lagging for more than max_slave_replication_lag seconds
MXS-3020 Parts of 2.4 manual still suggest to use deprecated maxadmin
MXS-2996 Query Type of 'SELECT ... LOCK IN SHARE MODE;'
MXS-2585 MaxScale dies with fatal signal 11
MXS-2584 Race condition between startup/shutdown and signal delivery
MXS-619 creating many short sessions in parallel leads to errors
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 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.
Release 2.4.10 is a GA release.
Released: 8 Jun 2020
This document describes the changes in release 2.4.10, when compared to the previous release in the same series.
For any problems you encounter, please consider submitting a bug report on our Jira.
MXS-3023 worker id overflow
MXS-3021 Allow dbfwfilter to be less strict
MXS-3019 Enum with invalid and valid value is not detected
MXS-3014 Missing parameters in /maxscale endpoint
MXS-3013 No maxctrl equivalent for maxadmin "reload dbusers"
MXS-3010 maxkeys -u does not work
MXS-3000 Not all global parameters are serialized
MXS-2998 maxctrl parsing trouble
MXS-2990 QC bug
MXS-2984 maxctrl list listeners output is not correct
MXS-2983 --servers option doesn't document value syntax
MXS-2982 maxscale --help points to old documentation
MXS-2981 Missng REST API TLS certificates are not a hard error
MXS-2980 maxctrl not using SSL/TLS in interactive mode
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 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.
Release 2.4.9 is a GA release.
Released: 30 Apr 2020
This document describes the changes in release 2.4.9, when compared to the previous release in the same series.
For any problems you encounter, please consider submitting a bug report on our Jira.
MXS-2861 Allow TLS cipher selection between Maxscale and client
MXS-2972 USE sent to wrong server
MXS-2969 maxscale service still not stopped / restarted on package upgrade
MXS-2968 Avrorouter direct replication sets wrong server_id
MXS-2956 admin_ssl_ca_cert reads the wrong certificate
MXS-2954 cluster sync doesn't update global configuration options
MXS-2948 Fix cluster sync
MXS-2943 csmon doesn't work with pluggable ColumnStore
MXS-2942 DELETE of a monitor doesn't check whether it uses servers
MXS-2939 Session commands do not trigger reconnection
MXS-2931 MXS-2810 still unfixed in RHEL / CentOS 6 packages
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 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.
Release 2.4.8 is a GA release.
Released: 18 Mar 2020
This document describes the changes in release 2.4.8, when compared to the previous release in the same series.
For any problems you encounter, please consider submitting a bug report on our Jira.
MXS-2921 Memory leak in alter maxscale
MXS-2919 max_slave_replication_lag uses servers with unknown replication lag
MXS-2917 qc_sqlite leaks memory with complex CREATE TABLE query
MXS-2907 Logrotate warnings when PID file does not exist
MXS-2898 warning: The query can't be routed to all backend servers because it includes SELECT and SQL variable modifications which is not supported.
MXS-2893 UnhandledPromiseRejectionWarning when creating a new filter
MXS-2878 Monitor connections do not insist on SSL being used
MXS-2873 Router diagnostic output is not documented
MXS-2844 maxctrl fails to destroy binlogrouter service
MXS-2811 Cannot configure Connector-C TLS version
MXS-2508 Using DIV function in query produces an error
MXS-2382 TLS/SSL setup is not a part of the server mini-tutorial
MXS-2227 optimize table: Query could not be tokenized/Parsing the query failed, cannot report query type
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 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.
Release 2.4.7 is a GA release.
Released: 13 Feb 2020
This document describes the changes in release 2.4.7, when compared to the previous release in the same series.
For any problems you encounter, please consider submitting a bug report on our Jira.
MXS-2889 Direct replication mode can hang on shutdown
MXS-2887 admin_auth documented as not modifiable at runtime
MXS-2883 session closed by maxscale when it received "auth switch request" packet from backend server
MXS-2880 Typo in MariaDBMonitor slave connection printing
MXS-2878 Monitor connections do not insist on SSL being used
MXS-2871 maxscale RPM post-uninstall script has bugs
MXS-2859 Strings with newlines break configuration serialization
MXS-2858 Hang with writeq_high_water
MXS-2857 ssl_verify_peer_certificate should not be on by default
MXS-2851 CAST Function displays contents of Masked column
MXS-2850 MaxScale masking does not work with UNION ALL
MXS-2822 Unexpected internal state: received response
MXS-2810 maxscale process still running after uninstalling maxscale package
MXS-2784 Default charset is not correct
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 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.
Release 2.4.6 is a GA release.
Released: 24 Jan 2020
This document describes the changes in release 2.4.6, when compared to the previous release in the same series.
For any problems you encounter, please consider submitting a bug report on our Jira.
MXS-2758 Enable the systemd unit after setting up the maxscale package
MXS-2843 remove password info from maxscale log
MXS-2839 Not configuring ssl_ca_cert should use system CA
MXS-2834 Transaction retrying on deadlock is not configurable
MXS-2829 Deleting a filter doesn't remove the persisted file
MXS-2824 Basic user access is not documented from maxctrl's perspective
MXS-2821 Generic error message "Invalid object relations for" when dynamically creating or linking items in maxscale with maxctrl
MXS-2820 Wrong error message for failed authentication
MXS-2815 [Warning] Platform does not support O_DIRECT in conjunction with pipes - Pls. downgrade to [Notice]
MXS-2812 "Auth Error" server status only documented in 1.4 documentation
MXS-2810 maxscale process still running after uninstalling maxscale package
MXS-2801 session_trace doesn't contain all messages
MXS-2798 MXS-1550 (net_write_timeout) is not documented
MXS-2792 Documentation for MaxScale's monitor script is incomplete
MXS-2710 max_connections problem
MXS-619 creating many short sessions in parallel leads to errors
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 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.
Release 2.4.5 is a GA release.
Released: 21 Dec 2019
This document describes the changes in release 2.4.5, when compared to the previous release in the same series.
For any problems you encounter, please consider submitting a bug report on our Jira.
MXS-2785 Allow database renaming in binlogfilter
MXS-2813 maxctl shows password in clear text
MXS-2809 2.4 configuration still contains links to v2.3 documentation
MXS-2803 Hang with readconnroute and persistent connections
MXS-2802 COM_RESET_CONNECTION is treated as a write
MXS-2794 Reloading of users is not logged
MXS-2788 Masking filter performs case-sensitive checks against unquoted case-insensitive identifiers in function calls and WHERE clauses
MXS-2782 Wrong thread id causes MaxScale to crash.
MXS-2776 Binlog filter skipping commit when writing to ColumnStore
MXS-2775 Document that a crashed master can break auto_rejoin with semisynchronous replication
MXS-2498 MaxScale not routing TEMPORARY TABLE reading to MASTER
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 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.
Release 2.4.4 is a GA release.
Released: 13 Nov 2019
This document describes the changes in release 2.4.4, when compared to the previous release in the same series.
For any problems you encounter, please consider submitting a bug report on our Jira.
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 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.
Release 2.4.3 is a GA release.
Released: 6 Nov 2019
This document describes the changes in release 2.4.3, when compared to the previous release in the same series.
For any problems you encounter, please consider submitting a bug report on our Jira.
MXS-2734 Unexpected error message when preferred_server is configured
MXS-2733 UTC_TIMESTAMP not recognized as a built-in function
MXS-2732 Memory leak with QC
MXS-2731 Crash in Avro router.
MXS-2728 maxscale .secret file permission
MXS-2721 MaxScale 2.4.2 crashes on different lxc containers with similar error
MXS-2720 maxctrl and maxadmin report negative number of connections to a service
MXS-2713 SET PASSWORD statement sent to all nodes, not only to master
MXS-2711 retain_last_statements cannot be disabled at runtime
MXS-2707 MaxScale 2.4.2 crashes randomly
MXS-2702 Session command with lazy_connect causes master to be "lost"
MXS-2699 Two QC bugs
MXS-2690 Schemarouter doesn't detect empty duplicate databases
MXS-2688 SET should be classified as QUERY_TYPE_SESSION_WRITE
MXS-2687 Invalid socket paths not treated as errors
MXS-2684 Backend DCB taken from persistent pool is not subject to throttling
MXS-2675 TLS not enabled after server creation via maxctrl
MXS-2674 QC bugs
MXS-2672 MaxScale 2.4.2 keep crashing
MXS-2664 Nagios not found on MaxScale 2.4
MXS-2652 Maintenance mode lost if node is shutdown
MXS-2620 Document that shutting down the master can break auto_rejoin and lose transactions
MXS-2600 Documentation is inconsistent regarding privileges for MariaDB Monitor
MXS-2564 Rapid reconnection on server failure
MXS-2354 Timestamp/Datetime precision lost when using cdc streaming
MXS-2264 Schema aware avrorouter ignores table renames
MXS-2263 Maxscale CDC treats unsigned columns as signed
MXS-2191 Split-brain detection doesn't work
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 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.
Release 2.4.2 is a GA release.
Released: 30 Aug 2019
This document describes the changes in release 2.4.2, when compared to the previous release in the same series.
For any problems you encounter, please consider submitting a bug report on our Jira.
MXS-2650 Connector-C-based connections do not use SSL even when configured
MXS-2631 Duplicate tables found, but it's system tables (information_schema., mysql.)
MXS-2612 Use-after-free in cache filter
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 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.
Release 2.4.1 is a GA release.
Released: 20 Aug 2019
This document describes the changes in release 2.4.1, when compared to the previous release in the same series.
For any problems you encounter, please consider submitting a bug report on our Jira.
MXS-2633 Pam authentication doesn't work with server 10.4
MXS-2603 MaxScale causes connections to break in Percona PXC Cluster
MXS-2598 memory leak on handling COM_CHANGE_USER
MXS-2597 MaxScale doesn't handle errors from microhttpd
MXS-2594 Enabling use_priority for not set priority on server level triggers an election
MXS-2578 Maxscale RPM issue PCI Compliancy
MXS-2577 Avrorouter direct conversion is not documented
MXS-2574 maxctrl alter user doesn't work on current user
MXS-2544 PAMAuth doesn't check role permissions
MXS-2521 COM_STMT_EXECUTE maybe return empty result
MXS-2446 Fatal on Maxscale server on reimaging clustrix setup being monitored.
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 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.
Release 2.4.0 is a Beta release.
Released: 29 Jun 2019
This document describes the changes in release 2.4.0, when compared to release 2.3.
For any problems you encounter, please consider submitting a bug report at Jira.
Section and object names starting with @@
are now reserved for use by MaxScale itself. If any such names are encountered in configuration files, then MaxScale will not start.
Whitespace in section names that was deprecated in 2.2 will now be rejected and cause the startup of MaxScale to fail.
MaxScale 2.4.0 will now use the SO_REUSEPORT capability offered by newer kernels that allows reuse of network listener ports. In practice this means improved connection creation speed with more dynamic balancing of connections.
As a side-effect of this, it is possible for two MaxScale instances to bind on the same listener port on systems that have Linux kernels newer than 3.9. This can only happen if the MaxScale instances use completely different directory structures (i.e. different --basedir
arguments). Normal use of MaxScale still detects multiple MaxScales trying to bind to the same ports. Almost always, this will not have any negative side-effects.
The administrative user passwords are now stored as SHA2-512 hashes which is an improvement over the older MD5 hashing algorithm. New users will use the stronger algorithm but old users will continue using the weaker one. To upgrade administrative users, recreate the user.
Mandatory protocol
parameter on server creation
The protocol
parameter must now always be defined when a server is created. The previously undocumented default value of mariadbbackend
now must be explicitly defined when a server is created via the REST API.
TLS on server creation
To create encrypted connection to a server, the TLS parameters must be defined at server creation time. To enable TLS for a server that doesn't have it, destroy the old one and recreate it afterwards.
As TLS for servers must now be defined at creation time, enabling TLS at runtime via MaxAdmin is no longer possible. Use MaxCtrl to create servers with TLS enabled.
debugcli
and telnetd
The debugcli
router and the telnetd
protocol module it uses have been removed.
ndbclustermon
The ndbclustermon
module has been removed.
mmmon
The mmmon
module has been removed as the mariadbmon
monitor largely does what it used to do.
The following settings have been removed and cause a startup error if defined: mysql51_replication
, multimaster
and allow_cluster_recovery
.
log_to_shm
The log_to_shm
parameter that was removed in 2.3 will be treated as an unknown parameter in 2.4.0.
mqfilter
The mqfilter
has been deprecated and it will be removed in a future version of MaxScale.
We advise against using it.
MaxScale no longer ships the example scripts and configuration files for Nagios.
MaxScale now contains support for Clustrix in the form of a Clustrix monitor that is capable of monitoring a Clustrix cluster.
Please see the documentation for details.
MaxScale has now a new router SmartRouter that is capable of routing a query to different kinds of backends, containing the same data, depending on which backend can best handle that particular kind of query.
Please see the documentation for details.
It is now possible to drain a server, which means that existing connections to the server can continue to be used but new connections are no longer created to the server.
In the output of maxctrl
, the fact that a server is being drained is visible in the State
column as the value Draining
.
┌─────────┬─────────────────┬──────┬─────────────┬───────────────────────────────┬───────┐
│ Server │ Address │ Port │ Connections │ State │ GTID │
├─────────┼─────────────────┼──────┼─────────────┼───────────────────────────────┼───────┤
│ Server1 │ 192.168.121.159 │ 3306 │ 2 │ Master, Running │ 0-1-6 │
├─────────┼─────────────────┼──────┼─────────────┼───────────────────────────────┼───────┤
│ Server2 │ 192.168.121.80 │ 3306 │ 1 │ Draining, Slave, Running │ 0-1-6 │
├─────────┼─────────────────┼──────┼─────────────┼───────────────────────────────┼───────┤
│ Server3 │ 192.168.121.122 │ 3306 │ 2 │ Slave, Running │ 0-1-6 │
├─────────┼─────────────────┼──────┼─────────────┼───────────────────────────────┼───────┤
│ Server4 │ 192.168.121.144 │ 3306 │ 2 │ Slave, Running │ 0-1-6 │
└─────────┴─────────────────┴──────┴─────────────┴───────────────────────────────┴───────┘
A server is set in the Draining state the same way as it is set in the Maintenance state:
$ maxctrl set server Server2 drain
Note that although the state is displayed as Draining
, when setting and clearing the state, the word drain
is used.
Note that the full implication of draining a server depends upon both on the role of the server and on the router being used, and its configuration.
For instance, if readwritesplit is used and the server being drained is a slave, then from a client's perspective there will be no difference; readwritesplit will simply not use that server. However, if the server being drained is the master, then it will not be possible to connect unless master_failure_mode
has been set to something else but the default fail_instantly
.
Once the server has been drained, the state will be Drained
.
weightby
Replacement for Servers: rank
The new rank parameter is the replacement for the deprecated weightby
parameter. It allows explicit groupings of servers into primary and secondary groups. Servers configured with rank=secondary
will only be used if no primary servers are available.
Servers can now use the socket parameter to define a local UNIX domain socket through which the connections will be created.
The servers a service uses can now be specified using the cluster
parameter of the service.
[TheService]
...
cluster=TheMonitor
In this case, the servers of the service will be defined by the referred to monitor. Note that the parameters servers
and cluster
are mutually exclusive.
In the MaxScale configuration file, durations can now be suffixed with h
, m
, s
or ms
to indicate that the duration is specified as hours, minutes, seconds or milliseconds.
Please see the configuration guide for details.
Not providing an explicit unit is strongly discouraged as it will be deprecated in MaxScale 2.5.
It is now possible to examine the contents of the query classifier cache. The REST-API endpoint is
/v1/maxscale/query_classifier/cache
and the equivalent maxctrl command
maxctrl show qc_cache
The output shows the statements (the canonical version) in the cache, the number of times they have been encountered and how they have been classified.
If a user fails to authenticate multiple times, the host from where the user is connecting from will be blocked for 60 seconds. See max_auth_errors_until_block for more information.
Default API Version
The API version prefix is now optional and if not present, will be assumed to be the latest version which currently is /v1
.
Hard maintenance mode
The new --force
option for the set server
command in MaxCtrl allows all connections to the server in question to be closed when it is set into maintenance mode. This causes idle connections to be closed immediately.
For more information, read the REST-API documentation for the set
endpoint.
Command History
The interactive mode for MaxCtrl now has command history.
Multi-parameter Alter
The alter
commands in MaxCtrl now accept multiple key-value pairs in one command. See output of maxctrl help alter
for more information.
For more information on the readwritesplit router, refer to the documentation.
transaction_replay
The transaction replay functionality will now also be applied in conjunction with server initiated transaction rollbacks.
transaction_replay_attempts
The new transaction_replay_attempts
parameter controls how many errors the transaction replay mechanism tolerates before giving up on the replay attempt. The number of transaction replay attempts is now capped to a default value of 5.
lazy_connect
Lazy connection creation delays the opening of all connections until they are needed. This reduces the load that is placed on the backend servers when the client connections are short. This feature is disabled by default.
Connection Selection
The servers where new connections are created at the start of a session are now always use connection counts. This allows the use of slave_selection_criteria=LEAST_CURRENT_OPERATIONS
and max_slave_connections=1
.
Master Selection
Readwritesplit will now load balance master connections in case there are multiple master servers. This is mainly of relevance only with Clustrix clusters.
Maintenance mode
Readwritesplit now allows open transactions to finish if the master is put into maintenance mode. To forcefully close all connections to a server use the maxctrl set server <name> maintenance --force
command.
Replicating Slaves
If a slave server is replicating from a Galera node, galeramon will now correctly assign it the Slave status.
GTID in list servers
Galera nodes will now display their GTID positions in the output of maxctrl list servers
.
By defining the servers
parameter for the avrorouter service, the replication is done directly from a remote master server. This skips the binlogrouter definition completely making the conversion process faster and more space efficient.
enforce_simple_topology
This MariaDB-Monitor setting allows the monitor greater freedom in managing the backend servers. Please see MariaDB-Monitor documentation for more information.
Here is a list of bugs fixed in MaxScale 2.4.0.
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 Linux distributions supported by MariaDB Enterprise.
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 X.Y.Z. Further, master always refers to the latest released non-beta version.
The source code is available here.