Added additional functionality to configure the PID file location. This adds the
pid_file(configuration file) options. Setting the
ROUTER_PIDenvironment variable remains as the other option.
The PID file cannot be set while executing the
--bootstrapoption. (Bug #30510827)
Added metadata_cache support for [http_auth_backend]; set
backend=metadata_cacheto use it. Also added the optional
auth_cache_ttloptions to configure its use.
Added two new log levels: "system", which is higher than "error", and "note", which is between "info" and "debug".
Router's default data directory on Debian (
/var/run/mysqlrouter) was not preserved between system resets. Both the keyring and
state.jsonfiles were stored here, so Router could not function after a system reset. Now
/var/lib/mysqlrouteris 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_timeoutMySQL 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)