MySQL Router 8.4 Release Notes
The configuration option
bootstrap_server_addresses
, deprecated in
MySQL Router 8.0.14, is removed in this release.
If this option is present in a configuration file, MySQL Router generates an error. (WL #15867)
The configuration option
unreachable_destination_refresh_interval
,
deprecated in MySQL Router 8.0.32, is removed in this release.
If this option is present in a configuration file, MySQL Router generates an error. (WL #15869)
As of this release, version 1.x of MySQL InnoDB Cluster Metadata is no longer supported. It is recommended to always use the latest version of MySQL Shell and MySQL Router.
See Upgrading MySQL Router and Upgrade Metadata Schema. (WL #15868)
The allow_primary_reads
parameter of the
destinations
URI is removed in this release.
(WL #15872)
The configuration option mode
, deprecated in
MySQL Router 8.0.4, is removed in this release.
(WL #15877)
As of this release, MySQL Router exposes its configuration in the
Cluster metadata for all routers bootstrapped against it. This
information is stored as JSON in the Cluster metadata schema and
can be accessed by the MySQL Shell operation,
for Cluster, ClusterSet, and ReplicaSets.
(WL #15649)object
.routerOptions
As of this release, server connections which were not explicitly
closed, but remain idle longer than the defined
connection-sharing-delay
, are no longer
placed in the connection pool. Instead, the connections remain
open and available for use by new client connections.
It is no longer necessary to enable the connection pool to
enable connection sharing. Therefore
max_idle_server_connections
can be zero if
connection sharing is enabled.
(WL #15742)
If a hostname was not resolved, due to a DNS failure, MySQL Router did not check if that host became available again, later. (Bug #36246652)
MySQL Router's bootstrap process checks the
mysql.user
table for the unsupported
mysql_native_password
authentication plugin.
If the bootstrap user had no access to the table, the following
error was returned:
Failed checking the Router account authentication plugin: Error executing MySQL query "select host, plugin from mysql.user where user = 'user
'": SELECT command denied to user 'user
'@'host
' for table 'user' (1142)
As of this release, this error is not returned. (Bug #36225456)
If MySQL Router was bootstrapped without the
--account
parameter, a new
metadata user was added using the following query:
CREATE USER IF NOT EXISTS username@hostname IDENTIFIED BY 'password'
If the server used an authentication plugin which does not
accept single-factor or password-based authentication, the
account creation failed. As of this release, the
caching_sha2_password plugin
is used in this
situation:
CREATE USER IF NOT EXISTS username@hostname IDENTIFIED WITH `caching_sha2_password` BY 'password'
MySQL Router used default_authentication_plugin
to determine the authentication plugin to use. This variable is
now deprecated. MySQL Router uses
caching_sha2_password
.
(Bug #36220663, Bug #36245132)
The following error was displayed if MySQL Router was closed before the metadata cache started:
Error: routing:_: Metadata Cache not initialized
(Bug #36151125)
It was not possible to connect to MySQL through MySQL Router, using
the Node.js MySQL driver, if MySQL Router was running with both
client_ssl_mode
and
server_ssl_mode
disabled. Authentication
failed without a useful error message.
As of this release, MySQL Router returns an error explaining that the Node.js MySQL driver does not support the requested authentication protocol. (Bug #36105279)
If an incoming port is opened and closed by a TCP connection,
such as a load balancer or a service-monitoring utility
performing a health check, the connection counts towards the
limit defined by
max_connect_errors
, even though
the connection was not established. This could lead to MySQL Router
closing the incoming port when the error limit is reached.
As of this release,
max_connect_errors
is not
incremented if the Router's incoming port is opened and closed
without establishing a connection.
(Bug #36104070)
If a client sent read-only statements to a destination which was
not configured as super_read_only
, using the
Read-Write splitting port, MySQL Router redirected the statement to
the primary. The statement did not return the correct result.
(Bug #36042078)
It was not possible to build MySQL Router on 32-bit Linux platforms. (Bug #36040942)
Queries with trailing semi-colons (;) were treated as multi-statements, which is not permitted if MySQL Router is configured for Read-Write Splitting. (Bug #36036725)
The following error did not provide enough information for troubleshooting:
timestamp
routing ERROR [code
] connecting to backend failed: Connection timed out (generic:110)
As of this release, it contains the following details:
Route name and client source.
resolve()
errors.
Hostname, IP addresses, and errors for each connection attempt.
The amount of time spent on the connection attempt.
(Bug #35503245)