The following utilities were added: mysqlbinlogpurge, mysqlbinlogrotate, and mysqlslavetrx.
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)
_parse_grant_statementmethod from the
common/user.pymodule 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 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)
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=1now 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=CSVoption 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-sizeoption. (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, Bug #71688)
The mysqldbcompare utility executed the full algorithm twice to search for data differences when the
--show-reverseoption 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)
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)