This section documents all changes and bug fixes applied since the release of 1.2.1.
On Microsoft Windows, the mysqluc utility failed to list the MySQL Utilities because the
.exeextension 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
--slavesoption now verify if they are configured for the specified master as per the
--masteroption when the switchover command is executed. By default, the switchover will output an error and halt execution unless the
--forceoption is used.
Also, errors are now reported when offline servers are included in the
--slaveslist. (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
--new-masteroptions are the same). (Bug #16565502)
The mysqlrpladmin utility now uses the
--pingvalue (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
--intervaloption. (Bug #16327743)
--no-keyboardwas 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)
The following changes were made to the MySQL Utilities:
--masteroption 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.
--slavesoptions 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-loginis 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
--verboseoption is passed in, the utility shows if the I/O threads of the slaves are running.
The mysqlserverclone utility did not expand to the user's home directory when using the tilde ("~") while specifying a path for the
--basediroption. (Bug #16231372)
The status for all slaves is now checked using
SHOW SLAVE STATUSbefore 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
--pedanticoption is passed in. For mysqlrpladmin, the process will stop if errors are found unless the
--forceoption is passed in, in which case the operation will emit a warning and continue.Note
I/O errors on slaves are expected (prior to failover) since the master is down, therefore only SQL errors are checked.
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-masterfailed 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 (
New behavior when a password is not specified: When
--forceis passed in, the password will be cleared for the specified user. If
--forceis not passed in, then an error will be generated.
New behavior when a password is specified and invalid: When
--forceis passed in, the password will be overwritten and used for the specified user so the master server can be located. If
--forceis 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
--pedanticoption is passed in, and for mysqlrpladmin this means generating an error, and halting execution unless the
--forceoption is passed in. (Bug #16205200)
The replication utilities can now handle the IPv4 (127.0.0.1) and IPv6 ([::1]) loopback IP addresses, instead of only localhost as the generic hostname. (Bug #16204732)
mysqlrpladmin will now generate a warning if the
--masteroption is passed to it but not required, when before it would sometimes generate an error, depending on other circumstances.
--discover-slaves-loginwill generate an error, because the master information is not available.
--slavesoption is now required. (Bug #16202902)
The MySQL Utilities library only partially supported IPv6. Valid values starting with
::were either parsed incorrectly or identified as invalid. (Bug #15903171)
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
--helpoutput for each utility. (Bug #13383767)
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 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)