-
Bootstrapping now accepts the
--config
option and reads the [logger]level
option's definition. For example, to enable bootstrap's debugging mode:[logger] level = DEBUG
(Bug #27158098)
The default
ttl
metadata option (Time To Live, in seconds) changed from 300 to 5. (Bug #26990955, Bug #88140)The new
connect_timeout
andread_timeout
options were added. These are defined under the[DEFAULT]
namespace and affect internal operations, such as metadata server connections. (Bug #26877946)Bootstrap now accepts any member of an InnoDB cluster and automatically finds and reconnects to a writable primary. (Bug #25489509, WL #11157)
-
The optional
routing_strategy
configuration option was added. The available values arefirst-available
,next-available
,round-robin
, andround-robin-with-fallback
.Previously, these strategies were described as scheduling modes by the
mode
configuration option where the read-write mode defaults to the first-available strategy, and the read-only mode defaults to the round-robin strategy. This preserves previous behavior for these modes. (Bug #86261, Bug #26045094, Bug #25852803, WL #11024)
With
logging_folder
undefined during bootstrap, all logs were written to STDERR. Now, normal bootstrap logs are written to STDOUT and debug bootstrap logs are written to STDERR. (Bug #27232410)Errors were changed to warnings for the following conditions: when Router could not connect to a particular metadata server, and when Router could not update the default metadata cache replicaset. Under these conditions, Router does not stop running because there are multiple metadata servers and ReplicaSets. (Bug #27226627)
Configuring MySQL Router with sockets would create a socket that was only accessible by the MySQL Router user. (Bug #27179456, Bug #88667)
The commercial .deb packages were missing the mysqlrouter_plugin_info tool. (Bug #27122367)
The apt purge process did not remove the
/var/{lib,log,run}/mysqlrouter
directories. (Bug #26955232)Bootstrapping would fail when connecting to a MySQL Server under high load if an associated bootstrap query took longer than 5 seconds. The 5 second read timeout was increased from 5 to 30. In addition, command line options were added to change the connect and read timeout values. (Bug #26877946)
Improved error text when bootstrapping against a MySQL server 8.0 instance that was not part of InnoDB cluster. (Bug #26846040)
Router assumed that a resulting socket from accepting a socket would be always blocking. On Solaris and Windows this assumption is not valid, and this resulted in broken connections with large result sets. (Bug #26834769)
It was difficult to distinguish the "Too many connections" between MySQL Server and MySQL Router, so the Router variant now reads as "Too many connections to MySQL Router". (Bug #26593909)
The bundled
README.txt
was missing Protobuf and Rapid JSON references. (Bug #25619654)Some builds were missing the sample configuration file, including the Solaris and Oracle Linux binaries. (Bug #25530691)
Router would check IPv4 or IPv6 addresses, but not both. Now it goes through the list of addresses and first tries to bind to an IPv4 address and if it fails then it goes through the same address list and tries to bind to an IPv6 address. (Bug #25127667)
The generated error message from passing in an empty file to
--master-key-file
(or using an emptymysqlrouter.key
) was improved. (Bug #25111926)Defining multiple logger sections in the configuration file would emit an unclear error. Defining multiple logger sections is not allowed. (Bug #25095565)
Where destinations=metadata-cache, the
role
attribute was not used or validated; only themode
configuration option was used. (Bug #25061854)Failed bootstrap commands would leave a generated
mysqlrouter.conf.tmp
file on the system. (Bug #24930442)On Ubuntu Linux, documentation-related files were installed under both
/usr/share/mysql-router/docs
and/usr/share/doc/mysql-router
. Now they are only installed under/usr/share/doc/mysql-router
for community builds and/usr/share/doc/mysql-router-commercial
for commercial builds. (Bug #24765509)The maximum number of concurrent client connections was increased from about 500 to over 5000, a limit now dependent on the operation system. To achieve this, select() based fd event calls were replaced by poll() (or WSAPoll() on Windows). (Bug #22661705, Bug #80260, WL #9857)
The
--ssl-key
and--ssl-cert
optional bootstrap command-line options were added. They directly use their MySQL client's counterparts, and specify the client-side certificate and private key to facilitate client-side authentication. This is useful when the root account used during bootstrap was created with REQUIRE X509, which requires the client to authenticate itself when logging in. (WL #10169)