Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Learn about the new features, bug fixes, and changes in MariaDB MaxScale 2.4 releases. This section provides detailed release notes for these specific versions.
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.
Crash with LOAD DATA LOCAL INFILE and retain_last_statements
retain_last_statements cannot be disabled at runtime
maxscale write in the slave with function
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 .
The source code of MaxScale is tagged at GitHub with a tag, which is identical with the version of MaxScale. For instance, the tag of version X.Y.Z of MaxScale is maxscale-X.Y.Z. Further, the default branch is always the latest GA version of MaxScale.
The source code is available .
This 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
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 .
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 .
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.
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.
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.
For its proper functioning, MaxScale needs in general to be aware of the transaction state and autocommit mode. In order to be that, MaxScale parses statements going through it.
However, if a transaction is commited or rolled back, or the autocommit mode is changed using a prepared statement, MaxScale will miss that and its internal state will be incorrect, until the transaction state or autocommit mode is changed using an explicit statement.
For instance, after the following sequence of commands, MaxScale will still think autocommit is on:
To ensure that MaxScale functions properly, do not commit or rollback a transaction or change the autocommit mode using a prepared statement.
Compression is not included in the server handshake.
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.
SET autocommit=0;
XA START 'MyXA';
INSERT INTO test.t1 VALUES(1);
XA END 'MyXA';
XA PREPARE 'MyXA';
XA COMMIT 'MyXA';
SET autocommit=1;set autocommit=1
PREPARE hide_autocommit FROM "set autocommit=0"
EXECUTE hide_autocommitRelease 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.
MaxCtrl option --authenticator-options doesn't work
When using --basedir, mysql/plugin dir needs to be writable
galeramon queries only status, not variables
Host class does not accept all valid domain names.
Redis cache storage does not accept dashes in server names.
Internal connections should explicitly set the autocommit state.
Parsing error with comment
Lack of prepared statement support for causal_reads is not documented
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 .
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 .
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.
Crash in qc_sqlite.
Error loading kubernetes mounted cnf
No message in new log after rotate
'Cannot assign requested address'
getpeername()' failed on file descriptor
Potential memory leak
Backend not closed on failed session command
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 .
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 .
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
MaxScale crashes in gwbuf_set_type() upon query retry
Abort due to double free or corruption after "Write to Client DCB ... state DCB_STATE_POLLING failed"
MariadbMon documentation needs to take 10.5 privilege changes into account
Fix download link in documentation
There are some limitations and known issues within this version of MaxScale. For more information, please refer to the Limitations document.
RPM and Debian packages are provided for supported the Linux distributions.
Packages can be downloaded .
The source code of MaxScale is tagged at GitHub with a tag, which is identical with the version of MaxScale. For instance, the tag of version X.Y.Z of MaxScale is maxscale-X.Y.Z. Further, the default branch is always the latest GA version of MaxScale.
The source code is available .
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.
ASAN reports leaks in the query classifier
maxscale write in the slave with function
QC heap-buffer-overflow
--basedir overrides more specific settings like --connector_plugindir
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 .
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 .
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.
Extended MariaDB capabilities are not read correctly
Layout of classify REST API endpoint stores non-parameter data in parameters object
Backticks not stripped in USE statements.
Connection lost when unrelated server loses Slave status
maxctrl not prompt directy for the password
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 .
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 .
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.
Connector-C-based connections do not use SSL even when configured
Duplicate tables found, but it's system tables (information_schema., mysql.)
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 .
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 .
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.
Allow database renaming in binlogfilter
maxctl shows password in clear text
2.4 configuration still contains links to v2.3 documentation
Hang with readconnroute and persistent connections
COM_RESET_CONNECTION is treated as a write
There are some limitations and known issues within this version of MaxScale. For more information, please refer to the Limitations document.
RPM and Debian packages are provided for supported the Linux distributions.
Packages can be downloaded .
The source code of MaxScale is tagged at GitHub with a tag, which is identical with the version of MaxScale. For instance, the tag of version X.Y.Z of MaxScale is maxscale-X.Y.Z. Further, the default branch is always the latest GA version of MaxScale.
The source code is available .
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.
ssl_version value conversion is wrong
Maxscale 2.4.2 crash
There are some limitations and known issues within this version of MaxScale. For more information, please refer to the Limitations document.
RPM and Debian packages are provided for supported the Linux distributions.
Packages can be downloaded .
The source code of MaxScale is tagged at GitHub with a tag, which is identical with the version of MaxScale. For instance, the tag of version X.Y.Z of MaxScale is maxscale-X.Y.Z. Further, the default branch is always the latest GA version of MaxScale.
The source code is available .
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
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
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.
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
cluster sync doesn't update global configuration options
Fix cluster sync
csmon doesn't work with pluggable ColumnStore
DELETE of a monitor doesn't check whether it uses servers
Session commands do not trigger reconnection
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.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.
Pam authentication doesn't work with server 10.4
MaxScale causes connections to break in Percona PXC Cluster
memory leak on handling COM_CHANGE_USER
MaxScale doesn't handle errors from microhttpd
Enabling use_priority for not set priority on server level triggers an election
Maxscale RPM issue PCI Compliancy
Avrorouter direct conversion is not documented
maxctrl alter user doesn't work on current user
PAMAuth doesn't check role permissions
COM_STMT_EXECUTE maybe return empty result
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 .
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 .
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.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.
Enable the systemd unit after setting up the maxscale package
remove password info from maxscale log
Not configuring ssl_ca_cert should use system CA
Transaction retrying on deadlock is not configurable
Deleting a filter doesn't remove the persisted 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 .
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 .
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.
Direct replication mode can hang on shutdown
admin_auth documented as not modifiable at runtime
session closed by maxscale when it received "auth switch request" packet from backend server
Typo in MariaDBMonitor slave connection printing
Monitor connections do not insist on SSL being used
maxscale RPM post-uninstall script has bugs
Strings with newlines break configuration serialization
Hang with writeq_high_water
ssl_verify_peer_certificate should not be on by default
CAST Function displays contents of Masked column
MaxScale masking does not work with UNION ALL
Unexpected internal state: received response
maxscale process still running after uninstalling maxscale package
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 .
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 .
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.
Memory leak in alter maxscale
max_slave_replication_lag uses servers with unknown replication lag
qc_sqlite leaks memory with complex CREATE TABLE query
Logrotate warnings when PID file does not exist
warning: The query can't be routed to all backend servers because it includes SELECT and SQL variable modifications which is not supported.
UnhandledPromiseRejectionWarning when creating a new filter
Monitor connections do not insist on SSL being used
Router diagnostic output is not documented
maxctrl fails to destroy binlogrouter service
Cannot configure Connector-C TLS version
Using DIV function in query produces an error
TLS/SSL setup is not a part of the server mini-tutorial
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 .
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 .
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
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.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 telnetdThe debugcli router and the telnetd protocol module it uses have been removed.
ndbclustermonThe ndbclustermon module has been removed.
mmmonThe 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_shmThe log_to_shm parameter that was removed in 2.3 will be treated as an unknown parameter in 2.4.0.
mqfilterThe 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.
A server is set in the Draining state the same way as it is set in the Maintenance state:
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: rankThe 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.
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
and the equivalent maxctrl command
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_topologyThis MariaDB-Monitor setting allows the monitor greater freedom in managing the backend servers. Please see MariaDB-Monitor documentation for more information.
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 .
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 .
┌─────────┬─────────────────┬──────┬─────────────┬───────────────────────────────┬───────┐
│ 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 │
└─────────┴─────────────────┴──────┴─────────────┴───────────────────────────────┴───────┘$ maxctrl set server Server2 drain[TheService]
...
cluster=TheMonitor/v1/maxscale/query_classifier/cachemaxctrl show qc_cache