MySQL Router 8.0 Release Notes
Bootstrapping now sets new
routing_strategy
values 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 round-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 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.
(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 the data_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
and dpkg
--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)