Documentation Home
MySQL Router Release Notes
Related Documentation Download these Release Notes
PDF (US Ltr) - 168.6Kb
PDF (A4) - 168.7Kb


MySQL Router Release Notes  /  Changes in MySQL Router 8.0.16 (2019-04-25, General Availability)

Changes in MySQL Router 8.0.16 (2019-04-25, General Availability)

Functionality Added or Changed

  • 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)

Bugs Fixed

  • 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)