Dear MySQL users,
MySQL Utilities version 1.4.4 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. 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 continually monitoring the servers and executing slave promotion when the master crashes. Just as importantly it automatically updates the state and routing information that gets messages to the right server. MySQL Fabric comes with built-in support for sharding using either 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.4.4 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.4.4 Bugs Fixed (2014-07-31) * The mysqlreplicate and mysqlrplms utilities would generate an exception when the optional --rpl-user was not passed in. (Bug #19178471) * The check for an errant transaction was not performed for mysqlrpladmin's switchover command, it only performed for the failover command. Both commands now check for errant transactions. The errant transaction check requires all servers in the topology to have GTID enabled, otherwise a warning is issued indicating that the check cannot be performed for the switchover command. (Bug #19076488, Bug #73110) * On OS X Mavericks, the testing suite (MUT) failed to kill mysqld processes as MUT could not identify the MySQL server ports. (Bug #18958536) * On Windows, the mysqlfabric utility searched for the fabric configuration file outside of the installation folder. The default configuration file location is C:\Program Files (x86)\MySQL\MySQL Utilities 1.4.4\etc\mysql\fabric.cfg. Additionally, the MySQL Utilities section in the Windows Start menu now contains a link to the fabric configuration file. (Bug #18904014) * In the mysqluc environment, pressing tab after typing a "q" would incorrectly suggest the term "qxit" instead of "quit". This now returns "quit", which is an alias for "exit". (Bug #18852960, Bug #72776) * On Linux, the backspace key was not functioning in the mysqluc environment, therefore the entered text could not be changed. (Bug #18852933, Bug #72777) * With fabric, the --daemonize parameter was not recognized when passed in with manage start. (Bug #18874603, Bug #72818) * With the --discover-slaves-login option, if there were connection or configuration problems with some of the slaves, then those slaves were skipped with only a generic error message being issued. This behavior did not change when also passing in --verbose. A simple warning about the connection/configuration problems is now generated during the discovery process, and it references including --verbose to see additional information. The --verbose option generates specific information for each slave, and includes their respective errors. (Bug #18815523, Bug #72706) * The minimum required Connector/Python version in the source code was defined as 1.0.9 instead of 1.2.1. (Bug #18777318, Bug #72664) * The Debian packages checked for a Connector/Python 1.0.9+ prerequisite instead of requiring Connector/Python 1.2.1+. (Bug #18838462) * Descriptive text for the --no-headers option was improved to clearly indicate which formats it supports. For example, it does not support the "vertical" format. (Bug #18790134, Bug #72659) * When running the mysqlserverinfo utility as root against an offline MySQL server, it failed to start a read-only instance of the server and emitted the fatal error "Please read "Security" section of the manual to find out how to run mysqld as root!". This occurred because the mysqld option "--user=root" was not passed in, which is mandatory when starting mysqld as root. The user_name that executes the utility is now detected and added as --user=user_name when starting the read-only MySQL server. Additionally, error checks were added that validate the --basedir and --datadir options to check for their existence and accessibility. (Bug #18790361, Bug #72658) * Failed MySQL server connection error messages now return the actual error returned from the failed connection, instead of a custom (and more generic) error. This new behavior is more standard with how other MySQL client applications behave. (Bug #18815545, Bug #72670) * The mysqluc utility would suddenly exit when a command was wrongly formatted, like when a closing quote was missing. This action now generates a warning instead of exiting from the console, which allows the command to be edited. (Bug #18730815, Bug #72569) * When cloning a user, the mysqluserclone utility did not check if the user of the destination server had the required privileges for a successful operation. (Bug #18768780, Bug #72655) * Error messages for the mysqluserclone utility were improved by making them more explicit in terms of what might be missing. (Bug #18730656, Bug #72572) * The mysqluserclone utility was throwing an unhandled exception when the --list option was used with incorrect login credentials. The error message is now emitted. (Bug #18768487, Bug #72656) * When passing in the --dump option to the mysqluserclone utility on a user with the hostname '%', the output (each grant) would be printed twice. (Bug #18730720, Bug #72570) * With fabric, sharding prune_shard operations would hang when performed on a very large number of records. (Bug #18669231, Bug #19177860, Bug #73238) * The default value was removed from the --rpl-user option for the mysqlreplicate and mysqlrplms utilities. Before, the default user/pass value was "rpl:rpl". (Bug #18603715) * A warning is now emitted whenever a password is entered into the command line. When testing, this warning can be disabled by setting self.mask_global to false. (Bug #18603598) * The mysqlfailover utility caused excessive CPU load when executed in the console without passing in --daemon. This high CPU usage was due to the process waiting for user input. (Bug #18379971, Bug #72002) Documentation ------------- Online:http://dev.mysql.com/doc/mysql-utilities/1.4/en/ 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, Santosh Pagare