Dear MySQL users,
MySQL Router 8.0.4-rc is the first release candidate for MySQL Router
8.0 series.
The MySQL Router is a new building block for high availability solutions
based on MySQL InnoDB clusters.
By taking advantage of the new Group Replication technology, and
combined with the MySQL Shell, InnoDB clusters provide an integrated
solution for high availability and scalability for InnoDB based MySQL
databases, that does not require advanced MySQL expertise.
The deployment of applications with high availability requirements is
greatly simplified by MySQL Router. MySQL client connections are
transparently routed to online members of a InnoDB cluster, with MySQL
server outages and cluster reconfigurations being automatically handled
by the Router.
To download MySQL Router 8.0.4-rc, see the “Development Releases” tab at
http://dev.mysql.com/downloads/router. Package binaries are available
for several platforms and also as a source code download.
Documentation for MySQL Router can be found at
http://dev.mysql.com/doc/mysql-router/en/
Enjoy!
Changes in MySQL Router 8.0.4 (2018-02-07, Release Candidate)
Functionality Added or Changed
* Bootstrapping now accepts the --config option and reads
the [logger] level option's definition. For example, to enable
bootstrap's debugging mode:
[logger]
level = DEBUG
(Bug #27158098)
* The default ttl metadata option (Time To Live, in
seconds) changed from 300 to 5. (Bug #26990955, Bug #88140)
* The new connect_timeout and read_timeout options were
added. These are defined under the [DEFAULT] namespace and affect
internal operations, such as metadata server connections. (Bug
#26877946)
* Bootstrap now accepts any member of an InnoDB cluster and
automatically finds and reconnects to a writable primary. (Bug
#25489509)
* The optional routing_strategy configuration option was
added. The available values are first-available, next-available,
round-robin, and round-robin-with-fallback. Previously, these
strategies were described as scheduling modes by the mode
configuration option where the read-write mode defaults to the
first-available strategy, and the read-only mode defaults to the
round-robin strategy. This preserves previous behavior for these
modes. (Bug #86261, Bug #26045094, Bug #25852803)
Bugs Fixed
* With logging_folder undefined during bootstrap, all logs
were written to STDERR. Now, normal bootstrap logs are written to
STDOUT and debug bootstrap logs are written to STDERR. (Bug
#27232410)
* Errors were changed to warnings for the following
conditions: when Router could not connect to a particular
metadata server, and when Router could not update the default
metadata cache replicaset. Under these conditions, Router does
not stop running because there are multiple metadata servers and
replicasets. (Bug #27226627)
* Configuring MySQL Router with sockets would create a
socket that was only accessible by the MySQL Router user. (Bug
#27179456, Bug #88667)
* The commercial .deb packages were missing the
mysqlrouter_plugin_info tool. (Bug #27122367)
* The apt purge process did not remove the
/var/{lib,log,run}/mysqlrouter directories. (Bug #26955232)
* Bootstrapping would fail when connecting to a MySQL
Server under high load if an associated bootstrap query took
longer than 5 seconds. The 5 second read timeout was increased
from 5 to 30. In addition, command line options were added to
change the connect and read timeout values. (Bug #26877946)
* Improved error text when bootstrapping against a MySQL
server 8.0 instance that was not part of InnoDB cluster. (Bug
#26846040)
* Router assumed that a resulting socket from accept()ing a
socket would be always blocking. On Solaris and Windows this
assumption is not valid, and this resulted in broken connections
with large result sets. (Bug #26834769)
* It was difficult to distinguish the "Too many
connections" between MySQL Server and MySQL Router, so the Router
variant now reads as "Too many connections to MySQL Router". (Bug
#26593909)
* The bundled README.txt was missing Protobuf and Rapid
JSON references. (Bug #25619654)
* Some builds were missing the sample configuration file,
including the Solaris and Oracle Linux binaries. (Bug #25530691)
* Router would check IPv4 or IPv6 addresses, but not both.
Now it goes through the list of addresses and first tries to bind
to an IPv4 address and if it fails then it goes through the same
address list and tries to bind to an IPv6 address. (Bug
#25127667)
* The generated error message from passing in an empty file
to --master-key-file (or using an empty mysqlrouter.key) was
improved. (Bug #25111926)
* Defining multiple logger sections in the configuration
file would emit an unclear error. Defining multiple logger
sections is not allowed. (Bug #25095565)
* Where destinations=metadata-cache, the role attribute was
not used or validated; only the mode configuration option was
used. (Bug #25061854)
* Failed bootstrap commands would leave a generated
mysqlrouter.conf.tmp file on the system. (Bug #24930442)
* On Ubuntu Linux, documentation related files were
installed under both /usr/share/mysql-router/docs and
/usr/share/doc/mysql-router. Now they are only installed under
/usr/share/doc/mysql-router for community builds and
/usr/share/doc/mysql-router-commercial for commercial builds.
(Bug #24765509)
* The maximum number of concurrent client connections was
increased from about 500 to over 5000, a limit now dependent on
the operation system. To achieve this, select() based fd event
calls were replaced by poll() (or WSAPoll() on Windows). (Bug
#22661705, Bug #80260)
* The --ssl-key and --ssl-cert optional bootstrap
command-line options were added. They directly use their MySQL
client's counterparts, and specify the client-side certificate
and private key to facilitate client-side authentication. This is
useful when the root account used during bootstrap was created
with REQUIRE X509, which requires the client to authenticate
itself when logging in.
On behalf of Oracle MySQL Release Team
Nawaz Nazeer Ahamed