Before, bootstrapping would generate Read-Write (PRIMARY) and Read-Only (SECONDARY) configuration routing sections for multi-master mode, but only Read-Write sections for single-master mode. Now, both Read-Write and Read-Only sections are always generated.
Bootstrapping now sets new
routing_strategyvalues in the generated configuration file. Read-Write (PRIMARY) sections set routing_strategy to
first-available; and Read-Only (SECONDARY) sections set it to
round-robin-with-fallback. Previously, they were both set to
The default behavior (for example, if routing_strategy is not defined in
mysqlrouter.conf) did not change and is still round-robin.
Added ability to integrate external log-rotation applications by reopening the file-based logfile on SIGHUP. On Linux, this allows integrating the system-wide
On Windows, added the ability to report events to the Windows Application Events log.
Added a new
sinksconfiguration file option to define one or more logger sinks. For example, all level=debug messages can be sent to a file while only level=error are sent to an eventlog.
The supported sinks are: consolelog, filelog, eventlog on Windows, and syslog on Unix-based systems.
An HTTP interface was added based on libevent's HTTP library. It's configured using a new [http_server] configuration section that contains the following options:
port: The TCP port listening for HTTP requests; it defaults to 8011.
bind_address: IPv4 address bound to the
port; it defaults to 0.0.0.0.
static_folder: Base directory for static file requests; it's empty by default. An empty value means no static files are served.
require_realm: Name of the [http_auth_realm] instance.
ssl: The value 1 enables SSL, and 0 disables it. TLS clients supporting TLSv1.2 or later are required.
ssl_cert: File name of the certificate and its chain certifications in PEM format; required if ssl=1.
ssl_key: File name of the key in PEM format; required if ssl=1.
ssl_cipher: The cipher-spec (see openssl's 'ciphers' list). Defaults to a comma-separated list of all approved ciphers. Unknown ciphers are silently ignored. Fails if list of ciphers is empty and ssl=1.
ssl_dh_param: Read the DH parameter from this file in PEM format. Uses the dh-param from RFC 5114 by default if ssl=1.
mysqlrouter_passwdtool was added to manage password's for the HTTP server component.
Two new HTTP configuration sections were added; [http_auth_backend] and [http_auth_realm]. Both are optional, and multiple definitions are allowed. There options are:
backend: Name of the backend implementation; it defaults to file.
filename: Name of the backend storage file, relative to the
backend: Name of the [http_auth_backend] section.
method: The HTTP authentication method; defaults to basic.
require: Requires that the user validates with the authentication backend; defaults to valid-user, which enables this check.
name: Name of the realm presented to the authentication user.
Colored text differentiation was added to MySQL Router's console output using the VT100 standard.
Apparmor is now given r/w access to
/var/lib/mysqlrouter/rather than specific files within to allow additional dynamically generated files there. (Bug #29341853, Bug #94282)
On Windows, building on a case-sensitive file system would not find the file named
MSG000001.bin. (Bug #29278749)
It was not possible to re-boostrap Router while it was running. Instead, stopping the service beforehand was required. (Bug #29271620, Bug #94015)
The cached metadata information (
state.json) would cache an empty list if all MySQL servers were shut down; and this caused restarting MySQL Router to fail. An empty list is no longer cached. (Bug #29264755, Bug #94057)
dpkg --purgenow remove the
/run/mysqlrouterdirectories. (Bug #29171561)
Installing from a .deb package would create an empty (and unused) log file named
/directory. (Bug #29170728)
Added Clang 7 support for Windows, and fixed Clang 8 warnings. (Bug #29003649, Bug #29015491)
The dynamic configuration file created during the bootstrap process was assigned the same permissions as the static configuration file, which is read-only. This meant that Router could not run as a service on Windows. The Windows Local Service user can now write to the file. (Bug #28930180)
When running on Windows as a service, Router now reports errors to the Windows Eventlog that are encountered before the Router process opens the log file. Before they were sent to the non-existent console, so the messages were lost. (Bug #28261178)