-
Added additional functionality to configure the PID file location. This adds the
--pid-file
(command-line) andpid_file
(configuration file) options. Setting theROUTER_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 optionalauth_cache_refresh_interval
andauth_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)
Router's default data directory on Debian (
/var/run/mysqlrouter
) was not preserved between system resets. Both the keyring andstate.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 missingmysqlx_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)