Documentation Home
MySQL Router Release Notes
Related Documentation Download these Release Notes
PDF (US Ltr) - 158.5Kb
PDF (A4) - 158.1Kb


MySQL Router Release Notes  /  Changes in MySQL Router 8.0.4 (2018-02-07, Release Candidate)

Changes in MySQL Router 8.0.4 (2018-02-07, Release Candidate)

Functionality Added or Changed

  • 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 and read_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 are first-available, next-available, round-robin, and round-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)

Bugs Fixed

  • 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 empty mysqlrouter.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 the mode 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)