MySQL Router Release Notes

3.6 Changes in MySQL Router 2.1.1 (2016-12-15, Labs)

Published to labs.mysql.com as part of the MySQL InnoDB Cluster 5.7.17 Preview 2 bundle.

Functionality Added or Changed

  • A --user command line option was added to define the user to run Router as. This option is required if Router is bootstrapped or started as a super user, such as root. This option is also defined as user under the [DEFAULT] namespace. This option is not available on Windows.

    In addition, the packaging scripts (Debian and RPM packages) now create a Router-specific system user named mysqlrouter that Router runs as by default. This account does not have shell access, and its home directory points to the directory where the default Router configuration file is stored. Previously, the user named mysql was used by default. (Bug #25070949)

Bugs Fixed

  • No quorum did not cause the connections to be blocked. (Bug #25134206)

  • The --help text referred to a nonexistent option named "--master-key-path", instead of "--master-key-file". (Bug #25074305)

  • After dissolving a MySQL InnoDB cluster that was bootstrapped, bootstrapping to the old primary server and port would not function. (Bug #25069674)

  • On Linux, the default keyring_path path included /var/run, but because some Linux distributions mount /var/run/ to tmpfs, this definition was lost when the host was restarted. Now, /var/lib/ is used on most systems. (Bug #25045182)

  • An existing configuration file with a missing [metadata_cache] section (including empty files) would cause --bootstrap to fail. (Bug #25045119)

  • Having multiple metadata_cache definitions (with different section keys) would cause Router to unexpectedly exit. This error is now handled, and Router is closed with an error message. (Bug #24962552)

  • Routing to the default destination port for the x protocol (33060) did not function for standalone routing. (Bug #24955339)

  • X-Protocol routing treated errors from the server as handshake failures, which caused each invalid authentication request to increment the connect error counter. Now, it behaves like the classic protocol, so during the handshake when the server sends an error to the client (even if it Access Denied error), this is not considered a failed handshake. This is also how MySQL Server behaves. (Bug #24911725)

  • Metadata cache section's did not allow the optional section keys definitions. (Bug #24909259)

  • After performing a successful --bootstrap operation, immediately executing a second and failed bootstrap operation (against a different URI) could cause Router to not connect to the metadata cache for the first bootstrap configuration due to internal changes made by the second. (Bug #24902404)

  • --bootstrap now sets bind_address=0.0.0.0 for each route in the generated Router configuration file, when before it did not set it and relied upon the bind_address default value of 127.0.0.1. In addition, the --conf-bind-address command line option was added to modify the bind_address value set by bootstrap. (Bug #24846715)

  • Bootstrapping router with the --conf-use-sockets option was not defining the socket option in the generated configuration file. (Bug #24842143)

  • After bootstrapping Router with the --conf-skip-tcp --conf-use-sockets options, neither MySQL Shell or the MySQL client could connect to Router. (Bug #24841281)

  • The keyring plugin is only loaded if either configured, or if there is a password involved in the configuration. Previously, Router would always load the plugin and then prompt for a password. (Bug #24840690)

  • The --name option is now optional. (Bug #24807941)

  • Configuring the router for using more than one routing rule with UNIX domain sockets and no TCP ports would fail with a "duplicate IP or name found" configuration error. This made it impossible to configure R/W splitting using Unix sockets. (Bug #24799417)

  • Fixed compilation related warnings. (Bug #24701344)

  • Router was not able to connect (function) after stopping group replication on the primary node. This affected both read-only and read-write routing sections. (Bug #24659690)

  • Error logging for metadata connections and routed client connections were improved to be more descriptive, and they were changed to warnings instead of debug messages. (Bug #22010817)