Documentation Home
MySQL Utilities Release Notes
Download these Release Notes
PDF (US Ltr) - 224.3Kb
PDF (A4) - 225.9Kb

MySQL Utilities Release Notes  /  Changes in Release 1.3  /  Changes in MySQL Utilities 1.3.1 (2013-04-26)

Changes in MySQL Utilities 1.3.1 (2013-04-26)

This section documents all changes and bug fixes applied since the release of 1.3.0, which only includes all changes that were applied to versions 1.2.1 and 1.2.2.

Functionality Added or Changed

  • Support was added for reading port and socket associated with authentication credentials stored in an option file named .mylogin.cnf. See mysql_config_editor — MySQL Configuration Utility. (Bug #16290692)

  • The failover operation was improved and now searches for any transactions on the slaves that have not been read from the relay log. Failover will now gather all of these events to the candidate slave before failover is complete. (Bug #16283330)

  • The switchover and failover external scripts now accept parameters from the utility. This permits custom scripts to execute application-specific operations during the process. The data passed is as follows:


    • exec_before : old master host, old master port, new master host, new master port

    • exec_after : new master host, new master port


    • exec_fail : old master host, old master port

    • exec_before : old master host, old master port, new master host, new master port

    • exec_post_failover : old master host, old master port, new master host, new master port

    • exec_after : old master host, old master port, new master host, new master port

    (Bug #14157692)

Bugs Fixed

  • On Microsoft Windows, the mysqluc utility failed to list the MySQL Utilities because the .exe extension was not being scanned. (Bug #16714425)

  • The mysqlrpladmin command switchover routine would hang when configured with an invalid master. (Bug #16597814)

  • A utility would emit a generic error and halt execution if the utility was executed with an unsupported Python version, and if the utility did not have a file extension. (Bug #16587341)

  • When using the mysqlrpladmin utility, the slaves specified with the --slaves option now verify if they are configured for the specified master as per the --master option when the switchover command is executed. By default, the switchover will output an error and halt execution unless the --force option is used.

    Also, errors are now reported when offline servers are included in the --slaves list. (Bug #16584598)

  • The mysqlrpladmin utility now properly handles the way aliases are searched, compared, and handled. (Bug #16571812)

  • The mysqlrpladmin utility will now emit an error and halt execution if the new master specified is the original master (when the --master and --new-master options are the same). (Bug #16565502)

  • The mysqlrpladmin utility now uses the --ping value (default of 3) instead of --timeout (default of 300) as the time for the retry when checking slaves for errors after executing a switchover (or failover) command. (Bug #16520505)

  • The mysqlrpladmin would crash while executing the failover command when GTID mode was disabled on one of the slaves. It now emits an error and identifies the slaves with GTID_MODE = OFF, and the slaves that do not support GTID. (Bug #16489494)

  • The mysqlfailover utility ignored the --interval option. (Bug #16327743)

  • A --no-keyboard was added to the mysqlfailover utility, and it defaults to false. When enabled, pressing Control + C will terminate the program. This new option allows this utility to function without a terminal, so that it can be invoked from external programs such as a Java based framework. (Bug #16327406)

  • Some source files were missing license and/or copyright information. (Bug #16283254)

  • The following changes were made to the MySQL Utilities:

    • The mysqlrpladmin --master option is no longer required for the start, stop and reset operations. Without --master, this utility will not check if the specified slaves are configured for the specified master.

    • The --discover-slaves-login and --slaves options cannot be used simultaneously for any command, otherwise an error will be generated and the utility will exit.

    • The output from when a slave is discovered (when --discover-slaves-login is passed in) was improved, and skipped slaves with I/O threads not running are now identified.

    • The verbosity option was added to mysqlrplshow. When the --verbose option is passed in, the utility shows if the I/O threads of the slaves are running.

    (Bug #16268060)

  • Messages and handling of stop, start, and reset slaves has been improved for the mysqlrpladmin utility.

    The --discover-slave-login option is no longer allowed for stop, start, and reset operations, as instead the --slave option is required. (Bug #16243584)

  • Utilities were enhanced to check the Python version required for each utility. (Bug #16238348)

  • Errors for connection failures have been improved, as more details about the type of failure is presented. (Bug #16237986)

  • The mysqlserverclone utility did not expand to the user's home directory when using the tilde ("~") while specifying a path for the --basedir option. (Bug #16231372)

  • The status for all slaves is now checked using SHOW SLAVE STATUS before a failover operation is started. Errors are now reported, and a warning indicates that the failover operation might result in an unstable replication topology.

    For mysqlfailover, the process will not stop if errors are found unless the --pedantic option is passed in. For mysqlrpladmin, the process will stop if errors are found unless the --force option is passed in, in which case the operation will emit a warning and continue.


    I/O errors on slaves are expected (prior to failover) since the master is down, therefore only SQL errors are checked.

    (Bug #16210447)

  • When a switchover was performed with --demote-master, the old master would still show as a master to the new master (the promoted slave), in that the --demote-master failed to unlink with a new master in the topology. (Bug #16210246)

  • A switchover operation failed due to a missing or incorrect password for the replication (--rpl-user) user.

    New behavior when a password is not specified: When --force is passed in, the password will be cleared for the specified user. If --force is not passed in, then an error will be generated.

    New behavior when a password is specified and invalid: When --force is passed in, the password will be overwritten and used for the specified user so the master server can be located. If --force is not passed in, then an error will be generated. (Bug #16210222)

  • The replication utilities will now check the slaves for errant transactions (these are transactions that only exist on one slave) prior to executing failover. For mysqlfailover this means generating a warning and only stopping if the --pedantic option is passed in, and for mysqlrpladmin this means generating an error, and halting execution unless the --force option is passed in. (Bug #16205200)

  • The replication utilities can now handle the IPv4 ( and IPv6 ([::1]) loopback IP addresses, instead of only localhost as the generic hostname. (Bug #16204732)

  • mysqlrpladmin will now generate a warning if the --master option is passed to it but not required, when before it would sometimes generate an error, depending on other circumstances.

    Passing in --discover-slaves-login will generate an error, because the master information is not available.

    The --slaves option is now required. (Bug #16202902)

  • The switchover operation with --demote-master now disconnects the new master from the old master to complete the move of the candidate slave to the new master. (Bug #16177167)

  • All interactive-specific exit() calls were replaced with the standard sys.exit() method. This conforms to the current Python standards. (Bug #16167359)

  • Error handling for the mysqlreplicate utility was improved to check all errors on the slaves. (Bug #16164767)

  • The MySQL Utilities library only partially supported IPv6. Valid values starting with :: were either parsed incorrectly or identified as invalid. (Bug #15903171)

  • String quoting was improved for the mysqldbcopy, mysqldbexport, and mysqldbimport utilities. (Bug #14348501)

  • The log parser was changed to accept host names with dots or hyphens. (Bug #14172941)

  • mysqldiff and mysqldbcompare did not function on tables that contained a hyphen ("-") in their name, and these utilities would abort with unknown errors. (Bug #13650863)

  • Copyright and version information was added to the --help output for each utility. (Bug #13383767)

  • The unit tests were corrected to detect if the mysql_config_editor is present. If not, unit tests that require it are skipped. (Bug #68356)

  • The mysqluc utility was optimized to locate the available MySQL Utilities more efficiently. Before it would scan the entire installation directory for available executables, but now it uses hardcoded values, and also scans for executables with the "mysql" prefix. (Bug #68322, Bug #16382195)

  • The entire MySQL Utilities package was updated to facilitate RPM packaging. These changes include license updates, the removal of unnecessary shebang's, and the mut manual page was moved and is no longer listed with the other utilities. (Bug #68182, Bug #13956819)

  • The mysqldiff utility would consider two tables as different if the columns or indexes were ordered differently. (Bug #65169, Bug #16410648)

  • Connection strings would not accept usernames or passwords that contained a hyphen ("-"). Using single or double quotes is now supported. For example, passing in --server="user:'pass@:-chars'@localhost" as a connection string to a MySQL Utility is now valid. (Bug #65168, Bug #14383884, Bug #15836908)

  • All fixes from the 1.2.1 and 1.2.2 MySQL Utilities releases were merged into the 1.3.x branch, and released as version 1.3.1.