Dear MySQL users,
This is the Alpha release for Utilities 1.6. MySQL Utilities version 1.6.1
is compatible with MySQL Server versions 5.5 and greater. Python
v2.6 and v2.7 are supported.
In addition to server utilities, MySQL Utilities also contains MySQL
Fabric: a framework for managing a collection of MySQL servers. MySQL
Fabric is deployed as a separate service daemon that contains support
for high-availability and sharding. MySQL Utilities and Fabric require
Connector/Python 2.0.0 or higher.
The management framework maintains a database of the routing and state
information for the servers making up the system and provides an
easy-to-use command line interface for adding, removing and organizing
servers.
High-availability is provided by continuously monitoring the servers and
executing slave promotion when the master crashes and just as
importantly automatically updates the state and routing information that
gets messages to the right server.
MySQL Fabric comes with built-in support for sharding either using
ranges or consistent hashing and supports the sharding of multiple
tables to ensure that rows with matching sharding keys are stored in the
same shard. MySQL Fabric also contains support for global tables that
are duplicated on all shards as well as the ability to synchronize
schema updates across all of the servers.
To provide high performance and avoid latency, transactions are directly
routed by Fabric-aware connectors rather than routing via an external
proxy. The connectors dispatch transactions to the correct shard,
perform load-balancing, and handle read-write splitting. Currently there
exists Fabric-aware versions of Connector/Python, Connector/Java, and
Connector/PHP (through a Fabric-aware mysqlnd_ms plugin).
MySQL Utilities v1.6.1 alpha is available for download from
http://dev.mysql.com/downloads/tools/utilities/
A brief summary of changes is listed below. Please check the CHANGES.txt
file inside the distribution for a more complete list of changes.
Changes in MySQL Utilities 1.6.1 (2015-03-04)
Bugs Fixed
* Generally, the code was improved to be more MySQL 5.7
compliant. (Bug #20078072)
* All CREATE or ALTER TABLE commands in the Utilities, and
Utilities that generate them, were updated to use fully
qualified table names with foreign keys.
As of MySQL 5.5.41 / 5.6.22, there is a new behavior with
foreign keys. You must now explicitly state the schema of
the table that the foreign key points to. Previously, if
missing, it was assumed that the schema of the table
pointed to by the foreign key was the schema of the table
being defined, but this is no longer true as of MySQL
5.5.41 / 5.6.22. (Bug #20035380)
* Triggering a network down on a master or slave in a MySQL
Fabric group would hang Fabric for an extended amount of
time before it failed over and promoted a slave to a new
master. (Bug #19949241, Bug #74555)
* The _parse_grant_statement method from the common/user.py
module incorrectly parsed MySQL 5.7 GRANT statements if
they were after 'IDENTIFIED BY PASSWORD' and followed by
a hash of the password. The hash is now seen as optional.
(Bug #19943104)
* The MySQL Utilities did not correctly handle spaces in
the PATH to the MySQL server, which is common on Windows.
These paths are now surrounded by quotes. (Bug #19942512)
* The number of session threads was not properly
configured, thus making MySQL only accept one request at
a time. (Bug #19875584, Bug #74509)
* The mysqlserverclone utility did not function properly
with MySQL 5.7. It would bootstrap the server, load the
SQL files, and relaunch the server, but it would not
connect afterwards. (Bug #19804151)
* The MUT test named binlogmove_privileges failed on some
servers due to the unexpected rotation of relay log files
on the slave. All slaves are now stopped as soon as the
test relay log files are created, as to prevent log
rotation. (Bug #19781888, Bug #74284)
* The argument parser validation and error handling was
improved for the mysqluc utility. (Bug #19781304)
* The results regarding index redundancy shown by the
mysqlindexcheck utility were not correct for FULLTEXT nor
HASH type indexes.
For FULLTEXT indexes, the order is not relevant, nor is
the number of columns. A FULLTEXT index i(a,b) is
redundant of a FULLTEXT index i2(b,a), and is also
redundant of a FULLTEXT index i3(a) or FULLTEXT index
i4(b). In other words, a FULLTEXT index is redundant if
its columns are a subset of another FULLTEXT index.
As for HASH type indexes, one index in considered
redundant of another index if it contains the exact same
columns with the exact same order. In other words, two
HASH type indexes are redundant only if they are
duplicates. (Bug #19720715)
* The mysqlfabric event trigger did not properly handle
arguments. (Bug #19644057, Bug #73968)
* Generated logs now contain the version of the MySQL
Utilities and connected MySQL server. (Bug #19614037)
* On Windows, the test suite (MUT) failed to kill the
spawned servers after running the tests, if the path for
the base MySQL server included spaces. (Bug #19348330)
* When a table contained a composite Primary Key, the
mysqldbcompare utility generated INSERT/UPDATE/DELETE
statements that omitted the "AND" clause between each
field. (Bug #19340701, Bug #73449)
* When comparing databases with the mysqldbcompare utility,
quote characters within resulting SQL transformation
statements were not escaped. As a result, the statements
were not valid and could not be executed directly in a
client tool, as intended. (Bug #19313139, Bug #73415)
* MySQL Utilities now reflects the SSL behavior introduced
for the MySQL client in MySQL 5.7.3. Setting --ssl=1 now
causes the MySQL connection to fail if an encrypted
connection can not be established. (Bug #19031182)
* The mysqldbcopy utility was not able to copy table rows
that contained single quotes in text columns. (Bug
#18955235, Bug #72951)
* The conversion to CSV performed with the --format=CSV
option for several utilities was applying an incorrect
line terminator on POSIX (non-Windows) systems. In
particular, "\r\n" was used instead of "\n". (Bug
#18792076)
* The mysqldbcompare utility failed to execute when a large
invalid value was passed into the --span-key-size option.
(Bug #18763262)
* In MySQL, a BTREE index A is considered redundant of a
BTREE index B if and only if index A is a leftmost prefix
of index B. Having a common partial prefix is not enough.
The mysqlindexcheck utility had an issue and was
considering two BTREE indexes as redundant if they had a
common partial prefix. mysqlindexcheck now correctly
checks if a BTREE index is a leftmost prefix of the other
index. (Bug #18718660)
* The mysqldbcompare utility executed the full algorithm
twice to search for data differences when the
--show-reverse option was used, instead of only repeating
the part that generated the differences in the reverse
direction. This had a notable performance impact for
larger databases. (Bug #18717843)
* mysqlfabric would print a JSON-like output as a result,
but this was potentially confusing as it was not JSON.
Valid JSON is now used. (Bug #18110179, Bug #71445)
* The exit code of "mysqlfabric group create ..." was 0 for
both the success and the error cases. Now, 0 is only
returned on success. (Bug #18110165, Bug #71444)
* The mysqldbimport utility did not issue an error when a
non-existing file was specified while multiprocessing
support was enabled. Also, without concurrency (the
multiprocess option enabled), a verbose Traceback was
printed instead of a more readable error message. Now, a
friendly error message is generated for both cases. (Bug
#18042411)
Documentation
-------------
Online: http://dev.mysql.com/doc/index-utils-fabric.html
The source distribution includes the manual pages for each utility under
the docs/ folder.
Reporting Bugs
--------------
We welcome and appreciate your feedback and bug reports:
http://bugs.mysql.com/
Enjoy!
On Behalf of the MySQL/ORACLE RE Team
Hery Ramilison
--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe: http://lists.mysql.com/mysql