MySQL Forums
Forum List  »  Announcements

MySQL Router 8.0.24 for MySQL Server 8.0 and 5.7 has been released
Posted by: Bjørn Munch
Date: April 20, 2021 03:18AM

Dear MySQL users,

MySQL Router 8.0.24 is a new release for MySQL Router 8.0 series.

MySQL Router 8.0 is highly recommended for use with MySQL Server 8.0 and 5.7.
Please upgrade to MySQL Router 8.0.24.

The MySQL Router is a new building block for high availability solutions
based on MySQL InnoDB clusters.

By taking advantage of the new Group Replication technology, and
combined with the MySQL Shell, InnoDB clusters provide an integrated
solution for high availability and scalability for InnoDB based MySQL
databases, that does not require advanced MySQL expertise.

The deployment of applications with high availability requirements is
greatly simplified by MySQL Router. MySQL client connections are
transparently routed to online members of a InnoDB cluster, with MySQL
server outages and cluster reconfigurations being automatically handled
by the Router.

To download MySQL Router 8.0.24, see the "General Availability (GA)
Releases" tab at Package
binaries are available for several platforms and also as a source code

Documentation for MySQL Router can be found at


Changes in MySQL Router 8.0.24 (2021-04-20)

     * Functionality Added or Changed

     * Bugs Fixed

Functionality Added or Changed

     * Changed the default ports used by Router, and default
       behavior depends on the --conf-base-port bootstrap
       If --conf-base-port is not set, then the associated
       bind_port values begin at 6446; Classic (RW 6446, RO
       6447) and X Protocol (RW 6448, RO 6449). Additionally,
       now setting --conf-base-port to 0 uses the old default
       ports of Classic (RW 6446, RO 6447) and X Protocol (RW
       64460, RO 64470).
       Reason: the previous default X Protocol ports (64460 and
       64470) are defined as "Dynamic Ports" as per RFC 6335.

     * Previously, Router bound the incoming socket at startup
       and kept it open even if no destinations were available.
       Now Router only binds to the socket if destinations are
       available, and otherwise closes the incoming sockets.
       This also means Load-Balancers know whether Router can
       handle traffic.

Bugs Fixed

     * The mysqlrouter.conf file in Debian Router packages did
       not set the run directory to an absolute path name,
       resulting in package installation errors. (Bug #32620788)

     * Disabled code-cache when compiling on Solaris to avoid
       'invalid bytecode' errors; previously it was only
       disabled for sun-cc builds. (Bug #32567899)

     * When using first-available policy and static routing, it
       was possible that the router wouldn't start and emit an
       error similar to "plugin 'routing:test_default' start
       failed: routing:test_default: Failed setting up TCP
       service"; fixed race condition on start-up between 'is
       running' and 'start socket acceptor'. (Bug #32565479)

     * Fixed assertion that a previous destination list
       contained primary destinations after connecting to a
       primary node failed. This assertion was firing because
       the primary destinations were not properly recognized
       during refresh. (Bug #32543464)

     * Network transfers larger than the socket send buffer,
       such as large result sets or queries, could terminate the
       connection. (Bug #32543049)

     * Now return an std::errc::operation_would_block error code
       if write() blocks and no data is written; before 0 was
       returned. (Bug #32542170)

     * Configuring a second Router instance on the same machine
       without the --name parameter would yield unexpected
       errors related to file cleanup. (Bug #32517802)

     * Router would report as READY before the sockets were
       open; so now reports it after the socket acceptors are
       set up. (Bug #32429409)

     * Network loss before connect() was resulting in long
       failover times as it depended on the operating system's
       network timeouts. The connect_timeout option was not
       honored, but is now applied before connecting. (Bug

     * Router no longer relies upon the MySQL instance's
       availability logic for wait-primary-failover. Instead, it
       now checks the metadata-cache's replicaset info for a new
       Primary. This is because GR membership does not change is
       the network between Router and the Primary is lost. (Bug

     * After a network loss between Router and a group
       replication PRIMARY (but not network loss between group
       replication members), the wait for the failover by Router
       did not timeout after 10 seconds, and instead the
       connection remained locked. (Bug #32338771)

     * Configuration options expecting numeric values would
       allow hex and octal values; but now only completely
       numeric values are allowed. For example,
       --config-base-port=0xff now reports an error. (Bug

     * Improved the DEBUG logging mechanism to include the
       following information: host:port, execution time, OK/ERR
       information, and row count. In addition, now log one
       message instead of separate before/after messages. (Bug

     * The REST endpoint timeout check changed from waiting for
       "timeout + request time" to waiting until the timeout
       expires. (Bug #32252500)

Options: ReplyQuote

Written By
MySQL Router 8.0.24 for MySQL Server 8.0 and 5.7 has been released
April 20, 2021 03:18AM

Sorry, you can't reply to this topic. It has been closed.

Content reproduced on this site is the property of the respective copyright holders. It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.