-
Bootstrapping now sets new
routing_strategy
values in the generated configuration file. Read-Write (PRIMARY) sections set routing_strategy tofirst-available
; and Read-Only (SECONDARY) sections set it toround-robin-with-fallback
. Previously, they were both set toround-robin
.The default behavior (for example, if routing_strategy is not defined in
mysqlrouter.conf
) did not change and is still round-robin. (Bug #28636013, WL #12089) 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. (WL #12089)
Added ability to integrate external log-rotation applications by reopening the file-based logfile on SIGHUP. On Linux, this allows integrating the system-wide
logrotate
utility. (WL #8988)On Windows, added the ability to report events to the Windows Application Events log. (WL #9552)
-
Added a new
sinks
configuration 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. (WL #12733)
-
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 theport
; 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.
(WL #11891, WL #12503, WL #12524)
-
A
mysqlrouter_passwd
tool 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:[http_auth_backend]
backend
: Name of the backend implementation; it defaults to file.filename
: Name of the backend storage file, relative to thedata_folder
directory.
[http_auth_realm]
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.
(WL #12503)
Colored text differentiation was added to MySQL Router's console output using the VT100 standard. (WL #12598, WL #12604)
AppArmor is now given read/write 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)On Debian,
apt-get purge
anddpkg --purge
now remove the/var/lib/mysqlrouter
and/run/mysqlrouter
directories. (Bug #29171561)Installing from a .deb package would create an empty (and unused) log file named
mysqlrouter.log
in the/
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)