From 174b59ef946524a18af6a84d650eb596ac4ebf3d Mon Sep 17 00:00:00 2001 From: Esa Korhonen Date: Mon, 10 Nov 2025 11:45:32 +0200 Subject: [PATCH 01/14] MXS-5688 Add documentation --- .../reference/maxscale-monitors/mariadb-monitor.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/maxscale/reference/maxscale-monitors/mariadb-monitor.md b/maxscale/reference/maxscale-monitors/mariadb-monitor.md index 18a4dcdf8..30208128c 100644 --- a/maxscale/reference/maxscale-monitors/mariadb-monitor.md +++ b/maxscale/reference/maxscale-monitors/mariadb-monitor.md @@ -1004,6 +1004,20 @@ The monitor does not enable or disable the event scheduler itself. For the event Events running at high frequency may cause replication to break in a failover scenario. If an old primary which was failed over restarts, its event scheduler will be on if set in the server configuration file. Its events will also remember their "ENABLED"-status and run when scheduled. This may happen before the monitor rejoins the server and disables the events. This should only be an issue for events running more often than the monitor interval or events that run immediately after the server has restarted. +#### `check_repl_on_stop_slave_timeout` + +- **Type**: [boolean](../../maxscale-management/deployment/maxscale-configuration-guide.md#booleans) +- **Mandatory**: No +- **Dynamic**: Yes +- **Default**: `false` + +Enables additional checks when a `STOP SLAVE` command times out during a cluster manipulation +operation such as failover or switchover. Normally, if `STOP SLAVE` times out, the monitor just +tries again until time runs out. With this setting enabled, the monitor additionally checks +replication connection status with `SHOW ALL SLAVES STATUS`. If replication has properly ended, the +monitor assumes `STOP SLAVE` completed successfully and continues with the operation. If replication +is still ongoing, the monitor prints the slave thread running states and retries `STOP SLAVE`. + ## Cooperative monitoring As of MaxScale 2.5, MariaDB-Monitor supports cooperative monitoring. This means that multiple monitors (typically in different MaxScale instances) can monitor the same backend server cluster and only one will be the primary monitor. Only the primary monitor may perform _switchover_, _failover_ or _rejoin_ operations. The primary also decides which server is the primary. Cooperative monitoring is enabled with the [cooperative\_monitoring\_locks](mariadb-monitor.md#cooperative_monitoring_locks)-setting. Even with this setting, only one monitor per server per MaxScale is allowed. This limitation can be circumvented by defining multiple copies of a server in the configuration file. From a3c8471323eed7f34e5b19d681ca98c085dfa944 Mon Sep 17 00:00:00 2001 From: Johan Wikman Date: Tue, 11 Nov 2025 16:30:58 +0200 Subject: [PATCH 02/14] Add initial docs for ExasolRouter --- maxscale/SUMMARY.md | 1 + .../maxscale-routers/maxscale-exasolrouter.md | 132 ++++++++++++++++++ 2 files changed, 133 insertions(+) create mode 100644 maxscale/reference/maxscale-routers/maxscale-exasolrouter.md diff --git a/maxscale/SUMMARY.md b/maxscale/SUMMARY.md index 17bc4babb..8e403cdb1 100644 --- a/maxscale/SUMMARY.md +++ b/maxscale/SUMMARY.md @@ -125,6 +125,7 @@ * [MaxScale Binlogrouter](reference/maxscale-routers/maxscale-binlogrouter.md) * [MaxScale Cat](reference/maxscale-routers/maxscale-cat.md) * [MaxScale Diff](reference/maxscale-routers/maxscale-diff.md) + * [MaxScale Exasolrouter](reference/maxscale-routers/maxscale-exasolrouter.md) * [MaxScale KafkaCDC](reference/maxscale-routers/maxscale-kafkacdc.md) * [MaxScale KafkaImporter](reference/maxscale-routers/maxscale-kafkaimporter.md) * [MaxScale Mirror](reference/maxscale-routers/maxscale-mirror.md) diff --git a/maxscale/reference/maxscale-routers/maxscale-exasolrouter.md b/maxscale/reference/maxscale-routers/maxscale-exasolrouter.md new file mode 100644 index 000000000..ce96e7409 --- /dev/null +++ b/maxscale/reference/maxscale-routers/maxscale-exasolrouter.md @@ -0,0 +1,132 @@ +# MaxScale ExasolRouter + +## Overview + +The _Exasol Router_ is a router that in itself is capable of using an Exasol +cluster. It is primarily intended to be used together with +[SmartRouter](maxscale-maxscale-smartrouter.md), with _writes_ being directed +to a regular MariaDB cluster and _reads_ to Exasol. + +The Exasol router differs from other routers in that its servers are not specified +by creating in the configuration file server entries that are referred to +using `servers`, `targets`, or `cluster`. Instead, the Exasol servers are +specified using the `connection_string` setting. + +## Users + +Currently, the Exasol router _always_ uses the service `user` and `password` +settings when accessing Exasol. That is, it uses those settings _regardless_ +of the identity of the client accessing MaxScale. + +## Settings + +### `connection_string` + +* Type: string +* Mandatory: Yes +* Dynamic: No + +Specifies the Exasol connection string. + +For example: +``` +connection_string=127.0.0.1:8563 + +connection_string=127.0.0.1/340F511A5A5179FF44A6828CC140FAEBAF1F2E2ECD73FBCD7EDD54C8B96A5886:8563 +``` +The latter alternative illustrates the case when the Exasol server uses a +self-signed certificate. + +### `install_preprocessor_script` + +* Type: [boolean](../../maxscale-management/deployment/maxscale-configuration-guide.md#booleans) +* Mandatory: No +* Dynamic: No +* Default `true` + +Specifies whether the MariaDB preprocessor script should be installed. +With the script installed, some MariaDB SQL constructs will be transparently +translated to equivalent Exasol SQL. + +At the time of this writing, the script looks like +``` +CREATE OR REPLACE PYTHON3 SCALAR SCRIPT UTIL.maria_preprocessor(request VARCHAR(2000000)) +EMITS (translated_sql VARCHAR(2000000)) AS +def adapter_call(request): + import sqlglot + try: + result = sqlglot.transpile( + request, + read='mysql', + write='exasol', + identify=True, + unsupported='ignore' + ) + return str(result[0]) + except Exception: + return request +/ +``` + +See [preprocessor_script](#preprocessor_script) + +### `preprocessor_script` + +* Type: Path +* Mandatory: No +* Dynamic: No +* Default: "" + +Specifies the location of a file from which the preprocessor script should +be read. With this setting, the built-in default script can be overridden. + +If the path is not _absolute_ it will be interpreted relative to the MaxScale +data directory. + +### `use_preprocessor_script` + +* Type: [boolean](../../maxscale-management/deployment/maxscale-configuration-guide.md#booleans) +* Mandatory: No +* Dynamic: No +* Default: `true` + +Specifies whether the preprocessor script should be used. If `true`, the +session creation will fail unless the script is present. + +## SmartRouter + +The primary purpose of the Exasol router is to be used together with +[SmartRouter](maxscale-smartrouter.md). A minimal configuration looks +as follows: +``` +[ExasolService] +type=service +router=exasolrouter +user=sys +password=exasol +connection_string=127.0.0.1/340F511A5A5179FF44A6828CC140FAEBAF1F2E2ECD73FBCD7EDD54C8B96A5886:8563 + +[Server1] +type=server +address=127.0.0.1 +port=3306 +protocol=mariadbbackend + +[SmartService] +type=service +router=smartrouter +user=MyUser +password=MyPassword +targets=Server1, ExasolService +master=Server1 +``` +With this setup, all writes will always be sent to `Server1`. Reads will initially +be sent to both `Server1` and `ExasolService` and once SmartRouter has learnt what +kind of reads are best sent to which target, it will exclusively send reads to +either `Server1` or `ExasolService` depending on which one is likely to provide +the response faster. + +Here, a single server was used as `master`. It could just as well be a +[ReadWriteSplit](maxscale-readwritesplit.md) service, in front of a MariaDB +cluster, which would provide HA. + From bebaf951d3abe06c32e956f2a28ab96720ac1766 Mon Sep 17 00:00:00 2001 From: Johan Wikman Date: Tue, 11 Nov 2025 16:36:08 +0200 Subject: [PATCH 03/14] Clarify one Exasol router paragraph --- .../reference/maxscale-routers/maxscale-exasolrouter.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/maxscale/reference/maxscale-routers/maxscale-exasolrouter.md b/maxscale/reference/maxscale-routers/maxscale-exasolrouter.md index ce96e7409..aa181df3b 100644 --- a/maxscale/reference/maxscale-routers/maxscale-exasolrouter.md +++ b/maxscale/reference/maxscale-routers/maxscale-exasolrouter.md @@ -7,10 +7,10 @@ cluster. It is primarily intended to be used together with [SmartRouter](maxscale-maxscale-smartrouter.md), with _writes_ being directed to a regular MariaDB cluster and _reads_ to Exasol. -The Exasol router differs from other routers in that its servers are not specified -by creating in the configuration file server entries that are referred to -using `servers`, `targets`, or `cluster`. Instead, the Exasol servers are -specified using the `connection_string` setting. +Unlike the other routers or MaxScale, the Exasol router does not use `servers`, +`targets`, or `cluster` entries in the configuration file to define servers. +Instead, Exasol database nodes are specified directly via the `connection_string` +setting. ## Users From d767f44340b51380a6322f0d00dab268c55b51f1 Mon Sep 17 00:00:00 2001 From: Johan Wikman Date: Wed, 12 Nov 2025 15:48:07 +0200 Subject: [PATCH 04/14] Update exasolrouter documentation --- .../maxscale-routers/maxscale-exasolrouter.md | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/maxscale/reference/maxscale-routers/maxscale-exasolrouter.md b/maxscale/reference/maxscale-routers/maxscale-exasolrouter.md index aa181df3b..80f213e0b 100644 --- a/maxscale/reference/maxscale-routers/maxscale-exasolrouter.md +++ b/maxscale/reference/maxscale-routers/maxscale-exasolrouter.md @@ -37,6 +37,19 @@ connection_string=127.0.0.1/340F511A5A5179FF44A6828CC140FAEBAF1F2E2ECD73FBCD7EDD The latter alternative illustrates the case when the Exasol server uses a self-signed certificate. +### `appearance` + +* Type: [enum](../../maxscale-management/deployment/maxscale-configuration-guide.md#enumerations) +* Mandatory: No +* Dynamic: No +* Values: `read_only`, `read_write` +* Default: `read_only` + +Specifies how the Exasol router appears to other components of MaxScale. + +**Note** Irrespective of the value, the router does not in any way restrict +what kind of queries can be run through the router. + ### `install_preprocessor_script` * Type: [boolean](../../maxscale-management/deployment/maxscale-configuration-guide.md#booleans) @@ -93,6 +106,39 @@ data directory. Specifies whether the preprocessor script should be used. If `true`, the session creation will fail unless the script is present. +## Transformations + +The Exasol Router transparently translates some MariaDB constructs to +equivalent Exasol constructs. + +### `COM_INIT_DB` + +The MariaDB COM_INIT_DB packet, using which the default database is changed, +is transformed into the statement `OPEN SCHEMA `. + +### SQL + +Currently a transformation will be made **only** if there is an **exact** +match (apart from case) with the MariaDb SQL. At this point the goal is +to match what the MariaDB command line client sends. + +| MariaDb | Exasol | +| ------- | ------- | +| SELECT @@VERSION_COMMENT LIMIT 1 | SELECT 'Exasol' AS '@@version_comment' LIMIT 1 | +| SELECT DATABASE() | SELECT TABLE_NAME AS 'Database()' FROM EXA_ALL_TABLES WHERE TABLE_SCHEMA = CURRENT_SCHEMA | +| SHOW DATABASES | SELECT SCHEMA_NAME AS 'Database' FROM EXA_SCHEMAS ORDER BY SCHEMA_NAME | +| SHOW TABLES | SELECT TABLE_NAME AS 'Tables' FROM SYS.EXA_ALL_TABLES WHERE TABLE_SCHEMA = CURRENT_SCHEMA ORDER BY TABLE_NAME | + +## Limitations + +The following is assumed regarding the data returned by Exasol: +* The value in a column of a row is assumed to be no more than 1024 bytes, and +* the complete returned result set will fit in a 16MB MariaDB protocol packet. + +If these limitations are exceeded, the router may malfunction or crash. + +These limitations are temporary and will be removed before Dec 8. + ## SmartRouter The primary purpose of the Exasol router is to be used together with From f65a7d3935e7b104396cb6dbffc55389a2fd443d Mon Sep 17 00:00:00 2001 From: Johan Wikman Date: Wed, 19 Nov 2025 12:21:08 +0200 Subject: [PATCH 05/14] MXS: Update SmartRouter documentation Add entry for the new 'forward_nonmaster_errors' setting. --- .../maxscale-routers/maxscale-smartrouter.md | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/maxscale/reference/maxscale-routers/maxscale-smartrouter.md b/maxscale/reference/maxscale-routers/maxscale-smartrouter.md index 5f6bfe2ac..8e8af6456 100644 --- a/maxscale/reference/maxscale-routers/maxscale-smartrouter.md +++ b/maxscale/reference/maxscale-routers/maxscale-smartrouter.md @@ -36,6 +36,27 @@ InnoDB engine. The ReadWriteSplit [documentation](maxscale-readwritesplit.md) has more on primary-replica setup. +### `forward_nonmaster_errors` + +* Type: [boolean](../../maxscale-management/deployment/maxscale-configuration-guide.md#booleans) +* Mandatory: No +* Dynamic: No +* Default: true + +Specifies whether an error returned by a target other than the [master](#master), +should be returned to the client, if it arrives faster than the response from +the master. If all targets are MariaDB servers, the default value of `true` +is usually the correct choise. If a non-master target is not a MariaDB server, +but, for instance, a server used over ODBC, `false` is usually the correct choise. + +For instance, if the master is a regular MariaDB server, but a non-master target +is a server that does not support the `SLEEP` function, then +``` +SELECT SLEEP(5); +``` +would with the default `forward_nonmaster_errors=true` result in an error, but +with `forward_nonmaster_errors=false`, the behaviour would be that of MariaDB. + **Example** Suppose we have a Transactional service like From 39aa57c3e6bbdfffcba8a5fa7015994095b511a9 Mon Sep 17 00:00:00 2001 From: Johan Wikman Date: Thu, 20 Nov 2025 15:35:42 +0200 Subject: [PATCH 06/14] MXS: Remove doc for forward_nonmaster_errors It never makes sense to forward errors from non-master servers, so the functionality was removed. Thus the documentaiton must also be removed. --- .../maxscale-routers/maxscale-smartrouter.md | 23 +------------------ 1 file changed, 1 insertion(+), 22 deletions(-) diff --git a/maxscale/reference/maxscale-routers/maxscale-smartrouter.md b/maxscale/reference/maxscale-routers/maxscale-smartrouter.md index 8e8af6456..698c5c315 100644 --- a/maxscale/reference/maxscale-routers/maxscale-smartrouter.md +++ b/maxscale/reference/maxscale-routers/maxscale-smartrouter.md @@ -36,28 +36,7 @@ InnoDB engine. The ReadWriteSplit [documentation](maxscale-readwritesplit.md) has more on primary-replica setup. -### `forward_nonmaster_errors` - -* Type: [boolean](../../maxscale-management/deployment/maxscale-configuration-guide.md#booleans) -* Mandatory: No -* Dynamic: No -* Default: true - -Specifies whether an error returned by a target other than the [master](#master), -should be returned to the client, if it arrives faster than the response from -the master. If all targets are MariaDB servers, the default value of `true` -is usually the correct choise. If a non-master target is not a MariaDB server, -but, for instance, a server used over ODBC, `false` is usually the correct choise. - -For instance, if the master is a regular MariaDB server, but a non-master target -is a server that does not support the `SLEEP` function, then -``` -SELECT SLEEP(5); -``` -would with the default `forward_nonmaster_errors=true` result in an error, but -with `forward_nonmaster_errors=false`, the behaviour would be that of MariaDB. - -**Example** +#### Example Suppose we have a Transactional service like From 6fdfad25650dbc24d3df320a9408b8ca8644618f Mon Sep 17 00:00:00 2001 From: Johan Wikman Date: Fri, 28 Nov 2025 16:02:27 +0200 Subject: [PATCH 07/14] MXS Add scripts for generating release notes --- .../maxscale/script/generate_release_notes.sh | 86 ++++++++++++++++++ release-notes/maxscale/script/list_fixed.sh | 14 +++ release-notes/maxscale/script/process.py | 88 +++++++++++++++++++ 3 files changed, 188 insertions(+) create mode 100755 release-notes/maxscale/script/generate_release_notes.sh create mode 100755 release-notes/maxscale/script/list_fixed.sh create mode 100755 release-notes/maxscale/script/process.py diff --git a/release-notes/maxscale/script/generate_release_notes.sh b/release-notes/maxscale/script/generate_release_notes.sh new file mode 100755 index 000000000..d138eb22d --- /dev/null +++ b/release-notes/maxscale/script/generate_release_notes.sh @@ -0,0 +1,86 @@ +#!/bin/bash + +if [ "$1" == "" ] +then + echo "usage: $0 major.minor.patch [maturity]" + exit 1 +fi + +VERSION=$1 + +patch=${VERSION##*.} +major_minor=${VERSION%.*} +major=${major_minor%%.*} +minor=${major_minor##*.} + +if [ "$2" == "" ] +then + echo "No maturity specified, assuming GA." + maturity="GA" +else + maturity=$2 +fi + +if [ ! -d "$major_minor" ] +then + echo "error: $major_minor does not exist or is not a directory." + exit 1 +fi + +# Script location +SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" + +output=$major.$minor/$VERSION.md + +echo Creating/overwriting $output. +echo + +# For version 6, this is just the major version. For other versions, it +# is $major.$minor. Needs to be updated whenever a new major release is +# out or if the versioning scheme for MaxScale changes. +upgrade_version="$major.$minor" + +cat < $output +# MariaDB MaxScale ${VERSION} Release Notes + +Release ${VERSION} is a ${maturity} release. + +This document describes the changes in release ${VERSION}, 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](https://app.gitbook.com/s/0pSbu5DcMSW4KwAkUcmX/maxscale-management/deployment/upgrading-maxscale) +for this MaxScale version. + +For any problems you encounter, please consider submitting a bug +report on [our Jira](https://jira.mariadb.org/projects/MXS). + +`${SCRIPT_DIR}/list_fixed.sh ${VERSION}` + +## Known Issues and Limitations + +There are some limitations and known issues within this version of MaxScale. +For more information, please refer to the +[Limitations](https://app.gitbook.com/s/0pSbu5DcMSW4KwAkUcmX/maxscale-management/mariadb-maxscale-limitations-guide) +document. + +## Packaging + +RPM and Debian packages are provided for the supported Linux distributions. + +Packages can be downloaded [here](https://mariadb.com/downloads). + +## Source Code + +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](https://github.com/mariadb-corporation/MaxScale). +EOF + +echo Manually update the following files: +echo - $major.$minor/$major.$minor-changelog.md +echo - ./all-releases.md +echo - ../SUMMARY.md. diff --git a/release-notes/maxscale/script/list_fixed.sh b/release-notes/maxscale/script/list_fixed.sh new file mode 100755 index 000000000..72d9e4858 --- /dev/null +++ b/release-notes/maxscale/script/list_fixed.sh @@ -0,0 +1,14 @@ +#!/bin/bash + + +if [ $# -ne 1 ] +then + echo "USAGE: $0 VERSION" + exit 1 +fi + +# Script location +DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" + +version=$1 +curl -s "https://jira.mariadb.org/sr/jira.issueviews:searchrequest-csv-all-fields/temp/SearchRequest.csv?jqlQuery=project+%3D+MXS+AND+status+%3D+Closed+AND+fixVersion+%3D+$version" | $DIR/process.py diff --git a/release-notes/maxscale/script/process.py b/release-notes/maxscale/script/process.py new file mode 100755 index 000000000..cb350b30d --- /dev/null +++ b/release-notes/maxscale/script/process.py @@ -0,0 +1,88 @@ +#!/usr/bin/env python3 + +import sys +import csv +import itertools + +# Loop over issues. If an issue has a label that starts with 'CVE-', +# assume the label is a CVE id. If an issue has multiple CVE labels, +# the issue will be added multiple times (by design). +# +def find_cves(issues): + cves=[] + + for i in issues: + labels_field = i.get('Labels') + if labels_field: + labels=labels_field.split(',') + for label in labels: + if label[0:4].upper() == 'CVE-': + cve = {}; + cve['Id'] = label + cve['Issue'] = i + cves.append(cve) + + return cves + +def print_cves(header, cves): + print(header) + print() + + for cve in cves: + id = cve['Id'] + i = cve['Issue'] + print("* [" + id + "](https://www.cve.org/CVERecord?id=" + id + ") Fixed by [" + i['Issue key'] + "](https://jira.mariadb.org/browse/" + i['Issue key'] + ") " + i['Summary']) + + print() + + +bugs = [] +new_features = [] +tasks = [] + +reader = csv.reader(sys.stdin.readlines()) +field_names = next(reader) + +for row in reader: + # In case there are multiple values of a particular field, collect + # all values separated by a ','. + groups = itertools.groupby(zip(field_names, row), key=lambda x: x[0]) + row = dict([(k, ','.join([v[1] for v in g])) for k, g in groups]) + + if row['Issue Type'] == 'Bug': + bugs.append(row) + elif row['Issue Type'] == 'New Feature': + new_features.append(row) + elif row['Issue Type'] == 'Task': + tasks.append(row) + +# Check if some bug-fix fixes a CVE. These are assumed to be CVEs of MaxScale. +cves = find_cves(bugs) + +if len(cves) > 0: + print_cves("## CVEs resolved.", cves) + +# If there are tasks, check if any of them fixes a CVE, which is assumed +# to be a non-MaxScale one; e.g. a CVE of an external library. +if len(tasks) > 0: + cves = find_cves(tasks) + + if len(cves) > 0: + print_cves("## External CVEs resolved.", cves) + +if len(new_features) > 0: + print("## New Features") + print() + + for f in new_features: + print("* [" + f['Issue key'] + "](https://jira.mariadb.org/browse/" + f['Issue key'] + ") " + f['Summary']) + print() + + +print("## Bug fixes") +print() + +for b in bugs: + print("* [" + b['Issue key'] + "](https://jira.mariadb.org/browse/" + b['Issue key'] + ") " + b['Summary']) + +print() From a0b14c71fad9cdfbef8561482f7ede04e032bbd5 Mon Sep 17 00:00:00 2001 From: Johan Wikman Date: Tue, 2 Dec 2025 21:11:10 +0200 Subject: [PATCH 08/14] MXS Add 22.08.19 and 23.02.16 release notes --- release-notes/SUMMARY.md | 2 + .../maxscale/22.08/22.08-changelog.md | 1 + release-notes/maxscale/22.08/22.08.19.md | 46 ++++++++++++++++++ .../maxscale/23.02/23.02-changelog.md | 1 + release-notes/maxscale/23.02/23.02.16.md | 47 +++++++++++++++++++ release-notes/maxscale/all-releases.md | 4 +- 6 files changed, 100 insertions(+), 1 deletion(-) create mode 100644 release-notes/maxscale/22.08/22.08.19.md create mode 100644 release-notes/maxscale/23.02/23.02.16.md diff --git a/release-notes/SUMMARY.md b/release-notes/SUMMARY.md index cd6b991cf..a8ea8c577 100644 --- a/release-notes/SUMMARY.md +++ b/release-notes/SUMMARY.md @@ -1416,6 +1416,7 @@ * [MaxScale 23.08.0 Release Notes](maxscale/23.08/23.08.0.md) * [MaxScale 23.08 Changelog](maxscale/23.08/23.08-changelog.md) * [MariaDB MaxScale 23.02 Release Notes](maxscale/23.02/README.md) + * [MaxScale 23.02.16 Release Notes](maxscale/23.02/23.02.16.md) * [MaxScale 23.02.15 Release Notes](maxscale/23.02/23.02.15.md) * [MaxScale 23.02.14 Release Notes](maxscale/23.02/23.02.14.md) * [MaxScale 23.02.13 Release Notes](maxscale/23.02/23.02.13.md) @@ -1434,6 +1435,7 @@ * [MaxScale 23.02.0 Release Notes](maxscale/23.02/23.02.0.md) * [MaxScale 23.02 Changelog](maxscale/23.02/23.02-changelog.md) * [MariaDB MaxScale 22.08 Release Notes](maxscale/22.08/README.md) + * [MaxScale 22.08.19 Release Notes](maxscale/22.08/22.08.19.md) * [MaxScale 22.08.18 Release Notes](maxscale/22.08/22.08.18.md) * [MaxScale 22.08.17 Release Notes](maxscale/22.08/22.08.17.md) * [MaxScale 22.08.16 Release Notes](maxscale/22.08/22.08.16.md) diff --git a/release-notes/maxscale/22.08/22.08-changelog.md b/release-notes/maxscale/22.08/22.08-changelog.md index 7cd5f6d46..78d8c5b1e 100644 --- a/release-notes/maxscale/22.08/22.08-changelog.md +++ b/release-notes/maxscale/22.08/22.08-changelog.md @@ -28,6 +28,7 @@ For more details, please refer to: +* [MariaDB MaxScale 22.08.19 Release Notes](22.08.19.md) * [MariaDB MaxScale 22.08.18 Release Notes](22.08.18.md) * [MariaDB MaxScale 22.08.17 Release Notes](22.08.17.md) * [MariaDB MaxScale 22.08.16 Release Notes](22.08.16.md) diff --git a/release-notes/maxscale/22.08/22.08.19.md b/release-notes/maxscale/22.08/22.08.19.md new file mode 100644 index 000000000..4929aa401 --- /dev/null +++ b/release-notes/maxscale/22.08/22.08.19.md @@ -0,0 +1,46 @@ +# MariaDB MaxScale 22.08.19 Release Notes + +Release 22.08.19 is a GA release. + +This document describes the changes in release 22.08.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](https://app.gitbook.com/s/0pSbu5DcMSW4KwAkUcmX/maxscale-management/deployment/upgrading-maxscale) +for this MaxScale version. + +For any problems you encounter, please consider submitting a bug +report on [our Jira](https://jira.mariadb.org/projects/MXS). + +## Bug fixes + +* [MXS-6013](https://jira.mariadb.org/browse/MXS-6013) SHOW CREATE TABLE doesn't detect if a temporary table is used +* [MXS-5983](https://jira.mariadb.org/browse/MXS-5983) Default users_refresh_interval causes repeated user account loading +* [MXS-5963](https://jira.mariadb.org/browse/MXS-5963) maxctrl create report --archive error reporting produces errors +* [MXS-5954](https://jira.mariadb.org/browse/MXS-5954) kafkacdc doesn't escape db name identifiers resulting in errors +* [MXS-5948](https://jira.mariadb.org/browse/MXS-5948) Database names with dashes are not properly escaped when disabling events +* [MXS-5947](https://jira.mariadb.org/browse/MXS-5947) Fix for MXS-5196 can break "maxctrl create report" +* [MXS-5946](https://jira.mariadb.org/browse/MXS-5946) MaxKeys usage message is obsolete +* [MXS-5717](https://jira.mariadb.org/browse/MXS-5717) Rebuild Replica fails when using MaxScale encrypted password for monitor user + +## Known Issues and Limitations + +There are some limitations and known issues within this version of MaxScale. +For more information, please refer to the +[Limitations](https://app.gitbook.com/s/0pSbu5DcMSW4KwAkUcmX/maxscale-management/mariadb-maxscale-limitations-guide) +document. + +## Packaging + +RPM and Debian packages are provided for the supported Linux distributions. + +Packages can be downloaded [here](https://mariadb.com/downloads). + +## Source Code + +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](https://github.com/mariadb-corporation/MaxScale). diff --git a/release-notes/maxscale/23.02/23.02-changelog.md b/release-notes/maxscale/23.02/23.02-changelog.md index cf1270a73..894431c72 100644 --- a/release-notes/maxscale/23.02/23.02-changelog.md +++ b/release-notes/maxscale/23.02/23.02-changelog.md @@ -48,6 +48,7 @@ For more details, please refer to: +* [MariaDB MaxScale 23.02.16 Release Notes](23.02.16.md) * [MariaDB MaxScale 23.02.15 Release Notes](23.02.15.md) * [MariaDB MaxScale 23.02.14 Release Notes](23.02.14.md) * [MariaDB MaxScale 23.02.13 Release Notes](23.02.13.md) diff --git a/release-notes/maxscale/23.02/23.02.16.md b/release-notes/maxscale/23.02/23.02.16.md new file mode 100644 index 000000000..cbd271188 --- /dev/null +++ b/release-notes/maxscale/23.02/23.02.16.md @@ -0,0 +1,47 @@ +# MariaDB MaxScale 23.02.16 Release Notes + +Release 23.02.16 is a GA release. + +This document describes the changes in release 23.02.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](https://app.gitbook.com/s/0pSbu5DcMSW4KwAkUcmX/maxscale-management/deployment/upgrading-maxscale) +for this MaxScale version. + +For any problems you encounter, please consider submitting a bug +report on [our Jira](https://jira.mariadb.org/projects/MXS). + +## Bug fixes + +* [MXS-6013](https://jira.mariadb.org/browse/MXS-6013) SHOW CREATE TABLE doesn't detect if a temporary table is used +* [MXS-5983](https://jira.mariadb.org/browse/MXS-5983) Default users_refresh_interval causes repeated user account loading +* [MXS-5963](https://jira.mariadb.org/browse/MXS-5963) maxctrl create report --archive error reporting produces errors +* [MXS-5954](https://jira.mariadb.org/browse/MXS-5954) kafkacdc doesn't escape db name identifiers resulting in errors +* [MXS-5948](https://jira.mariadb.org/browse/MXS-5948) Database names with dashes are not properly escaped when disabling events +* [MXS-5947](https://jira.mariadb.org/browse/MXS-5947) Fix for MXS-5196 can break "maxctrl create report" +* [MXS-5946](https://jira.mariadb.org/browse/MXS-5946) MaxKeys usage message is obsolete +* [MXS-5717](https://jira.mariadb.org/browse/MXS-5717) Rebuild Replica fails when using MaxScale encrypted password for monitor user +* [MXS-5688](https://jira.mariadb.org/browse/MXS-5688) MariaDBMon should not solely depend on "STOP SLAVE" when doing failover/switchover + +## Known Issues and Limitations + +There are some limitations and known issues within this version of MaxScale. +For more information, please refer to the +[Limitations](https://app.gitbook.com/s/0pSbu5DcMSW4KwAkUcmX/maxscale-management/mariadb-maxscale-limitations-guide) +document. + +## Packaging + +RPM and Debian packages are provided for the supported Linux distributions. + +Packages can be downloaded [here](https://mariadb.com/downloads). + +## Source Code + +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](https://github.com/mariadb-corporation/MaxScale). diff --git a/release-notes/maxscale/all-releases.md b/release-notes/maxscale/all-releases.md index 8742e3f6c..3a3c6c162 100644 --- a/release-notes/maxscale/all-releases.md +++ b/release-notes/maxscale/all-releases.md @@ -53,6 +53,7 @@ description: A list of all MariaDB MaxScale releases | Version | Release Date | Release Status | | ------------------------------------------ | ------------ | -------------- | +| [23.02.16](23.02/23.02.16.md) | 2025-12-08 | Stable (GA) | | [23.02.15](23.02/23.02.15.md) | 2025-09-08 | Stable (GA) | | [23.02.14](23.02/23.02.14.md) | 2025-06-05 | Stable (GA) | | [23.02.13](23.02/23.02.13.md) | 2025-03-07 | Stable (GA) | @@ -65,7 +66,7 @@ description: A list of all MariaDB MaxScale releases | [23.02.5](23.02/23.02.5.md) | 2023-10-28 | Stable (GA) | | [23.02.4](23.02/23.02.4.md) | 2023-08-29 | Stable (GA) | | [23.02.3](23.02/23.02.3.md) | 2023-08-04 | Stable (GA) | -| [23.02.2](../columnstore/23.02/23.02.2.md) | 2023-05-26 | Stable (GA) | +| [23.02.2](23.02/23.02.2.md) | 2023-05-26 | Stable (GA) | | [23.02.1](23.02/23.02.1.md) | 2023-03-15 | Stable (GA) | | [23.02.0](23.02/23.02.0.md) | 2023-02-22 | Stable (GA) | @@ -73,6 +74,7 @@ description: A list of all MariaDB MaxScale releases | Version | Release Date | Release Status | | ----------------------------- | ------------ | -------------- | +| [22.08.19](22.08/22.08.19.md) | 2025-12-08 | Stable (GA) | | [22.08.18](22.08/22.08.18.md) | 2025-09-08 | Stable (GA) | | [22.08.17](22.08/22.08.17.md) | 2025-06-04 | Stable (GA) | | [22.08.16](22.08/22.08.16.md) | 2025-03-05 | Stable (GA) | From 40471ab7672dc1e90f9e37cbdd963b2b98611f65 Mon Sep 17 00:00:00 2001 From: Johan Wikman Date: Thu, 4 Dec 2025 10:52:18 +0200 Subject: [PATCH 09/14] MXS Update release notes and links 22.08, 23.02, 23.08 and 24.02 --- release-notes/SUMMARY.md | 1 + .../maxscale/24.02/24.02-changelog.md | 3 ++ release-notes/maxscale/24.02/24.02.8.md | 50 +++++++++++++++++++ release-notes/maxscale/all-releases.md | 1 + 4 files changed, 55 insertions(+) create mode 100644 release-notes/maxscale/24.02/24.02.8.md diff --git a/release-notes/SUMMARY.md b/release-notes/SUMMARY.md index a8ea8c577..c4b3de0c0 100644 --- a/release-notes/SUMMARY.md +++ b/release-notes/SUMMARY.md @@ -1392,6 +1392,7 @@ * [MaxScale 25.01.1 Release Notes](maxscale/25.01/25.01.1.md) * [MaxScale 25.01 Changelog](maxscale/25.01/25.01-changelog.md) * [MariaDB MaxScale 24.02 Release Notes](maxscale/24.02/README.md) + * [MaxScale 24.02.8 Release Notes](maxscale/24.02/24.02.8.md) * [MaxScale 24.02.7 Release Notes](maxscale/24.02/24.02.7.md) * [MaxScale 24.02.6 Release Notes](maxscale/24.02/24.02.6.md) * [MaxScale 24.02.5 Release Notes](maxscale/24.02/24.02.5.md) diff --git a/release-notes/maxscale/24.02/24.02-changelog.md b/release-notes/maxscale/24.02/24.02-changelog.md index 255e7f77a..40dd05f16 100644 --- a/release-notes/maxscale/24.02/24.02-changelog.md +++ b/release-notes/maxscale/24.02/24.02-changelog.md @@ -60,6 +60,9 @@ For more details, please refer to: +* [MariaDB MaxScale 24.02.8 Release Notes](24.02.8.md) +* [MariaDB MaxScale 24.02.7 Release Notes](24.02.7.md) +* [MariaDB MaxScale 24.02.6 Release Notes](24.02.6.md) * [MariaDB MaxScale 24.02.5 Release Notes](24.02.5.md) * [MariaDB MaxScale 24.02.4 Release Notes](24.02.4.md) * [MariaDB MaxScale 24.02.3 Release Notes](24.02.3.md) diff --git a/release-notes/maxscale/24.02/24.02.8.md b/release-notes/maxscale/24.02/24.02.8.md new file mode 100644 index 000000000..37958c33f --- /dev/null +++ b/release-notes/maxscale/24.02/24.02.8.md @@ -0,0 +1,50 @@ +# MariaDB MaxScale 24.02.8 Release Notes + +Release 24.02.8 is a GA release. + +This document describes the changes in release 24.02.8, when compared to the +previous release in the same series. + +If you are upgrading from an older major version of MaxScale, please read the +[upgrading document](https://app.gitbook.com/s/0pSbu5DcMSW4KwAkUcmX/maxscale-management/deployment/upgrading-maxscale) +for this MaxScale version. + +For any problems you encounter, please consider submitting a bug +report on [our Jira](https://jira.mariadb.org/projects/MXS). + +## Bug fixes + +* [MXS-6031](https://jira.mariadb.org/browse/MXS-6031) No error message if connection to server fails during start of switchover +* [MXS-6013](https://jira.mariadb.org/browse/MXS-6013) SHOW CREATE TABLE doesn't detect if a temporary table is used +* [MXS-6005](https://jira.mariadb.org/browse/MXS-6005) Signal 11 crash +* [MXS-5983](https://jira.mariadb.org/browse/MXS-5983) Default users_refresh_interval causes repeated user account loading +* [MXS-5963](https://jira.mariadb.org/browse/MXS-5963) maxctrl create report --archive error reporting produces errors +* [MXS-5954](https://jira.mariadb.org/browse/MXS-5954) kafkacdc doesn't escape db name identifiers resulting in errors +* [MXS-5952](https://jira.mariadb.org/browse/MXS-5952) MaxScale failover fails with MASTER_SSL=1 default in MariaDB 11.4 +* [MXS-5948](https://jira.mariadb.org/browse/MXS-5948) Database names with dashes are not properly escaped when disabling events +* [MXS-5947](https://jira.mariadb.org/browse/MXS-5947) Fix for MXS-5196 can break "maxctrl create report" +* [MXS-5946](https://jira.mariadb.org/browse/MXS-5946) MaxKeys usage message is obsolete +* [MXS-5717](https://jira.mariadb.org/browse/MXS-5717) Rebuild Replica fails when using MaxScale encrypted password for monitor user +* [MXS-5688](https://jira.mariadb.org/browse/MXS-5688) MariaDBMon should not solely depend on "STOP SLAVE" when doing failover/switchover + +## Known Issues and Limitations + +There are some limitations and known issues within this version of MaxScale. +For more information, please refer to the +[Limitations](https://app.gitbook.com/s/0pSbu5DcMSW4KwAkUcmX/maxscale-management/mariadb-maxscale-limitations-guide) +document. + +## Packaging + +RPM and Debian packages are provided for the supported Linux distributions. + +Packages can be downloaded [here](https://mariadb.com/downloads). + +## Source Code + +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](https://github.com/mariadb-corporation/MaxScale). diff --git a/release-notes/maxscale/all-releases.md b/release-notes/maxscale/all-releases.md index 3a3c6c162..573695f1e 100644 --- a/release-notes/maxscale/all-releases.md +++ b/release-notes/maxscale/all-releases.md @@ -23,6 +23,7 @@ description: A list of all MariaDB MaxScale releases | Version | Release Date | Release Status | | --------------------------- | ------------ | -------------- | +| [24.02.8](24.02/24.02.8.md) | 2025-12-08 | Stable (GA) | | [24.02.7](24.02/24.02.7.md) | 2025-09-02 | Stable (GA) | | [24.02.6](24.02/24.02.6.md) | 2025-06-07 | Stable (GA) | | [24.02.5](24.02/24.02.5.md) | 2025-03-10 | Stable (GA) | From 09129ddadb088a5cea83f6d1040b29218a5a5c2c Mon Sep 17 00:00:00 2001 From: Johan Wikman Date: Wed, 3 Dec 2025 13:42:37 +0200 Subject: [PATCH 10/14] MXS Add 23.08.12 release notes --- release-notes/SUMMARY.md | 1 + .../maxscale/23.08/23.08-changelog.md | 1 + release-notes/maxscale/23.08/23.08.12.md | 49 +++++++++++++++++++ release-notes/maxscale/all-releases.md | 1 + 4 files changed, 52 insertions(+) create mode 100644 release-notes/maxscale/23.08/23.08.12.md diff --git a/release-notes/SUMMARY.md b/release-notes/SUMMARY.md index c4b3de0c0..0ec095054 100644 --- a/release-notes/SUMMARY.md +++ b/release-notes/SUMMARY.md @@ -1403,6 +1403,7 @@ * [MaxScale 24.02.0 Release Notes](maxscale/24.02/24.02.0.md) * [MaxScale 24.02 Changelog](maxscale/24.02/24.02-changelog.md) * [MariaDB MaxScale 23.08 Release Notes](maxscale/23.08/README.md) + * [MaxScale 23.08.12 Release Notes](maxscale/23.08/23.08.12.md) * [MaxScale 23.08.11 Release Notes](maxscale/23.08/23.08.11.md) * [MaxScale 23.08.10 Release Notes](maxscale/23.08/23.08.10.md) * [MaxScale 23.08.9 Release Notes](maxscale/23.08/23.08.9.md) diff --git a/release-notes/maxscale/23.08/23.08-changelog.md b/release-notes/maxscale/23.08/23.08-changelog.md index 259bdce14..2cbded941 100644 --- a/release-notes/maxscale/23.08/23.08-changelog.md +++ b/release-notes/maxscale/23.08/23.08-changelog.md @@ -54,6 +54,7 @@ For more details, please refer to: +* [MariaDB MaxScale 23.08.12 Release Notes](23.08.12.md) * [MariaDB MaxScale 23.08.11 Release Notes](23.08.11.md) * [MariaDB MaxScale 23.08.10 Release Notes](23.08.10.md) * [MariaDB MaxScale 23.08.9 Release Notes](23.08.9.md) diff --git a/release-notes/maxscale/23.08/23.08.12.md b/release-notes/maxscale/23.08/23.08.12.md new file mode 100644 index 000000000..b7e81ee62 --- /dev/null +++ b/release-notes/maxscale/23.08/23.08.12.md @@ -0,0 +1,49 @@ +# MariaDB MaxScale 23.08.12 Release Notes + +Release 23.08.12 is a GA release. + +This document describes the changes in release 23.08.12, when compared to the +previous release in the same series. + +If you are upgrading from an older major version of MaxScale, please read the +[upgrading document](https://app.gitbook.com/s/0pSbu5DcMSW4KwAkUcmX/maxscale-management/deployment/upgrading-maxscale) +for this MaxScale version. + +For any problems you encounter, please consider submitting a bug +report on [our Jira](https://jira.mariadb.org/projects/MXS). + +## Bug fixes + +* [MXS-6031](https://jira.mariadb.org/browse/MXS-6031) No error message if connection to server fails during start of switchover +* [MXS-6013](https://jira.mariadb.org/browse/MXS-6013) SHOW CREATE TABLE doesn't detect if a temporary table is used +* [MXS-6005](https://jira.mariadb.org/browse/MXS-6005) Signal 11 crash +* [MXS-5983](https://jira.mariadb.org/browse/MXS-5983) Default users_refresh_interval causes repeated user account loading +* [MXS-5963](https://jira.mariadb.org/browse/MXS-5963) maxctrl create report --archive error reporting produces errors +* [MXS-5954](https://jira.mariadb.org/browse/MXS-5954) kafkacdc doesn't escape db name identifiers resulting in errors +* [MXS-5948](https://jira.mariadb.org/browse/MXS-5948) Database names with dashes are not properly escaped when disabling events +* [MXS-5947](https://jira.mariadb.org/browse/MXS-5947) Fix for MXS-5196 can break "maxctrl create report" +* [MXS-5946](https://jira.mariadb.org/browse/MXS-5946) MaxKeys usage message is obsolete +* [MXS-5717](https://jira.mariadb.org/browse/MXS-5717) Rebuild Replica fails when using MaxScale encrypted password for monitor user +* [MXS-5688](https://jira.mariadb.org/browse/MXS-5688) MariaDBMon should not solely depend on "STOP SLAVE" when doing failover/switchover + +## Known Issues and Limitations + +There are some limitations and known issues within this version of MaxScale. +For more information, please refer to the +[Limitations](https://app.gitbook.com/s/0pSbu5DcMSW4KwAkUcmX/maxscale-management/mariadb-maxscale-limitations-guide) +document. + +## Packaging + +RPM and Debian packages are provided for the supported Linux distributions. + +Packages can be downloaded [here](https://mariadb.com/downloads). + +## Source Code + +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](https://github.com/mariadb-corporation/MaxScale). diff --git a/release-notes/maxscale/all-releases.md b/release-notes/maxscale/all-releases.md index 573695f1e..cf60a8ae5 100644 --- a/release-notes/maxscale/all-releases.md +++ b/release-notes/maxscale/all-releases.md @@ -37,6 +37,7 @@ description: A list of all MariaDB MaxScale releases | Version | Release Date | Release Status | | ----------------------------- | ------------ | -------------- | +| [23.08.12](23.08/23.08.12.md) | 2025-12-08 | Stable (GA) | | [23.08.11](23.08/23.08.11.md) | 2025-09-08 | Stable (GA) | | [23.08.10](23.08/23.08.10.md) | 2025-06-06 | Stable (GA) | | [23.08.9](23.08/23.08.9.md) | 2025-03-07 | Stable (GA) | From 8d1fb29cd007d0acbd1f449143b4100da0ceab95 Mon Sep 17 00:00:00 2001 From: Johan Wikman Date: Mon, 8 Dec 2025 21:02:02 +0200 Subject: [PATCH 11/14] Fix broken link --- maxscale/reference/maxscale-routers/maxscale-exasolrouter.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/maxscale/reference/maxscale-routers/maxscale-exasolrouter.md b/maxscale/reference/maxscale-routers/maxscale-exasolrouter.md index 80f213e0b..58e46470f 100644 --- a/maxscale/reference/maxscale-routers/maxscale-exasolrouter.md +++ b/maxscale/reference/maxscale-routers/maxscale-exasolrouter.md @@ -4,7 +4,7 @@ The _Exasol Router_ is a router that in itself is capable of using an Exasol cluster. It is primarily intended to be used together with -[SmartRouter](maxscale-maxscale-smartrouter.md), with _writes_ being directed +[SmartRouter](maxscale-smartrouter.md), with _writes_ being directed to a regular MariaDB cluster and _reads_ to Exasol. Unlike the other routers or MaxScale, the Exasol router does not use `servers`, From ec8e19452f04dad54f4e256a9564bc0174a6d7bc Mon Sep 17 00:00:00 2001 From: Johan Wikman Date: Mon, 8 Dec 2025 14:38:47 +0200 Subject: [PATCH 12/14] MXS Add release notes for 25.01.5 --- release-notes/SUMMARY.md | 1 + .../maxscale/25.01/25.01-changelog.md | 1 + release-notes/maxscale/25.01/25.01.5.md | 42 +++++++++++++++++++ release-notes/maxscale/all-releases.md | 1 + 4 files changed, 45 insertions(+) create mode 100644 release-notes/maxscale/25.01/25.01.5.md diff --git a/release-notes/SUMMARY.md b/release-notes/SUMMARY.md index 0ec095054..46f58e84c 100644 --- a/release-notes/SUMMARY.md +++ b/release-notes/SUMMARY.md @@ -1386,6 +1386,7 @@ * [MariaDB MaxScale 25.10 Release Notes](maxscale/25.10/25.10-changelog.md) * [MaxScale 25.10.0 Release Notes](maxscale/25.10/25.10.0.md) * [MariaDB MaxScale 25.01 Release Notes](maxscale/25.01/README.md) + * [MaxScale 25.01.5 Release Notes](maxscale/25.01/25.01.5.md) * [MaxScale 25.01.4 Release Notes](maxscale/25.01/25.01.4.md) * [MaxScale 25.01.3 Release Notes](maxscale/25.01/25.01.3.md) * [MaxScale 25.01.2 Release Notes](maxscale/25.01/25.01.2.md) diff --git a/release-notes/maxscale/25.01/25.01-changelog.md b/release-notes/maxscale/25.01/25.01-changelog.md index 80f1dcba0..cc6605db1 100644 --- a/release-notes/maxscale/25.01/25.01-changelog.md +++ b/release-notes/maxscale/25.01/25.01-changelog.md @@ -48,6 +48,7 @@ For more details, please refer to: +* [MariaDB MaxScale 25.01.5 Release Notes](25.01.5.md) * [MariaDB MaxScale 25.01.4 Release Notes](25.01.4.md) * [MariaDB MaxScale 25.01.3 Release Notes](25.01.3.md) * [MariaDB MaxScale 25.01.2 Release Notes](25.01.2.md) diff --git a/release-notes/maxscale/25.01/25.01.5.md b/release-notes/maxscale/25.01/25.01.5.md new file mode 100644 index 000000000..da168ea20 --- /dev/null +++ b/release-notes/maxscale/25.01/25.01.5.md @@ -0,0 +1,42 @@ +# MariaDB MaxScale 25.01.5 Release Notes + +Release 25.01.5 is a GA release. + +This document describes the changes in release 25.01.5, 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](https://app.gitbook.com/s/0pSbu5DcMSW4KwAkUcmX/maxscale-management/deployment/upgrading-maxscale) +for this MaxScale version. + +For any problems you encounter, please consider submitting a bug +report on [our Jira](https://jira.mariadb.org/projects/MXS). + +## Bug fixes + +* [MXS-6031](https://jira.mariadb.org/browse/MXS-6031) No error message if connection to server fails during start of switchover +* [MXS-6013](https://jira.mariadb.org/browse/MXS-6013) SHOW CREATE TABLE doesn't detect if a temporary table is used +* [MXS-6005](https://jira.mariadb.org/browse/MXS-6005) Signal 11 crash +* [MXS-5983](https://jira.mariadb.org/browse/MXS-5983) Default users_refresh_interval causes repeated user account loading +* [MXS-5963](https://jira.mariadb.org/browse/MXS-5963) maxctrl create report --archive error reporting produces errors +* [MXS-5954](https://jira.mariadb.org/browse/MXS-5954) kafkacdc doesn't escape db name identifiers resulting in errors +* [MXS-5952](https://jira.mariadb.org/browse/MXS-5952) MaxScale failover fails with MASTER_SSL=1 default in MariaDB 11.4 +* [MXS-5948](https://jira.mariadb.org/browse/MXS-5948) Database names with dashes are not properly escaped when disabling events +* [MXS-5947](https://jira.mariadb.org/browse/MXS-5947) Fix for MXS-5196 can break "maxctrl create report" +* [MXS-5946](https://jira.mariadb.org/browse/MXS-5946) MaxKeys usage message is obsolete +* [MXS-5717](https://jira.mariadb.org/browse/MXS-5717) Rebuild Replica fails when using MaxScale encrypted password for monitor user +* [MXS-5688](https://jira.mariadb.org/browse/MXS-5688) MariaDBMon should not solely depend on "STOP SLAVE" when doing failover/switchover +* [MXS-5637](https://jira.mariadb.org/browse/MXS-5637) ssl_ciphers-setting does not affect TLSv1.3 ciphers + +## Known Issues and Limitations + +There are some limitations and known issues within this version of MaxScale. +For more information, please refer to the +[Limitations](https://app.gitbook.com/s/0pSbu5DcMSW4KwAkUcmX/maxscale-management/mariadb-maxscale-limitations-guide) +document. + +## Packaging + +RPM and Debian packages are provided for the supported Linux distributions. + +Packages can be downloaded [here](https://mariadb.com/downloads). diff --git a/release-notes/maxscale/all-releases.md b/release-notes/maxscale/all-releases.md index cf60a8ae5..0d7b7a3e1 100644 --- a/release-notes/maxscale/all-releases.md +++ b/release-notes/maxscale/all-releases.md @@ -14,6 +14,7 @@ description: A list of all MariaDB MaxScale releases | Version | Release Date | Release Status | | --------------------------- | ------------ | -------------- | +| [25.01.5](25.01/25.01.5.md) | 2025-12-08 | Stable (GA) | | [25.01.4](25.01/25.01.4.md) | 2025-09-08 | Stable (GA) | | [25.01.3](25.01/25.01.3.md) | 2025-06-25 | Stable (GA) | | [25.01.2](25.01/25.01.2.md) | 2025-03-25 | Stable (GA) | From 783ece1ba035b2a4d7c20df40a5d951b53f8ecb4 Mon Sep 17 00:00:00 2001 From: Johan Wikman Date: Tue, 9 Dec 2025 15:36:13 +0200 Subject: [PATCH 13/14] MXS Update Exasol router documentation --- .../maxscale-routers/maxscale-exasolrouter.md | 111 ++++++++++++------ 1 file changed, 75 insertions(+), 36 deletions(-) diff --git a/maxscale/reference/maxscale-routers/maxscale-exasolrouter.md b/maxscale/reference/maxscale-routers/maxscale-exasolrouter.md index 58e46470f..a1130d540 100644 --- a/maxscale/reference/maxscale-routers/maxscale-exasolrouter.md +++ b/maxscale/reference/maxscale-routers/maxscale-exasolrouter.md @@ -1,22 +1,35 @@ # MaxScale ExasolRouter +{% hint style="info" %} +This functionality is available from MaxScale 25.10.1. +{% endhint %} + ## Overview -The _Exasol Router_ is a router that in itself is capable of using an Exasol +_ExasolRouter_ is a router that in itself is capable of using an Exasol cluster. It is primarily intended to be used together with [SmartRouter](maxscale-smartrouter.md), with _writes_ being directed to a regular MariaDB cluster and _reads_ to Exasol. -Unlike the other routers or MaxScale, the Exasol router does not use `servers`, -`targets`, or `cluster` entries in the configuration file to define servers. -Instead, Exasol database nodes are specified directly via the `connection_string` -setting. +Unlike the other routers of MaxScale, the targets _ExasolRouter_ routes to +are not specified using `servers`, `targets`, or `cluster` entries in +the configuration file. Instead, Exasol database nodes are specified using +the [connection_string](connection_string) setting. + +If _ExasolRouter_ is used standalone, a MariaDB server or a service should +be specified using `targets`. _ExasolRouter_ will not route to it, but it +will use it for authenticating clients. However, Exasol will be accessed +on behalf of all clients using the credentials specified in the +[connection_string](connection_string). ## Users -Currently, the Exasol router _always_ uses the service `user` and `password` -settings when accessing Exasol. That is, it uses those settings _regardless_ -of the identity of the client accessing MaxScale. +A `user` and `password` must _always_ be specified, but will only be used +if a MariaDB server/service has been specified as a target, and only for +authenticating a client. + +The user and password to be used when accessing Exasol must be specified +using `UID` and `PWD` in the [connection_string](connection_string). ## Settings @@ -30,12 +43,10 @@ Specifies the Exasol connection string. For example: ``` -connection_string=127.0.0.1:8563 - -connection_string=127.0.0.1/340F511A5A5179FF44A6828CC140FAEBAF1F2E2ECD73FBCD7EDD54C8B96A5886:8563 +connection_string=DSN=ExasolDSN;UID=sys;PWD=exasol;FINGERPRINT=NOCERTCHECK ``` -The latter alternative illustrates the case when the Exasol server uses a -self-signed certificate. +Here it is assumed there is an `odbc.ini` ODBC configuration file containing +an `ExasolDSN` entry. ### `appearance` @@ -118,9 +129,8 @@ is transformed into the statement `OPEN SCHEMA `. ### SQL -Currently a transformation will be made **only** if there is an **exact** -match (apart from case) with the MariaDb SQL. At this point the goal is -to match what the MariaDB command line client sends. +Currently a transformation will be made _only_ if there is an **exact** +match (apart from case and differences in whitespace) with the MariaDb SQL. | MariaDb | Exasol | | ------- | ------- | @@ -129,43 +139,45 @@ to match what the MariaDB command line client sends. | SHOW DATABASES | SELECT SCHEMA_NAME AS 'Database' FROM EXA_SCHEMAS ORDER BY SCHEMA_NAME | | SHOW TABLES | SELECT TABLE_NAME AS 'Tables' FROM SYS.EXA_ALL_TABLES WHERE TABLE_SCHEMA = CURRENT_SCHEMA ORDER BY TABLE_NAME | -## Limitations - -The following is assumed regarding the data returned by Exasol: -* The value in a column of a row is assumed to be no more than 1024 bytes, and -* the complete returned result set will fit in a 16MB MariaDB protocol packet. - -If these limitations are exceeded, the router may malfunction or crash. - -These limitations are temporary and will be removed before Dec 8. - ## SmartRouter The primary purpose of the Exasol router is to be used together with [SmartRouter](maxscale-smartrouter.md). A minimal configuration looks as follows: ``` -[ExasolService] -type=service -router=exasolrouter -user=sys -password=exasol -connection_string=127.0.0.1/340F511A5A5179FF44A6828CC140FAEBAF1F2E2ECD73FBCD7EDD54C8B96A5886:8563 - [Server1] type=server address=127.0.0.1 port=3306 protocol=mariadbbackend +[ExasolService] +type=service +router=exasolrouter +connection_string=DSN=ExasolDSN;UID=sys;PWD=exasol +user= +password= + [SmartService] type=service router=smartrouter -user=MyUser -password=MyPassword +user=MyServiceUser +password=MyServicePassword targets=Server1, ExasolService master=Server1 + +[SmartListener] +type=listener +service=SmartService +port=4007 + ``` +Here it is assumed there is an `odbc.ini` ODBC configuration file containing +and `ExasolDSN` entry. + +Note that `user` and `password` must be specified, even if they in this +context are not used. + With this setup, all writes will always be sent to `Server1`. Reads will initially be sent to both `Server1` and `ExasolService` and once SmartRouter has learnt what kind of reads are best sent to which target, it will exclusively send reads to @@ -173,6 +185,33 @@ either `Server1` or `ExasolService` depending on which one is likely to provide the response faster. Here, a single server was used as `master`. It could just as well be a -[ReadWriteSplit](maxscale-readwritesplit.md) service, in front of a MariaDB +[ReadWriteSplit](maxscale-readwritesplit.md) service in front of a MariaDB cluster, which would provide HA. +## Stand-Alone +A minimal stand-alone configuration looks as follows. + +``` +[Server1] +type=server +address=127.0.0.1 +port=3306 +protocol=mariadbbackend + +[ExasolService] +type=service +router=exasolrouter +connection_string=DSN=ExasolDSN;UID=sys;PWD=exasol;FINGERPRINT=NOCERTCHECK +targets=Server1 +user=MyServiceUser +password=MyServicePassword + +[ExasolListener] +type=listener +service=ExasolService +port=4008 +``` + +With this setup, it is possible to connect using the regular `mariadb` +command line utility to the port 4008 and all queries will be sent to +Exasol. From cac3a824c92ca6e370b8454b9de5ba4ef71baaa4 Mon Sep 17 00:00:00 2001 From: Daniel Bartholomew Date: Tue, 9 Dec 2025 10:57:22 -0500 Subject: [PATCH 14/14] Fix link, hide new release notes pages --- .../reference/maxscale-routers/maxscale-exasolrouter.md | 8 ++++---- release-notes/maxscale/22.08/22.08.19.md | 4 ++++ release-notes/maxscale/23.02/23.02.16.md | 4 ++++ release-notes/maxscale/23.08/23.08.12.md | 4 ++++ release-notes/maxscale/24.02/24.02.8.md | 4 ++++ release-notes/maxscale/25.01/25.01.5.md | 4 ++++ 6 files changed, 24 insertions(+), 4 deletions(-) diff --git a/maxscale/reference/maxscale-routers/maxscale-exasolrouter.md b/maxscale/reference/maxscale-routers/maxscale-exasolrouter.md index a1130d540..2dd674758 100644 --- a/maxscale/reference/maxscale-routers/maxscale-exasolrouter.md +++ b/maxscale/reference/maxscale-routers/maxscale-exasolrouter.md @@ -14,13 +14,13 @@ to a regular MariaDB cluster and _reads_ to Exasol. Unlike the other routers of MaxScale, the targets _ExasolRouter_ routes to are not specified using `servers`, `targets`, or `cluster` entries in the configuration file. Instead, Exasol database nodes are specified using -the [connection_string](connection_string) setting. +the [connection\_string](#connection_string) setting. If _ExasolRouter_ is used standalone, a MariaDB server or a service should be specified using `targets`. _ExasolRouter_ will not route to it, but it will use it for authenticating clients. However, Exasol will be accessed on behalf of all clients using the credentials specified in the -[connection_string](connection_string). +[connection\_string](#connection_string). ## Users @@ -29,7 +29,7 @@ if a MariaDB server/service has been specified as a target, and only for authenticating a client. The user and password to be used when accessing Exasol must be specified -using `UID` and `PWD` in the [connection_string](connection_string). +using `UID` and `PWD` in the [connection\_string](#connection_string). ## Settings @@ -92,7 +92,7 @@ def adapter_call(request): / ``` -See [preprocessor_script](#preprocessor_script) +See [preprocessor\_script](#preprocessor_script) ### `preprocessor_script` diff --git a/release-notes/maxscale/22.08/22.08.19.md b/release-notes/maxscale/22.08/22.08.19.md index 4929aa401..f960297e4 100644 --- a/release-notes/maxscale/22.08/22.08.19.md +++ b/release-notes/maxscale/22.08/22.08.19.md @@ -1,3 +1,7 @@ +--- +hidden: true +--- + # MariaDB MaxScale 22.08.19 Release Notes Release 22.08.19 is a GA release. diff --git a/release-notes/maxscale/23.02/23.02.16.md b/release-notes/maxscale/23.02/23.02.16.md index cbd271188..458a841b1 100644 --- a/release-notes/maxscale/23.02/23.02.16.md +++ b/release-notes/maxscale/23.02/23.02.16.md @@ -1,3 +1,7 @@ +--- +hidden: true +--- + # MariaDB MaxScale 23.02.16 Release Notes Release 23.02.16 is a GA release. diff --git a/release-notes/maxscale/23.08/23.08.12.md b/release-notes/maxscale/23.08/23.08.12.md index b7e81ee62..81f1e8f13 100644 --- a/release-notes/maxscale/23.08/23.08.12.md +++ b/release-notes/maxscale/23.08/23.08.12.md @@ -1,3 +1,7 @@ +--- +hidden: true +--- + # MariaDB MaxScale 23.08.12 Release Notes Release 23.08.12 is a GA release. diff --git a/release-notes/maxscale/24.02/24.02.8.md b/release-notes/maxscale/24.02/24.02.8.md index 37958c33f..16db9d180 100644 --- a/release-notes/maxscale/24.02/24.02.8.md +++ b/release-notes/maxscale/24.02/24.02.8.md @@ -1,3 +1,7 @@ +--- +hidden: true +--- + # MariaDB MaxScale 24.02.8 Release Notes Release 24.02.8 is a GA release. diff --git a/release-notes/maxscale/25.01/25.01.5.md b/release-notes/maxscale/25.01/25.01.5.md index da168ea20..f817184c9 100644 --- a/release-notes/maxscale/25.01/25.01.5.md +++ b/release-notes/maxscale/25.01/25.01.5.md @@ -1,3 +1,7 @@ +--- +hidden: true +--- + # MariaDB MaxScale 25.01.5 Release Notes Release 25.01.5 is a GA release.