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


MySQL Router Release Notes  /  Changes in MySQL Router 8.0.20 (2020-04-27, General Availability)

Changes in MySQL Router 8.0.20 (2020-04-27, General Availability)

Functionality Added or Changed

  • Added additional functionality to configure the PID file location. This adds the --pid-file (command-line) and pid_file (configuration file) options. Setting the ROUTER_PID environment variable remains as the other option.

    The PID file cannot be set while executing the --bootstrap option. (Bug #30510827, WL #13705)

  • Added metadata_cache support for [http_auth_backend]; set backend=metadata_cache to use it. Also added the optional auth_cache_refresh_interval and auth_cache_ttl options to configure its use. (WL #12952)

  • Added two new log levels: "system", which is higher than "error", and "note", which is between "info" and "debug". (WL #11196)

Bugs Fixed

  • Router's default data directory on Debian (/var/run/mysqlrouter) was not preserved between system resets. Both the keyring and state.json files were stored here, so Router could not function after a system reset. Now /var/lib/mysqlrouter is used instead. In addition, the installation process now detects and moves an existing configuration file to the new location. (Bug #31029334, Bug #98914)

  • Routing failed for an InnoDB Cluster using metadata 2.0 (Shell 8.0.19+) when the primary was removed using Shell/AdminAPI cluster.remove_instance(). Routing failed because Router flushed the routing table as a precaution. (Bug #30733189)

  • Added missing raise statement when queue is full. Thanks to Rastislav Masaryk for the patch. (Bug #30643277, Bug #97938)

  • Internal metadata queries were affected by global MySQL Server settings; but now Router explicitly sets session parameters to make metadata queries and updates consistent. These settings are group_replication_consistency, autocommit, sql_mode, character_set_client, character_set_results, and character_set_connection. (Bug #30631442, Bug #97764)

  • Router renamed its main thread from "mysqlrouter" to "main" to make debugging easier, but this meant executing "killall mysqlrouter" would not find the process; and instead "killall main" did. The process is no longer renamed. (Bug #30611421)

  • Reviewed help text and error messages throughout MySQL Router's interface; and improved readability. (Bug #30523166, Bug #30889974, Bug #29138501, Bug #29132761, Bug #30895659, Bug #29428293, Bug #29132728, Bug #29361447)

  • Group Replication notifications (use_gr_notifications) would log warnings about a missing mysqlx_wait_timeout MySQL system variable when used against MySQL 5.7 as this variable was added in MySQL 8.0. This warning is no longer present. (Bug #30478016, Bug #97414)

  • With AppArmor active (Ubuntu/Debian), bootstrap failed as it could not write a temporary (state) file as Router's AppArmor profile didn't allow writing to (var)/run/mysqlrouter. The AppArmor profile was updated accordingly.

    With AppArmor active (Ubuntu/Debian), Router ignored the global SSL configuration; the AppArmor profile was updated to read /etc/ssl/openssl.conf. (Bug #30339399)

  • The MySQL Router configuration file required a trailing newline. (Bug #28970487)

  • Improved error reporting when handling dissolved clusters. For example, the error text "The provided server contains an unsupported InnoDB cluster metadata." was changed to "Expected the metadata server to contain configuration for one cluster, found none." (Bug #28365867)