All pages
Powered by GitBook
1 of 2

Loading...

Loading...

Upgrade to MaxScale 25.01

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.

Term Definitions

Term
Definition

Backing Up Configuration

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:

Upgrade

MariaDB Corporation provides package repositories for YUM (RHEL, CentOS, Rocky Linux), APT (Debian, Ubuntu), and ZYpp (SLES).

Stop the MaxScale Process

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

Upgrade MaxScale following the instructions for your Linux distribution:

Upgrade via DNF (RHEL)

1

Customer Download Token

Retrieve your Customer Download Token at and substitute for CUSTOMER_DOWNLOAD_TOKEN in the following directions.

2

Configure YUM / DNF package repository

Pass the version you want to install using the --mariadb-maxscale-version

Configuration

Configuration parameters can change between releases of MariaDB MaxScale, which can have unexpected results.

  1. Determine which parameters have changed by reviewing all the changes made between your current release and the upgrade release.

  2. Change the specific parameters in maxscale.cnf.

Changes in MaxScale Versions

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

Starting the MaxScale Instance

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:

Operation
Command

Testing

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.

Checking MaxScale Status

Check that MaxScale is running properly by using the utility:

flag to the
script. The following directions reference 25.01.

To configure YUM package repositories:

3

Upgrade MariaDB MaxScale and package dependencies:

4

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)

1

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.

2

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:

3

Upgrade MariaDB MaxScale and package dependencies

4

Configure MaxScale

The upgrade process only loads MaxScale onto the system. MaxScale requires configuration before MaxScale is ready for use.

Upgrade via ZYpp (SLES)

1

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.\

2

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:

3

Upgrade MariaDB MaxScale and package dependencies

4

Configure MaxScale

The upgrade process only loads MaxScale onto the system. MaxScale requires configuration before MaxScale is ready for use.

monitor has been removed after previously being deprecated in MaxScale 22.08.2.
  • 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:

    Command-line Option
    Replaced by 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:

    Command-line Option
    Replaced by 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

    https://customers.mariadb.com/downloads/token/
    MaxCtrl
    sudo dnf update maxscale
    GRANT 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.cnf
    sudo systemctl stop maxscale
    sudo 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 curl
    curl -LsSO https://dlm.mariadb.com/enterprise-release-helpers/mariadb_es_repo_setup
    chmod +x mariadb_es_repo_setup
    sudo ./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 node3
    maxctrl create monitor mdb_monitor mariadbmon \
       user='mxs' \
       password='maxscale_passwd' \
       replication_user='repl_user' \
       replication_password='repl_pass' \
       --servers node1 node2 node3

    detect_standalone_master

  • detect_stale_master (replaced by master_conditions)

  • detect_stale_slave (replaced by slave_conditions)

  • For example:

    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

    MariaDB Monitor (mariadbmon)
    ColumnStore Monitor (csmon)
    Binlog Router (binlogrouter)
    sudo apt install curl
    curl -LsSO https://dlm.mariadb.com/enterprise-release-helpers/mariadb_es_repo_setup
    chmod +x mariadb_es_repo_setup
    sudo ./mariadb_es_repo_setup --token="CUSTOMER_DOWNLOAD_TOKEN" --apply \
       --mariadb-maxscale-version="25.01"
    sudo apt update
    sudo apt install --only-upgrade maxscale
    sudo zypper install curl
    curl -LsSO https://dlm.mariadb.com/enterprise-release-helpers/mariadb_es_repo_setup
    echo "4d483b4df193831a0101d3dfa7fb3e17411dda7fc06c31be4f9e089c325403c0  mariadb_es_repo_setup" \
        | sha256sum -c -
    chmod +x mariadb_es_repo_setup
    sudo ./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_master

    Upgrading MaxScale

    Review 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.

    Upgrading MariaDB MaxScale from 25.01 to 25.10

    Service User Grants

    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:

    Monitor timeouts

    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.

    Upgrading MariaDB MaxScale from 24.02 to 25.01

    Readwritesplit

    reuse_prepared_statements

    The 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_trx

    The 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:

    Upgrading MariaDB MaxScale from 23.08 to 24.02

    Downgrading to older major versions

    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

    Upgrading MariaDB MaxScale from 23.02 to 23.08

    MariaDB Monitor switchover requires an additional grant on MariaDB Server 10.5 and later. See for more information.

    Upgrading MariaDB MaxScale from 22.08 to 23.02

    Removed Features

    • The csmon and auroramon monitors have been removed.

    • The obsolete maxctrl drain command has been removed.

    • The maxctrl cluster commands have been removed.

    Upgrading MariaDB MaxScale from 21.06 to 22.08

    Removed Features

    • 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.

    Upgrading MariaDB MaxScale from 2.5 to 21.06

    MaxScale 6.4 was renamed to 21.06 in May 2024. Thus, what would have been released as 6.4.16 in June, was released as 21.06.16. The purpose of this change is to make the versioning scheme used by all MaxScale series identical. 21.06 denotes the year and month when the first 6 release was made.

    Duration Type Parameters

    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.

    Changed Parameters

    threads

    The default value of threads was changed to auto.

    Removed Parameters

    Core Parameters

    The following deprecated core parameters have been removed:

    • thread_stack_size

    Schemarouter

    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.

    mariadbmon

    • MariaDBMonitor settings ignore_external_masters, detect_replication_lagdetect_standalone_master, detect_stale_master and detect_stale_slave have been removed. The first two were ineffective, the latter three are replaced by master_conditions and slave_conditions.

    Session Command History

    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.

    Upgrading MariaDB MaxScale from 2.4 to 2.5

    MaxAdmin

    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.

    Authentication

    The credentials used by services now require additional grants. For a full list of required grants, refer to the .

    MariaDB-Monitor

    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.

    Password encryption

    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.

    Default Server State

    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.

    Columnstore Monitor

    It is now mandatory to specify in the configuration what version the monitored Columnstore cluster is.

    New binlog router

    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.

    Tee Filter

    The tee filter parameter service has been deprecated in favor of the target parameter. All usages of service can be replaced with target.

    Upgrading MariaDB MaxScale from 2.3 to 2.4

    Section Names

    Reserved Names

    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 Names

    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

    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,

    Improved Admin User Encryption

    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.

    MariaDB-Monitor

    The following settings have been removed and cause a startup error if defined:

    • mysql51_replication

    • multimaster

    • allow_cluster_recovery.

    ReadWriteSplit

    • 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.

    Upgrading MariaDB MaxScale from 2.2 to 2.3

    Increased Memory Use

    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.

    Unknown Global Parameters

    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 deprecated

    In 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 ignored

    Authenticator options are now only used with listeners.

    Upgrading MariaDB MaxScale from 2.1 to 2.2

    Administrative Users

    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.

    Regular Expression Parameters

    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

    Binlog server automatically accepts GTID connection from MariaDB 10 slave servers by saving all incoming GTIDs into a SQLite map database.

    MaxCtrl Included in Main Package

    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.

    Upgrading MariaDB MaxScale from 2.0 to 2.1

    IPv6 Support

    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.

    Persisted Configuration Files

    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/.

    MaxScale Log Files

    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.

    ReadWriteSplit

    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.

    Persistent Connections

    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.

    User Data Cache

    The location of the MariaDB user data cache was moved from/var/cache/maxscale/<Service> to /var/cache/maxscale/<Service>/<Listener>.

    Galeramon Monitoring Algorithm

    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.

    MaxAdmin Editing Mode

    The default editing mode was changed from vim to emacs mode. To start maxadmin in the legacy mode, use the -i option.

    Upgrading MariaDB MaxScale from 1.4 to 2.0

    MaxAdmin

    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.

    MySQL Monitor

    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.

    Upgrading MaxScale from 1.3 to 1.4

    Service user permissions

    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.

    Password encryption

    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.

    SSL

    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.

    Upgrading MaxScale from 1.2 to 1.3

    Binlog Router

    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.

    Upgrading MaxScale from 1.1 to 1.2

    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.

    Installation

    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/.

    File location changes

    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.

    Running MaxScale without root permissions

    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.

    Upgrading MaxScale from 1.0 to 1.1

    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.

    Installation

    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.

    MaxAdmin changes

    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/

  • backend_timeout
    PsReuse
    OptimisticTrx
    Cluster Manipulation Grants
    protocol documentation
    MXS-619
    FHS-standard
    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=OptimisticTrx
    maxctrl alter service My-Service connection_keepalive 30000
    maxctrl 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=MyServer
    some_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 admin
    GRANT 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
    ColumnStore
    supported Operating Systems
    mariadb_es_repo_setup
    MariaDB Replication
    mariadb_es_repo_setup
    mariadb_es_repo_setup
    Cover

    WEBINAR

    New innovations in MaxScale 25.01 and Enterprise Platform

    Watch Now