Follow the specific steps to upgrade MariaDB MaxScale to version 25.01. This guide covers new package structures, removed features, and critical configuration changes for this release.
These instructions detail the upgrade to MariaDB MaxScale 25.01 in a MaxScale Instance configuration on a range of .
MariaDB MaxScale is an advanced database proxy and query router.
Upgrades can move or change configuration files. Before starting an upgrade, always back up your configuration files to ensure you can revert to the working system in the event that you encounter any issues during the upgrade.
To back up a configuration file, create a copy:
MariaDB Corporation provides package repositories for YUM (RHEL, CentOS, Rocky Linux), APT (Debian, Ubuntu), and ZYpp (SLES).
Before upgrading MariaDB MaxScale, first stop the current process.
For distributions that use systemd (most supported OSes), you can manage the Server process using the systemctl command:
Upgrade MaxScale following the instructions for your Linux distribution:
Upgrade via DNF (RHEL)
Customer Download Token
Retrieve your Customer Download Token at and substitute for CUSTOMER_DOWNLOAD_TOKEN in the following directions.
Configure YUM / DNF package repository
Pass the version you want to install using the --mariadb-maxscale-version
Configuration parameters can change between releases of MariaDB MaxScale, which can have unexpected results.
Determine which parameters have changed by reviewing all the changes made between your current release and the upgrade release.
Change the specific parameters in maxscale.cnf.
Changes in MaxScale 23.02
When upgrading from MaxScale 22.08 and earlier to MaxScale 25.01, the changes introduced in MaxScale 23.02 must be taken into consideration.
MariaDB MaxScale 22.08 is fully compatible with MariaDB MaxScale 23.02 with the exception that some features have been removed.
Removed Features
The csmon monitor has been removed after previously being deprecated in MaxScale 22.08.2.
The auroramon
MariaDB MaxScale installations includes configuration to start, stop, restart, enable/disable on boot, and check the status of the MaxScale Instance using the operating system default process management system.
For distributions that use systemd (most supported OSes), you can manage the MaxScale process using the systemctl command:
When you have MariaDB MaxScale up and running, you should test it to ensure that it is working and that weren't any issues during startup.
Check that MaxScale is running properly by using the utility:
25.01.To configure YUM package repositories:
Upgrade MariaDB MaxScale and package dependencies:
Configure MaxScale
The upgrade process only loads MaxScale onto the system. MaxScale requires configuration before MaxScale is ready for use.
Upgrade via APT (Debian, Ubuntu)
Customer Download Token
Retrieve your Customer Download Token at https://customers.mariadb.com/downloads/token/ and substitute for CUSTOMER_DOWNLOAD_TOKEN in the following directions.
Configure APT package repository
Pass the version you want to install using the --mariadb-maxscale-version flag to the script. The following directions reference 25.01.
To configure APT package repositories:
Upgrade MariaDB MaxScale and package dependencies
Configure MaxScale
The upgrade process only loads MaxScale onto the system. MaxScale requires configuration before MaxScale is ready for use.
Upgrade via ZYpp (SLES)
Customer Download Token
Retrieve your Customer Download Token at https://customers.mariadb.com/downloads/token/ and substitute for CUSTOMER_DOWNLOAD_TOKEN in the following directions.\
Configure ZYpp package repository
Pass the version you want to install using the --mariadb-maxscale-version flag to the script. The following directions reference 25.01.
To configure ZYpp package repositories:
Upgrade MariaDB MaxScale and package dependencies
Configure MaxScale
The upgrade process only loads MaxScale onto the system. MaxScale requires configuration before MaxScale is ready for use.
The maxctrl cluster commands have been removed after previously being deprecated in MaxScale 22.08.2
The maxctrl drain command has been removed, because it is obsolete.
Removed Deprecated maxctrl Commands
In MariaDB MaxScale 23.02, some deprecated MaxCtrl commands were removed:
maxctrl cluster
maxctrl drain has been removed and can be replaced with maxctrl set server SERVER_NAME drain
Removed Deprecated maxctrl Options
In MariaDB MaxScale 23.02, several deprecated MaxCtrl command-line options were removed, since MaxScale previously added the ability to specify module parameters to MaxCtrl as key-value pairs.
This change can impact backward compatibility. Some scripts and tools written for previous versions of MaxCtrl will require updates to continue functioning with MaxCtrl from MaxScale 23.02. The old command-line parameters have been deprecated since MaxScale 22.08. The new syntax to specify parameters as key-value pairs has been supported since MariaDB MaxScale 6.2.0.
For example, in previous releases, the following maxctrl create monitor command could be executed:
Starting with MariaDB MaxScale 23.02, some deprecated command-line options have been removed and must be replaced with a key-value pair using the corresponding module parameter:
For maxctrl create listener, the following deprecated command-line options were removed and must be replaced with a key-value pair using the listed parameter:
--authenticator
authenticator
--authenticator-options
authenticator_options
--interface
interface
--protocol
protocol
--tls-ca-cert
ssl_ca
--tls-cert
For maxctrl create monitor, the following deprecated command-line options were removed and must be replaced with a key-value pair using the listed parameter:
--monitor-password
password
--monitor-user
user
Changes in MaxScale 22.08
When upgrading from MaxScale 6 and earlier to MaxScale 25.01, the changes introduced in MaxScale 22.08 must be taken into consideration.
Database Firewall Filter
The dbfwfilter that was deprecated in MaxScale 6 has been removed in MaxScale 22.08.
Deprecated Parameters
The server parameter ssl_ca_cert has been renamed to ssl_ca and ssl_ca_cert has been deprecated. ssl_ca_cert is now an alias for ssl_ca and can still be used, but MariaDB recommends using ssl_ca, as support for ssl_ca_cert will be removed in a future release.
The server parameter admin_ssl_ca_cert has been renamed to admin_ssl_ca and admin_ssl_ca_cert has been deprecated. admin_ssl_ca_cert is now an alias for admin_ssl_ca and can still be used, but MariaDB recommends using admin_ssl_ca, as support for admin_ssl_ca_cert will be removed in a future release.
Removed Parameters
The following MariaDB Monitor (mariadbmon) parameters have been removed:
ignore_external_masters
detect_replication_lag
Default Changed for Logging Behavior
Prior to MaxScale 22.08.1, by default MaxScale logs to syslog in addition to the MaxScale log.
Starting with MaxScale 22.08.1, by default MaxScale only logs to the MaxScale log and no longer logs to syslog.
To retain the behavior of prior releases, in your MaxScale configuration, under the [maxscale] section, specify syslog=true:
REST API Endpoint Removed
The /v1/maxscale/tasks/ endpoint has been removed from the REST API.
Changes in MaxScale 6
When upgrading from MaxScale 2.5 and earlier to MaxScale 25.01, the changes introduced in MaxScale 6 must be taken into consideration.
TLS/SSL
MaxScale's ssl parameter can no longer be set to required or disabled:
ssl=true replaces ssl=required
ssl=false replaces ssl=disabled
Deprecated Features
dbfwfilter is deprecated (but not removed) in MaxScale 6.
Multi-line configuration parameters are deprecated (but not removed) in MaxScale 6.
Defaults Changed
The default value of threads has changed from 1 to auto
ColumnStore
When using MaxScale with ColumnStore 5 and later, MariaDB Monitor (mariadbmon) is used instead of ColumnStore Monitor (csmon).
Changes in MaxScale 2.5
When upgrading from MaxScale 2.4 and earlier to MaxScale 25.01, the changes introduced in MaxScale 2.5 must be taken into consideration.
Passwords
MaxScale's password encryption features have been updated to be more secure. Passwords encrypted in old versions will still work, but it is recommended to generate a new encryption key with the maxkeys command and to re-encrypt passwords with the maxpasswd command.
User Account Privileges
MaxScale's user account requires additional privileges in MaxScale 2.5.
Ensure that the user account has the following privileges:
MariaDB Monitor
MaxScale 2.5 includes configuration changes for :
The detect_stale_master and the detect_standalone_master parameters have been deprecated. They can still be used, but they will be removed in a later version of MaxScale. Users should use the master_conditions parameter instead.
For example:
The detect_stale_slave parameter has been deprecated. It can still be used, but it will be removed in a later version of MaxScale. Users should use the slave_conditions parameter instead.
ColumnStore Monitor
MaxScale 2.5 includes configuration changes for :
The version parameter was previously optional, but it is now required.
For example:
Binlog Router
MaxScale 2.5 includes a completely re-implemented :
Thoroughly test your configuration with the new implementation to ensure that the new version meets your needs.
MaxScale instance
MariaDB MaxScale running by itself on a single host.
It interacts with other hosts, such as deployments using , Galera Cluster, and .
It serves as the database proxy and load balancer.
upgrade
A change from lower-versioned release of MariaDB MaxScale to a higher-versioned release of MariaDB MaxScale.
Start
sudo systemctl start maxscale
Stop
sudo systemctl stop maxscale
Restart
sudo systemctl restart maxscale
Enable during startup
sudo systemctl enable maxscale
Disable during startup
sudo systemctl disable maxscale
Status
sudo systemctl status maxscale
sudo dnf update maxscaleGRANT SHOW DATABASES ON *.*
TO 'maxscale'@'192.0.2.1';
GRANT SELECT ON mysql.columns_priv
TO 'maxscale'@'192.0.2.1';
GRANT SELECT ON mysql.db
TO 'maxscale'@'192.0.2.1';
GRANT SELECT ON mysql.procs_priv
TO 'mxs'@'192.0.2.1';
GRANT SELECT ON mysql.proxies_priv
TO 'maxscale'@'192.0.2.1';
GRANT SELECT ON mysql.roles_mapping
TO 'maxscale'@'192.0.2.1';
GRANT SELECT ON mysql.tables_priv
TO 'maxscale'@'192.0.2.1';
GRANT SELECT ON mysql.user
TO 'maxscale'@'192.0.2.1';sudo cp /etc/maxscale.cnf /data/backups/config/maxscale.cnfsudo systemctl stop maxscalesudo maxctrl show maxscale┌──────────────┬──────────────────────────────────────────────────────────────────────┐
│ Version │ 25.01.2 │
├──────────────┼──────────────────────────────────────────────────────────────────────┤
│ Commit │ 61b8bbf7f63c38ca9c408674e66f3627a0b2192e │
├──────────────┼──────────────────────────────────────────────────────────────────────┤
│ Started At │ Fri, 03 Jan 2025 18:05:18 GMT │
├──────────────┼──────────────────────────────────────────────────────────────────────┤
│ Activated At │ Fri, 03 Jan 2025 18:05:18 GMT │
├──────────────┼──────────────────────────────────────────────────────────────────────┤
│ Uptime │ 109 │
├──────────────┼──────────────────────────────────────────────────────────────────────┤
│ Parameters │ { │
│ │ "libdir": "/usr/lib/x86_64-linux-gnu/maxscale", │
│ │ "datadir": "/var/lib/maxscale", │
│ │ "process_datadir": "/var/lib/maxscale/data3850", │
│ │ "cachedir": "/var/cache/maxscale", │
│ │ "configdir": "/etc", │
│ │ "config_persistdir": "/var/lib/maxscale/maxscale.cnf.d", │
│ │ "module_configdir": "/etc/maxscale.modules.d", │
│ │ "piddir": "/var/run/maxscale", │
│ │ "logdir": "/var/log/maxscale", │
│ │ "langdir": "/var/lib/maxscale", │
│ │ "execdir": "/usr/bin", │
│ │ "connector_plugindir": "/usr/lib/x86_64-linux-gnu/mysql/plugin", │
│ │ "threads": 1, │
│ │ "thread_stack_size": 8388608, │
│ │ "writeq_high_water": 0, │
│ │ "writeq_low_water": 0, │
│ │ "auth_connect_timeout": 3, │
│ │ "auth_read_timeout": 1, │
│ │ "auth_write_timeout": 2, │
│ │ "skip_permission_checks": false, │
│ │ "admin_auth": true, │
│ │ "admin_enabled": true, │
│ │ "admin_log_auth_failures": true, │
│ │ "admin_host": "127.0.0.1", │
│ │ "admin_port": 8989, │
│ │ "admin_ssl_key": "", │
│ │ "admin_ssl_cert": "", │
│ │ "admin_ssl_ca_cert": "", │
│ │ "admin_pam_readwrite_service": "", │
│ │ "admin_pam_readonly_service": "", │
│ │ "passive": false, │
│ │ "query_classifier": "", │
│ │ "query_classifier_cache_size": 155008819, │
│ │ "retain_last_statements": 0, │
│ │ "dump_last_statements": "never", │
│ │ "session_trace": 0, │
│ │ "load_persisted_configs": true, │
│ │ "max_auth_errors_until_block": 10 │
│ │ } │
└──────────────┴──────────────────────────────────────────────────────────────────────┘sudo yum install curlcurl -LsSO https://dlm.mariadb.com/enterprise-release-helpers/mariadb_es_repo_setupchmod +x mariadb_es_repo_setupsudo ./mariadb_es_repo_setup --token="CUSTOMER_DOWNLOAD_TOKEN" --apply \
--mariadb-maxscale-version="25.01"maxctrl create monitor mdb_monitor mariadbmon \
--monitor-user mxs \
--monitor-password 'maxscale_passwd' \
replication_user='repl_user' \
replication_password='repl_pass' \
--servers node1 node2 node3maxctrl create monitor mdb_monitor mariadbmon \
user='mxs' \
password='maxscale_passwd' \
replication_user='repl_user' \
replication_password='repl_pass' \
--servers node1 node2 node3detect_standalone_master
detect_stale_master (replaced by master_conditions)
detect_stale_slave (replaced by slave_conditions)
ssl_cert
--tls-cert-verify-depth
ssl_cert_verify_depth
--tls-crl
ssl_crl
--tls-key
ssl_key
--tls-verify-peer-certificate
ssl_verify_peer_certificate
--tls-verify-peer-host
ssl_verify_peer_host
--tls-version
ssl_version
sudo apt install curlcurl -LsSO https://dlm.mariadb.com/enterprise-release-helpers/mariadb_es_repo_setupchmod +x mariadb_es_repo_setupsudo ./mariadb_es_repo_setup --token="CUSTOMER_DOWNLOAD_TOKEN" --apply \
--mariadb-maxscale-version="25.01"sudo apt updatesudo apt install --only-upgrade maxscalesudo zypper install curlcurl -LsSO https://dlm.mariadb.com/enterprise-release-helpers/mariadb_es_repo_setupecho "4d483b4df193831a0101d3dfa7fb3e17411dda7fc06c31be4f9e089c325403c0 mariadb_es_repo_setup" \
| sha256sum -c -chmod +x mariadb_es_repo_setupsudo ./mariadb_es_repo_setup --token="CUSTOMER_DOWNLOAD_TOKEN" --apply \
--mariadb-maxscale-version="25.01"sudo zypper update maxscale[maxscale]
syslog=true[repl-monitor]
type = monitor
module = mariadbmon
servers = server1,server2,server3
user = maxscale
password = max_passwd
auto_failover = ON
auto_rejoin = ON
master_conditions = connected_slave,running_slave[col-monitor]
type = monitor
module = csmon
servers = server1,server2,server3
user = maxscale
password = max_passwd
version = 1.2[repl-monitor]
type = monitor
module = mariadbmon
servers = server1,server2,server3
user = maxscale
password = max_passwd
auto_failover = ON
auto_rejoin = ON
slave_conditions = running_master,writable_masterReview critical information and procedures for upgrading MariaDB MaxScale versions. Learn about new features deprecated functionality and specific steps for each version transition.
Before upgrading to MariaDB MaxScale, it is critical to review the changes. This guide outlines new features, altered parameters, and deprecated functionality to ensure a smooth transition.
For more information about what has changed, please refer to the ChangeLog and release notes of the releases you are upgrading from and upgrading to.
Before starting the upgrade, any existing configuration files should be backed up.
The service users now require a SELECT grant on the mysql.global_priv table in order to be able to support authentication of users with multiple authentication mechanisms. If this grant is not given to the service users, a warning is logged. The following SQL shows how the grant is given to a user:
In MaxScale 25.10, only one monitor backend timeout remains: . This replaces the old backend_connect_timeout, backend_write_timeout and backend_read_timeout, using the same value for all underlying timeouts. backend_connect_timeout is still supported as an alias for backend_timeout, but any values given to backend_write_timeout and backend_read_timeout are ignored.
reuse_prepared_statementsThe reuse_prepared_statements parameter has been replaced with the use of the filter module.
The functionality that previously was enabled with:
Should now be implemented with:
optimistic_trxThe optimistic_trx parameter has been replaced with the use of the filter module.
The functionality that previously was enabled with:
Should now be implemented with:
The MaxScale packaging has been modified in 24.02 to include all of the necessary files in the package itself. This removes the need for a post-installation script that installs them while also clearly stating what's included in the package.
However, as a result of this change, downgrades from 24.02 to older major versions may cause the removal of necessary directories, namely the /var/cache/maxscale/ directory.
To downgrade from MaxScale 24.02 to an older MaxScale major release:
Remove MaxScale 24.02 (e.g. dnf remove maxscale or apt -y remove maxscale)
Install the older MaxScale version
MariaDB Monitor switchover requires an additional grant on MariaDB Server 10.5 and later. See for more information.
The csmon and auroramon monitors have been removed.
The obsolete maxctrl drain command has been removed.
The maxctrl cluster commands have been removed.
The support for legacy encryption keys generated with maxkeys from pre-2.5 versions has been removed. This feature was deprecated in MaxScale 2.5 when the new key storage format was introduced. To migrate to the new key storage format, create a new key file with maxkeys and re-encrypt the passwords withmaxpasswd.
The deprecated Database Firewall filter has been removed.
Using duration type parameters without an explicit suffix has been deprecated in MaxScale 2.4. In MaxScale 6 they are no longer allowed when used with the REST API or MaxCtrl. This means that any create or alter commands in MaxCtrl that use a duration type parameter must explicitly specify the suffix of the unit.
For example, the following command:
should be replaced with:
Duration type parameters can still be defined in the configuration file without an explicit suffix but this behavior is deprecated. The recommended approach is to add explicit suffixes to all duration type parameters when upgrading to MaxScale 6.
threadsThe default value of threads was changed to auto.
The following deprecated core parameters have been removed:
thread_stack_size
The deprecated aliases for the schemarouter parameters ignore_databases andignore_databases_regex have been removed. They can be replaced withignore_tables and ignore_tables_regex.
In addition, the preferred_server parameter that was deprecated in 2.5 has also been removed.
mariadbmonMariaDBMonitor settings ignore_external_masters, detect_replication_lagdetect_standalone_master, detect_stale_master and detect_stale_slave have been removed. The first two were ineffective, the latter three are replaced by master_conditions and slave_conditions.
The prune_sescmd_history, max_sescmd_history and disable_sescmd_history have been made into generic service parameters that are shared between all routers that support it.
The default value of prune_sescmd_history was changed from false totrue. This was done as most MaxScale installations either benefit from it being enabled or are not affected by it.
The deprecated MaxAdmin interface has been removed in 2.5.0 in favor of the REST API and the MaxCtrl command line client. The cli and maxscaled modules can no longer be used.
The credentials used by services now require additional grants. For a full list of required grants, refer to the .
The settings detect_stale_master, detect_standalone_master anddetect_stale_slave are replaced by master_conditions andslave_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.
The default state of servers in 2.4 was Running and in 2.5 it is nowDown. This was done to prevent newly added servers from being accidentally used before they were monitored.
It is now mandatory to specify in the configuration what version the monitored Columnstore cluster is.
The binlog router delivered with MaxScale 2.5 is completely new and not 100% backward compatible with the binlog router delivered with earlier MaxScale versions. If you use the binlog router, carefully assess whether the functionality provided by the new one fulfills your requirements, before upgrading MaxScale.
The tee filter parameter service has been deprecated in favor of the target parameter. All usages of service can be replaced with target.
Section and object names starting with @@ are now reserved for internal use by MaxScale.
In case such names have been used, they must manually be changed in all configuration files of MaxScale, before MaxScale 2.4 is started.
Those files are:
The main configuration file; typically /etc/maxscale.cnf.
All nested configuration files; typically /etc/maxscale.cnf.d/*.
All dynamic configuration files; typically /var/lib/maxscale/maxscale.cnd.d/*.
Whitespace in section names that was deprecated in MaxScale 2.2 will now be rejected, which will cause the startup of MaxScale to fail.
To prevent that, section names like
must be changed, for instance, to
Durations can now be specified using one of the suffixes h, m, s and ms for specifying durations in hours, minutes, seconds and milliseconds, respectively.
Not providing an explicit unit has been deprecated in MaxScale 2.4, so it is advisable to add suffixes to durations. For instance,
MaxScale 2.4 will use a SHA2-512 hash for new admin user passwords. To upgrade a user to use the better hashing algorithm, either recreate the user or use themaxctrl alter user command.
The following settings have been removed and cause a startup error if defined:
mysql51_replication
multimaster
allow_cluster_recovery.
If multiple masters are available for a readwritesplit service, the one with the lowest connection count is selected.
If a master server is placed into maintenance mode, all open transactions are allowed to gracefully finish before the session is closed. To forcefully close the connections, use the --force option for maxctrl set server.
The lazy_connect feature can be used as a workaround to . It also reduces the overall load on the system when connections are rapidly opened and closed.
Starting with MaxScale 2.3.0 up to 40% of the memory can be used for caching parsed queries. The most noticeable change is that it improves performance in almost all cases where queries need to be parsed. Most of the time this happens when the readwritesplit router or filters are used.
The amount of memory that MaxScale uses can be controlled with thequery_classifier_cache_size parameter. For example, to limit the total memory to 1GB, add query_classifier_cache_size=1G to your configuration. To disable it, set the value to 0.
In addition to the aforementioned query classifier caching, the readwritesplit session command history is enabled by default in 2.3 but is limited to a maximum of 50 commands after which the history is disabled. This is unlikely to show in any metrics but it contributes to the increased memory footprint of MaxScale.
All unknown parameters are now treated as errors. Check your configuration for errors if MaxScale fails to start after upgrading to 2.3.1.
passwd is deprecatedIn the configuration file, passwords for monitors and services should be specified using password; the support for the deprecatedpasswd will be removed in the future. That is, the following
should be changed to
authenticator_options for servers is ignoredAuthenticator options are now only used with listeners.
The file format for the administrative users used by MaxScale has been changed. Old style files are automatically upgraded and a backup of the old file is stored in /var/lib/maxscale/passwd.backup.
Modules may now use a built-in regular expression string parameter type instead of a normal string when accepting patterns. The modules that use the new regex parameter type are qlafilter and tee. When inputting pattern, enclose the string in slashes, e.g. match=/^select/ defines the pattern ^select.
Binlog server automatically accepts GTID connection from MariaDB 10 slave servers by saving all incoming GTIDs into a SQLite map database.
In the 2.2.1 beta version MaxCtrl was in its own package whereas in 2.2.2 it is in the main maxscale package. If you have a previous installation of MaxCtrl, please remove it before upgrading to MaxScale 2.2.2.
MaxScale 2.1.2 added support for IPv6 addresses. The default interface that listeners bind to was changed from the IPv4 address 0.0.0.0 to the IPv6 address ::. To bind to the old IPv4 address, add address=0.0.0.0 to the listener definition.
Starting with MaxScale 2.1, any changes made with the newly added runtime configuration change will be persisted in a configuration file. These files are located in /var/lib/maxscale/maxscale.cnf.d/.
The name of the log file was changed from maxscaleN.log to maxscale.log. The default location for the log file is /var/log/maxscale/maxscale.log.
Rotating the log files will cause MaxScale to reopen the file instead of renaming them. This makes the MaxScale logging facility logrotate compatible.
The disable_sescmd_history option is now enabled by default. This means that slaves will not be recovered mid-session even if a replacement slave is available. To enable the legacy behavior, add the disable_sescmd_history=true parameter to the service definition.
The MariaDB session state is reset in MaxScale 2.1 for persistent connections. This means that any modifications to the session state (default database, user variable etc.) will not survive if the connection is put into the connection pool. For most users, this is the expected behavior.
The location of the MariaDB user data cache was moved from/var/cache/maxscale/<Service> to /var/cache/maxscale/<Service>/<Listener>.
Galeramon will assign the master status only to the node which has a_wsrep_local_index_ value of 0. This will guarantee consistent writes with multiple MaxScales but it also causes slower changes of the master node.
To enable the legacy behavior, add root_node_as_master=false to the Galera monitor configuration.
The default editing mode was changed from vim to emacs mode. To start maxadmin in the legacy mode, use the -i option.
The default way the communication between MaxAdmin and MariaDB MaxScale is handled has been changed from an internet socket to a Unix domain socket. The former alternative is still available but has been deprecated.
If no arguments are given to MaxAdmin, it will attempt to connect to MariaDB MaxScale using a Unix domain socket. After the upgrade you will need to provide at least one internet socket related flag - -h, -P,-u or -p - to force MaxAdmin to use the internet socket approach.
E.g.
The MySQL Monitor now assigns the stale state to the master server by default. In addition to this, the slave servers receive the stale slave state when they lose the connection to the master. This should not cause changes in behavior but the output of MaxAdmin will show new states when replication is broken.
The service users now also need SELECT privileges on mysql.tables_priv. This is required for the resolution of table level grants. To grant SELECT privileges for the service user, replace the user and hostname in the following example.
MaxScale 1.4 upgrades the used password encryption algorithms to more secure ones. This requires that the password files are recreated with the maxkeys tool.
The SSL configuration parameters are now a part of the listeners. If a service used the old style SSL configuration parameters, the values should be moved to the listener which is associated with that service.
Here is an example of an old style configuration.
And here is the new, 1.4 compatible configuration style.
Please also note that the enabled SSL mode is no longer supported due to the inherent security issues with allowing SSL and non-SSL connections on the same port. In addition to this, SSLv3 is no longer supported due to vulnerabilities found in it.
The master server details are now provided with a master.ini file located in the binlog directory and it can be changed using a CHANGE MASTER TO command issued via a MySQL connection to MaxScale.
This file, properly filled, is now mandatory and without it the binlog router cannot connect to the master database.
Before starting binlog router after MaxScale 1.3 upgrade, please add relevant information to master.ini, example:
Additionally, the option servers=masterdb in the service definition is no longer required.
This document describes upgrading MaxScale from version 1.1.1 to 1.2 and the major differences in the new version compared to the old version. The major changes can be found in the Changelog.txt file in the installation directory and the official release notes in the ReleaseNotes.txt file.
Upgrading MaxScale will copy the MaxScale.cnf file in/usr/local/mariadb-maxscale/etc/ to /etc/ and renamed to maxscale.cnf. Binary log files are not automatically copied and should be manually moved from /usr/local/mariadb-maxscale to /var/lib/maxscale/.
MaxScale 1.2 follows the and installs to /usr/ and /var/ subfolders. Here are the major changes and file locations.
Configuration files are located in /etc/ and use lowercase letters: /etc/maxscale.cnf
Binary files are in /usr/bin/
Libraries and modules are in /usr/lib64/maxscale/. If you are using custom modules, please make sure they are in this directory before starting MaxScale.
MaxScale can run as a non-root user with the 1.2 version. RPM and DEB packages install the maxscale user and maxscale group which are used by the init scripts and systemd configuration files. If you are installing from a binary tarball, you can run the postinst script included in it to manually create these groups.
This document describes upgrading MaxScale from version 1.0.5 to 1.1.0 and the major differences in the new version compared to the old version. The major changes can be found in the Changelog.txt file in the installation directory and the official release notes in the ReleaseNotes.txt file.
If you are installing MaxScale from a RPM package, we recommend you back up your configuration and log files and that you remove the old installation of MaxScale completely. If you choose to upgrade MaxScale instead of removing it and re-installing it afterwards, the init scripts in /etc/init.d folder will be missing. This is due to the RPM packaging system but the script can be re-installed by running the postinst script found in the/usr/local/mariadb-maxscale folder.
The 1.1.0 version of MaxScale installs into /usr/local/mariadb-maxscale instead of /usr/local/skysql/maxscale. This will cause external references to MaxScale's home directory to stop working so remember to update all paths with the new version.
The MaxAdmin client's default password in MaxScale 1.1.0 is mariadb instead of skysql.
This page is licensed: CC BY-SA / Gnu FDL
Transaction replays now have a limit on how many times a replay is attempted. The default values is five attempts and is controlled by thetransaction_replay_attempts parameter.
If transaction replay is enabled and a deadlock occurs (SQLSTATE 40XXX), the transaction is automatically retried.
Log files are in the var/log/maxscale/ folder
MaxScale's PID file is located in /var/run/maxscale/maxscale.pid
Data files and other persistent files are in /var/lib/maxscale/
GRANT SELECT ON mysql.global_priv TO 'maxscale_user'@'%';[My-Readwritesplit]
type=service
router=readwritesplit
reuse_prepared_statements=true[PsReuse]
type=filter
module=psreuse
[My-Readwritesplit]
type=service
router=readwritesplit
filters=PsReuse[My-Readwritesplit]
type=service
router=readwritesplit
optimistic_trx=true[OptimisticTrx]
type=filter
module=optimistictrx
[My-Readwritesplit]
type=service
router=readwritesplit
transaction_replay=true
filters=OptimisticTrxmaxctrl alter service My-Service connection_keepalive 30000maxctrl alter service My-Service connection_keepalive 30000ms[CSMonitor]
type=monitor
module=csmon
version=1.5
...[My Server]
...
[My Service]
...
servers=My Server[MyServer]
...
[MyService]
...
servers=MyServersome_param=60s
some_param=60000ms[The-Service]
type=service
passwd=some-service-password
...
[The-Monitor]
type=monitor
passwd=some-monitor-password
...[The-Service]
type=service
password=some-service-password
...
[The-Monitor]
type=monitor
password=some-monitor-password
...user@host $ maxadmin -u adminGRANT SELECT ON mysql.tables_priv TO 'username'@'maxscalehost';[RW-Split-Router]
type=service
router=readwritesplit
servers=server1,server2,server3,server4
user=jdoe
passwd=BD26E4139A15280CA882264AA1551C70
ssl=required
ssl_cert=/home/user/certs/server-cert.pem
ssl_key=/home/user/certs/server-key.pem
ssl_ca_cert=/home/user/certs/ca.pem
ssl_version=TLSv12
[RW-Split-Listener]
type=listener
service=RW-Split-Router
port=3306[RW-Split-Router]
type=service
router=readwritesplit
servers=server1,server2,server3,server4
user=jdoe
passwd=BD26E4139A15280CA882264AA1551C70
[RW-Split-Listener]
type=listener
service=RW-Split-Router
port=3306
ssl=required
ssl_cert=/home/user/certs/server-cert.pem
ssl_key=/home/user/certs/server-key.pem
ssl_ca_cert=/home/user/certs/ca.pem
ssl_version=TLSv12[binlog_configuration]
master_host=127.0.0.1
master_port=3308
master_user=repl
master_password=somepass
filestem=repl-bin# Re-install init scripts
cd /usr/local/mariadb-maxscale
./postinst
WEBINAR
New innovations in MaxScale 25.01 and Enterprise Platform